{"version":3,"sources":["webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/createClass.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/extends.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/typeof.js","webpack://healthy-workplace/./node_modules/@babel/runtime/regenerator/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/font/lib/index.browser.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://healthy-workplace/./node_modules/@react-pdf/fontkit/lib/fontkit.browser.es.js","webpack://healthy-workplace/./node_modules/@react-pdf/image/lib/index.browser.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/canvas/measureCanvas.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/image/fetchImage.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/image/getRatio.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/image/getSource.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/image/measureImage.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/createInstance.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getBorderWidth.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getDimension.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getMargin.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getNodesHeight.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getOrigin.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getPadding.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/getPosition.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setAlign.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setAlignContent.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setAlignItems.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setAlignSelf.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setAspectRatio.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setBorderWidth.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setDimension.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setDisplay.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setFlexBasis.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setFlexDirection.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setFlexGrow.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setFlexShrink.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setFlexWrap.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setJustifyContent.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setMargin.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setOverflow.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setPadding.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setPosition.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setPositionType.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/setYogaValue.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/shouldBreak.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/node/splitNode.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/page/getContentArea.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/page/getOrientation.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/page/getSize.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/page/isHeightAuto.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/page/isLandscape.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveAssets.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveDimensions.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveInheritance.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveLinkSubstitution.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveOrigins.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolvePagePaddings.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolvePageSizes.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolvePagination.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolvePercentHeight.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolvePercentRadius.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveStyles.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveSvg.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveTextLayout.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/steps/resolveZIndex.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/getContainer.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/getDefs.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/inheritProps.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/layoutText.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/measureSvg.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/parseAspectRatio.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/parseViewbox.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/svg/replaceDefs.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/emoji.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/fontSubstitution.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/getAttributedString.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/heightAtLineIndex.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/ignoreChars.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/layoutText.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/lineIndexAtHeight.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/linesHeight.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/linesWidth.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/measureText.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/splitText.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/standardFont.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/text/transformText.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/utils/asyncCompose.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/utils/capitalize.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/utils/castArray.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/utils/matchPercent.js","webpack://healthy-workplace/./node_modules/@react-pdf/layout/lib/utils/upperFirst.js","webpack://healthy-workplace/./node_modules/@react-pdf/pdfkit/lib/pdfkit.browser.es.js","webpack://healthy-workplace/./node_modules/@react-pdf/png-js/lib/png-js.browser.es.js","webpack://healthy-workplace/./node_modules/@react-pdf/primitives/src/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/addMetadata.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/clipNode.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/restore.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/save.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/setDestination.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/setLink.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/operations/transform.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderBackground.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderBorders.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderCanvas.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderCircle.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderDebug.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderEllipse.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderGroup.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderImage.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderLine.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderNode.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderNote.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderPage.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderPath.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderPolygon.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderPolyline.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderRect.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderSvg.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderSvgImage.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderSvgText.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/primitives/renderText.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/svg/getBoundingBox.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/svg/parsePoints.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isCanvas.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isCircle.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isEllipse.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isGroup.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isImage.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isLine.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isLink.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isNote.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isPage.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isPath.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isPolygon.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isPolyline.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isRect.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isSvg.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isText.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isTextInstance.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/isTspan.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/matchPercent.js","webpack://healthy-workplace/./node_modules/@react-pdf/render/lib/utils/resolveObjectFit.js","webpack://healthy-workplace/./node_modules/@react-pdf/renderer/node_modules/scheduler/cjs/scheduler.production.min.js","webpack://healthy-workplace/./node_modules/@react-pdf/renderer/node_modules/scheduler/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/colors.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/expand.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/flatten.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/mediaQueries.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/resolve.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/shorthands.js","webpack://healthy-workplace/./node_modules/@react-pdf/stylesheet/lib/units.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/advanceWidth.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/advanceWidthBetween.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/append.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/ascent.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/copy.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/descent.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/dropLast.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/empty.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/end.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/fromFragments.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/glyphWidthAt.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/height.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/indexAtOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/insertGlyph.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/leadingOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/length.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/prepend.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/reduce.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/runAt.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/runIndexAt.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/slice.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/sliceAtOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/start.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/trailingOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/attributedString/trim.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/block/height.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/block/slice.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/block/sliceAtHeight.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/block/truncate.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/justification/getDistances.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/justification/getFactors.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/justification/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/linebreaker/bestFit.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/linebreaker/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/linebreaker/linebreak.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/linebreaker/linkedList.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/scriptItemizer/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/textDecoration/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/engines/wordHyphenation/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/glyph/fromCodePoint.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/glyph/isWhiteSpace.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/glyph/slice.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/indices/append.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/indices/normalize.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/indices/prepend.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/indices/resolve.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/applyDefaultStyles.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/finalizeFragments.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/generateGlyphs.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/index.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/layoutParagraph.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/preprocessRuns.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/resolveAttachments.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/resolveYOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/splitParagraphs.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/typesetter.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/layout/wrapWords.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/rect/copy.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/rect/crop.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/renderers/pdf.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/add.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/advanceWidth.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/advanceWidthBetween.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/append.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/ascent.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/concat.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/copy.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/descent.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/dropLast.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/empty.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/filter.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/flatten.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/getFont.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/glyphIndexAt.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/height.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/indexAtOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/insert.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/isEmpty.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/leadingOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/length.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/lineGap.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/offset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/omit.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/prepend.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/runIndexAt.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/scale.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/slice.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/sort.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/subtract.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/run/trailingOffset.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/utils/isBetween.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/utils/isNumber.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/utils/mapIndexed.js","webpack://healthy-workplace/./node_modules/@react-pdf/textkit/lib/utils/stringFromCodePoints.js","webpack://healthy-workplace/./node_modules/@react-pdf/unicode-properties/lib/unicode-properties.es.js","webpack://healthy-workplace/./node_modules/@react-pdf/yoga/src/build/Release/nbind.js","webpack://healthy-workplace/./node_modules/@react-pdf/yoga/src/dist/YGEnums.js","webpack://healthy-workplace/./node_modules/@react-pdf/yoga/src/dist/entry-browser.js","webpack://healthy-workplace/./node_modules/@react-pdf/yoga/src/dist/entry-common.js","webpack://healthy-workplace/./node_modules/abs-svg-path/index.js","webpack://healthy-workplace/./node_modules/array-filter/index.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/api.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/base/index.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/base/node.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/constants/der.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/constants/index.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack://healthy-workplace/./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack://healthy-workplace/./node_modules/assert/build/assert.js","webpack://healthy-workplace/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://healthy-workplace/./node_modules/assert/build/internal/errors.js","webpack://healthy-workplace/./node_modules/assert/build/internal/util/comparisons.js","webpack://healthy-workplace/./node_modules/available-typed-arrays/index.js","webpack://healthy-workplace/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://healthy-workplace/./node_modules/babel-runtime/core-js/is-iterable.js","webpack://healthy-workplace/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://healthy-workplace/./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack://healthy-workplace/./node_modules/babel-runtime/helpers/classCallCheck.js","webpack://healthy-workplace/./node_modules/babel-runtime/helpers/createClass.js","webpack://healthy-workplace/./node_modules/babel-runtime/helpers/defineProperty.js","webpack://healthy-workplace/./node_modules/babel-runtime/helpers/slicedToArray.js","webpack://healthy-workplace/./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://healthy-workplace/./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","webpack://healthy-workplace/./node_modules/babel-runtime/regenerator/index.js","webpack://healthy-workplace/./node_modules/base64-js/index.js","webpack://healthy-workplace/./node_modules/blob-stream/index.js","webpack://healthy-workplace/./node_modules/blob/index.js","webpack://healthy-workplace/./node_modules/bn.js/lib/bn.js","webpack://healthy-workplace/./node_modules/brorand/index.js","webpack://healthy-workplace/./node_modules/browserify-aes/aes.js","webpack://healthy-workplace/./node_modules/browserify-aes/authCipher.js","webpack://healthy-workplace/./node_modules/browserify-aes/browser.js","webpack://healthy-workplace/./node_modules/browserify-aes/decrypter.js","webpack://healthy-workplace/./node_modules/browserify-aes/encrypter.js","webpack://healthy-workplace/./node_modules/browserify-aes/ghash.js","webpack://healthy-workplace/./node_modules/browserify-aes/incr32.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/cbc.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/cfb.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/cfb1.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/cfb8.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/ctr.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/ecb.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/index.js","webpack://healthy-workplace/./node_modules/browserify-aes/modes/ofb.js","webpack://healthy-workplace/./node_modules/browserify-aes/streamCipher.js","webpack://healthy-workplace/./node_modules/browserify-cipher/browser.js","webpack://healthy-workplace/./node_modules/browserify-des/index.js","webpack://healthy-workplace/./node_modules/browserify-des/modes.js","webpack://healthy-workplace/./node_modules/browserify-rsa/index.js","webpack://healthy-workplace/./node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","webpack://healthy-workplace/./node_modules/browserify-sign/algos.js","webpack://healthy-workplace/./node_modules/browserify-sign/browser/index.js","webpack://healthy-workplace/./node_modules/browserify-sign/browser/sign.js","webpack://healthy-workplace/./node_modules/browserify-sign/browser/verify.js","webpack://healthy-workplace/./node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","webpack://healthy-workplace/./node_modules/browserify-zlib/lib/binding.js","webpack://healthy-workplace/./node_modules/browserify-zlib/lib/index.js","webpack://healthy-workplace/./node_modules/buffer-xor/index.js","webpack://healthy-workplace/./node_modules/buffer/index.js","webpack://healthy-workplace/./node_modules/call-bind/callBound.js","webpack://healthy-workplace/./node_modules/call-bind/index.js","webpack://healthy-workplace/./node_modules/cipher-base/index.js","webpack://healthy-workplace/./node_modules/classnames/index.js","webpack://healthy-workplace/./node_modules/clone/clone.js","webpack://healthy-workplace/./node_modules/color-name/index.js","webpack://healthy-workplace/./node_modules/color-string/index.js","webpack://healthy-workplace/./node_modules/core-js/library/fn/get-iterator.js","webpack://healthy-workplace/./node_modules/core-js/library/fn/is-iterable.js","webpack://healthy-workplace/./node_modules/core-js/library/fn/object/define-property.js","webpack://healthy-workplace/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_a-function.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_an-object.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_array-includes.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_classof.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_cof.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_core.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_ctx.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_defined.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_descriptors.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_dom-create.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_export.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_fails.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_global.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_has.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_hide.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_html.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_iobject.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_is-object.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_iter-create.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_iter-define.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_iter-step.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_iterators.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_library.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_object-create.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_object-dp.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_object-dps.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_object-gpo.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_object-keys.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_property-desc.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_redefine.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_shared-key.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_shared.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_string-at.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_to-integer.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_to-iobject.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_to-length.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_to-object.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_to-primitive.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_uid.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_wks-ext.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/_wks.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/core.get-iterator.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/core.is-iterable.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/es6.object.define-property.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://healthy-workplace/./node_modules/core-js/library/modules/web.dom.iterable.js","webpack://healthy-workplace/./node_modules/create-ecdh/browser.js","webpack://healthy-workplace/./node_modules/create-hash/browser.js","webpack://healthy-workplace/./node_modules/create-hash/md5.js","webpack://healthy-workplace/./node_modules/create-hmac/browser.js","webpack://healthy-workplace/./node_modules/create-hmac/legacy.js","webpack://healthy-workplace/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://healthy-workplace/./node_modules/crypto-browserify/index.js","webpack://healthy-workplace/./node_modules/crypto-js/aes.js","webpack://healthy-workplace/./node_modules/crypto-js/cipher-core.js","webpack://healthy-workplace/./node_modules/crypto-js/core.js","webpack://healthy-workplace/./node_modules/crypto-js/enc-base64.js","webpack://healthy-workplace/./node_modules/crypto-js/enc-utf16.js","webpack://healthy-workplace/./node_modules/crypto-js/evpkdf.js","webpack://healthy-workplace/./node_modules/crypto-js/format-hex.js","webpack://healthy-workplace/./node_modules/crypto-js/hmac.js","webpack://healthy-workplace/./node_modules/crypto-js/index.js","webpack://healthy-workplace/./node_modules/crypto-js/lib-typedarrays.js","webpack://healthy-workplace/./node_modules/crypto-js/md5.js","webpack://healthy-workplace/./node_modules/crypto-js/mode-cfb.js","webpack://healthy-workplace/./node_modules/crypto-js/mode-ctr-gladman.js","webpack://healthy-workplace/./node_modules/crypto-js/mode-ctr.js","webpack://healthy-workplace/./node_modules/crypto-js/mode-ecb.js","webpack://healthy-workplace/./node_modules/crypto-js/mode-ofb.js","webpack://healthy-workplace/./node_modules/crypto-js/pad-ansix923.js","webpack://healthy-workplace/./node_modules/crypto-js/pad-iso10126.js","webpack://healthy-workplace/./node_modules/crypto-js/pad-iso97971.js","webpack://healthy-workplace/./node_modules/crypto-js/pad-nopadding.js","webpack://healthy-workplace/./node_modules/crypto-js/pad-zeropadding.js","webpack://healthy-workplace/./node_modules/crypto-js/pbkdf2.js","webpack://healthy-workplace/./node_modules/crypto-js/rabbit-legacy.js","webpack://healthy-workplace/./node_modules/crypto-js/rabbit.js","webpack://healthy-workplace/./node_modules/crypto-js/rc4.js","webpack://healthy-workplace/./node_modules/crypto-js/ripemd160.js","webpack://healthy-workplace/./node_modules/crypto-js/sha1.js","webpack://healthy-workplace/./node_modules/crypto-js/sha224.js","webpack://healthy-workplace/./node_modules/crypto-js/sha256.js","webpack://healthy-workplace/./node_modules/crypto-js/sha3.js","webpack://healthy-workplace/./node_modules/crypto-js/sha384.js","webpack://healthy-workplace/./node_modules/crypto-js/sha512.js","webpack://healthy-workplace/./node_modules/crypto-js/tripledes.js","webpack://healthy-workplace/./node_modules/crypto-js/x64-core.js","webpack://healthy-workplace/./src/styles/main.scss","webpack://healthy-workplace/./node_modules/css-loader/dist/runtime/api.js","webpack://healthy-workplace/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://healthy-workplace/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://healthy-workplace/./node_modules/deep-equal/index.js","webpack://healthy-workplace/./node_modules/define-properties/index.js","webpack://healthy-workplace/./node_modules/des.js/lib/des.js","webpack://healthy-workplace/./node_modules/des.js/lib/des/cbc.js","webpack://healthy-workplace/./node_modules/des.js/lib/des/cipher.js","webpack://healthy-workplace/./node_modules/des.js/lib/des/des.js","webpack://healthy-workplace/./node_modules/des.js/lib/des/ede.js","webpack://healthy-workplace/./node_modules/des.js/lib/des/utils.js","webpack://healthy-workplace/./node_modules/dfa/index.js","webpack://healthy-workplace/./node_modules/diffie-hellman/browser.js","webpack://healthy-workplace/./node_modules/diffie-hellman/lib/dh.js","webpack://healthy-workplace/./node_modules/diffie-hellman/lib/generatePrime.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/curve/base.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/curve/index.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/curve/short.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/curves.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/ec/index.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/ec/key.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack://healthy-workplace/./node_modules/elliptic/lib/elliptic/utils.js","webpack://healthy-workplace/./node_modules/emoji-regex/index.js","webpack://healthy-workplace/./node_modules/enquire.js/src/MediaQuery.js","webpack://healthy-workplace/./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack://healthy-workplace/./node_modules/enquire.js/src/QueryHandler.js","webpack://healthy-workplace/./node_modules/enquire.js/src/Util.js","webpack://healthy-workplace/./node_modules/enquire.js/src/index.js","webpack://healthy-workplace/./node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://healthy-workplace/./node_modules/es6-object-assign/index.js","webpack://healthy-workplace/./node_modules/events/events.js","webpack://healthy-workplace/./node_modules/evp_bytestokey/index.js","webpack://healthy-workplace/./node_modules/foreach/index.js","webpack://healthy-workplace/./node_modules/function-bind/implementation.js","webpack://healthy-workplace/./node_modules/function-bind/index.js","webpack://healthy-workplace/./node_modules/get-intrinsic/index.js","webpack://healthy-workplace/./node_modules/has-symbols/index.js","webpack://healthy-workplace/./node_modules/has-symbols/shams.js","webpack://healthy-workplace/./node_modules/has/src/index.js","webpack://healthy-workplace/./node_modules/hash-base/index.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/common.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/hmac.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/ripemd.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha/1.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha/224.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha/256.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha/384.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha/512.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/sha/common.js","webpack://healthy-workplace/./node_modules/hash.js/lib/hash/utils.js","webpack://healthy-workplace/./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack://healthy-workplace/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://healthy-workplace/./node_modules/hsl-to-hex/index.js","webpack://healthy-workplace/./node_modules/hsl-to-rgb-for-reals/converter.js","webpack://healthy-workplace/./node_modules/hyphen/hyphen.js","webpack://healthy-workplace/./node_modules/hyphen/index.js","webpack://healthy-workplace/./node_modules/hyphen/patterns/en-us.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/dbcs-codec.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/dbcs-data.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/index.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/internal.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/sbcs-codec.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/sbcs-data-generated.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/sbcs-data.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/utf16.js","webpack://healthy-workplace/./node_modules/iconv-lite/encodings/utf7.js","webpack://healthy-workplace/./node_modules/iconv-lite/lib/bom-handling.js","webpack://healthy-workplace/./node_modules/iconv-lite/lib/index.js","webpack://healthy-workplace/./node_modules/ieee754/index.js","webpack://healthy-workplace/./node_modules/inherits/inherits_browser.js","webpack://healthy-workplace/./node_modules/invariant/browser.js","webpack://healthy-workplace/./node_modules/is-arguments/index.js","webpack://healthy-workplace/./node_modules/is-date-object/index.js","webpack://healthy-workplace/./node_modules/is-generator-function/index.js","webpack://healthy-workplace/./node_modules/is-nan/implementation.js","webpack://healthy-workplace/./node_modules/is-nan/index.js","webpack://healthy-workplace/./node_modules/is-nan/polyfill.js","webpack://healthy-workplace/./node_modules/is-nan/shim.js","webpack://healthy-workplace/./node_modules/is-regex/index.js","webpack://healthy-workplace/./node_modules/is-typed-array/index.js","webpack://healthy-workplace/./node_modules/is-url/index.js","webpack://healthy-workplace/./node_modules/json2mq/index.js","webpack://healthy-workplace/./node_modules/lodash.debounce/index.js","webpack://healthy-workplace/./node_modules/lz-string/libs/lz-string.js","webpack://healthy-workplace/./node_modules/md5.js/index.js","webpack://healthy-workplace/./node_modules/media-engine/src/index.js","webpack://healthy-workplace/./node_modules/media-engine/src/operators.js","webpack://healthy-workplace/./node_modules/media-engine/src/parser.js","webpack://healthy-workplace/./node_modules/media-engine/src/queries.js","webpack://healthy-workplace/./node_modules/miller-rabin/lib/mr.js","webpack://healthy-workplace/./node_modules/minimalistic-assert/index.js","webpack://healthy-workplace/./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack://healthy-workplace/./node_modules/normalize-svg-path/index.js","webpack://healthy-workplace/./node_modules/object-assign/index.js","webpack://healthy-workplace/./node_modules/object-is/implementation.js","webpack://healthy-workplace/./node_modules/object-is/index.js","webpack://healthy-workplace/./node_modules/object-is/polyfill.js","webpack://healthy-workplace/./node_modules/object-is/shim.js","webpack://healthy-workplace/./node_modules/object-keys/implementation.js","webpack://healthy-workplace/./node_modules/object-keys/index.js","webpack://healthy-workplace/./node_modules/object-keys/isArguments.js","webpack://healthy-workplace/./node_modules/pako/lib/utils/common.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/adler32.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/constants.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/crc32.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/deflate.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/inffast.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/inflate.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/inftrees.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/messages.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/trees.js","webpack://healthy-workplace/./node_modules/pako/lib/zlib/zstream.js","webpack://healthy-workplace/./node_modules/parse-asn1/asn1.js","webpack://healthy-workplace/./node_modules/parse-asn1/certificate.js","webpack://healthy-workplace/./node_modules/parse-asn1/fixProc.js","webpack://healthy-workplace/./node_modules/parse-asn1/index.js","webpack://healthy-workplace/./node_modules/parse-svg-path/index.js","webpack://healthy-workplace/./node_modules/pbkdf2/browser.js","webpack://healthy-workplace/./node_modules/pbkdf2/lib/async.js","webpack://healthy-workplace/./node_modules/pbkdf2/lib/default-encoding.js","webpack://healthy-workplace/./node_modules/pbkdf2/lib/precondition.js","webpack://healthy-workplace/./node_modules/pbkdf2/lib/sync-browser.js","webpack://healthy-workplace/./node_modules/pbkdf2/lib/to-buffer.js","webpack://healthy-workplace/./node_modules/process/browser.js","webpack://healthy-workplace/./node_modules/prop-types-extra/lib/isRequiredForA11y.js","webpack://healthy-workplace/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://healthy-workplace/./node_modules/prop-types/index.js","webpack://healthy-workplace/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://healthy-workplace/./node_modules/property-expr/index.js","webpack://healthy-workplace/./node_modules/public-encrypt/browser.js","webpack://healthy-workplace/./node_modules/public-encrypt/mgf.js","webpack://healthy-workplace/./node_modules/public-encrypt/privateDecrypt.js","webpack://healthy-workplace/./node_modules/public-encrypt/publicEncrypt.js","webpack://healthy-workplace/./node_modules/public-encrypt/withPublic.js","webpack://healthy-workplace/./node_modules/public-encrypt/xor.js","webpack://healthy-workplace/./node_modules/queue/index.js","webpack://healthy-workplace/./node_modules/ramda/es/F.js","webpack://healthy-workplace/./node_modules/ramda/es/T.js","webpack://healthy-workplace/./node_modules/ramda/es/__.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isPlaceholder.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_curry1.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_curry2.js","webpack://healthy-workplace/./node_modules/ramda/es/add.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_concat.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_arity.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_curryN.js","webpack://healthy-workplace/./node_modules/ramda/es/curryN.js","webpack://healthy-workplace/./node_modules/ramda/es/addIndex.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_curry3.js","webpack://healthy-workplace/./node_modules/ramda/es/adjust.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isArray.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isTransformer.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_dispatchable.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_reduced.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xfBase.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xall.js","webpack://healthy-workplace/./node_modules/ramda/es/all.js","webpack://healthy-workplace/./node_modules/ramda/es/max.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_map.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isString.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isArrayLike.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xwrap.js","webpack://healthy-workplace/./node_modules/ramda/es/bind.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_reduce.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xmap.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_has.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isArguments.js","webpack://healthy-workplace/./node_modules/ramda/es/keys.js","webpack://healthy-workplace/./node_modules/ramda/es/map.js","webpack://healthy-workplace/./node_modules/ramda/es/path.js","webpack://healthy-workplace/./node_modules/ramda/es/prop.js","webpack://healthy-workplace/./node_modules/ramda/es/pluck.js","webpack://healthy-workplace/./node_modules/ramda/es/reduce.js","webpack://healthy-workplace/./node_modules/ramda/es/allPass.js","webpack://healthy-workplace/./node_modules/ramda/es/always.js","webpack://healthy-workplace/./node_modules/ramda/es/and.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xany.js","webpack://healthy-workplace/./node_modules/ramda/es/any.js","webpack://healthy-workplace/./node_modules/ramda/es/anyPass.js","webpack://healthy-workplace/./node_modules/ramda/es/ap.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_aperture.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xaperture.js","webpack://healthy-workplace/./node_modules/ramda/es/aperture.js","webpack://healthy-workplace/./node_modules/ramda/es/append.js","webpack://healthy-workplace/./node_modules/ramda/es/apply.js","webpack://healthy-workplace/./node_modules/ramda/es/values.js","webpack://healthy-workplace/./node_modules/ramda/es/applySpec.js","webpack://healthy-workplace/./node_modules/ramda/es/applyTo.js","webpack://healthy-workplace/./node_modules/ramda/es/ascend.js","webpack://healthy-workplace/./node_modules/ramda/es/assoc.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isInteger.js","webpack://healthy-workplace/./node_modules/ramda/es/isNil.js","webpack://healthy-workplace/./node_modules/ramda/es/assocPath.js","webpack://healthy-workplace/./node_modules/ramda/es/nAry.js","webpack://healthy-workplace/./node_modules/ramda/es/binary.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isFunction.js","webpack://healthy-workplace/./node_modules/ramda/es/liftN.js","webpack://healthy-workplace/./node_modules/ramda/es/lift.js","webpack://healthy-workplace/./node_modules/ramda/es/both.js","webpack://healthy-workplace/./node_modules/ramda/es/curry.js","webpack://healthy-workplace/./node_modules/ramda/es/call.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_makeFlat.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_flatCat.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_forceReduced.js","webpack://healthy-workplace/./node_modules/ramda/es/chain.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xchain.js","webpack://healthy-workplace/./node_modules/ramda/es/clamp.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_cloneRegExp.js","webpack://healthy-workplace/./node_modules/ramda/es/type.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_clone.js","webpack://healthy-workplace/./node_modules/ramda/es/clone.js","webpack://healthy-workplace/./node_modules/ramda/es/comparator.js","webpack://healthy-workplace/./node_modules/ramda/es/not.js","webpack://healthy-workplace/./node_modules/ramda/es/complement.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_pipe.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_checkForMethod.js","webpack://healthy-workplace/./node_modules/ramda/es/slice.js","webpack://healthy-workplace/./node_modules/ramda/es/tail.js","webpack://healthy-workplace/./node_modules/ramda/es/pipe.js","webpack://healthy-workplace/./node_modules/ramda/es/reverse.js","webpack://healthy-workplace/./node_modules/ramda/es/compose.js","webpack://healthy-workplace/./node_modules/ramda/es/composeK.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_pipeP.js","webpack://healthy-workplace/./node_modules/ramda/es/pipeP.js","webpack://healthy-workplace/./node_modules/ramda/es/composeP.js","webpack://healthy-workplace/./node_modules/ramda/es/nth.js","webpack://healthy-workplace/./node_modules/ramda/es/head.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_identity.js","webpack://healthy-workplace/./node_modules/ramda/es/identity.js","webpack://healthy-workplace/./node_modules/ramda/es/pipeWith.js","webpack://healthy-workplace/./node_modules/ramda/es/composeWith.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_arrayFromIterator.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_includesWith.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_objectIs.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_equals.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_functionName.js","webpack://healthy-workplace/./node_modules/ramda/es/equals.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_indexOf.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_includes.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_quote.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_toISOString.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_complement.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_filter.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isObject.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xfilter.js","webpack://healthy-workplace/./node_modules/ramda/es/filter.js","webpack://healthy-workplace/./node_modules/ramda/es/reject.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_toString.js","webpack://healthy-workplace/./node_modules/ramda/es/toString.js","webpack://healthy-workplace/./node_modules/ramda/es/concat.js","webpack://healthy-workplace/./node_modules/ramda/es/cond.js","webpack://healthy-workplace/./node_modules/ramda/es/constructN.js","webpack://healthy-workplace/./node_modules/ramda/es/construct.js","webpack://healthy-workplace/./node_modules/ramda/es/contains.js","webpack://healthy-workplace/./node_modules/ramda/es/converge.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xreduceBy.js","webpack://healthy-workplace/./node_modules/ramda/es/reduceBy.js","webpack://healthy-workplace/./node_modules/ramda/es/countBy.js","webpack://healthy-workplace/./node_modules/ramda/es/dec.js","webpack://healthy-workplace/./node_modules/ramda/es/defaultTo.js","webpack://healthy-workplace/./node_modules/ramda/es/descend.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_Set.js","webpack://healthy-workplace/./node_modules/ramda/es/difference.js","webpack://healthy-workplace/./node_modules/ramda/es/differenceWith.js","webpack://healthy-workplace/./node_modules/ramda/es/dissoc.js","webpack://healthy-workplace/./node_modules/ramda/es/remove.js","webpack://healthy-workplace/./node_modules/ramda/es/update.js","webpack://healthy-workplace/./node_modules/ramda/es/dissocPath.js","webpack://healthy-workplace/./node_modules/ramda/es/divide.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xdrop.js","webpack://healthy-workplace/./node_modules/ramda/es/drop.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xtake.js","webpack://healthy-workplace/./node_modules/ramda/es/take.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_dropLast.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xdropLast.js","webpack://healthy-workplace/./node_modules/ramda/es/dropLast.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_dropLastWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xdropLastWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/dropLastWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xdropRepeatsWith.js","webpack://healthy-workplace/./node_modules/ramda/es/last.js","webpack://healthy-workplace/./node_modules/ramda/es/dropRepeatsWith.js","webpack://healthy-workplace/./node_modules/ramda/es/dropRepeats.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xdropWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/dropWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/or.js","webpack://healthy-workplace/./node_modules/ramda/es/either.js","webpack://healthy-workplace/./node_modules/ramda/es/empty.js","webpack://healthy-workplace/./node_modules/ramda/es/takeLast.js","webpack://healthy-workplace/./node_modules/ramda/es/endsWith.js","webpack://healthy-workplace/./node_modules/ramda/es/eqBy.js","webpack://healthy-workplace/./node_modules/ramda/es/eqProps.js","webpack://healthy-workplace/./node_modules/ramda/es/evolve.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xfind.js","webpack://healthy-workplace/./node_modules/ramda/es/find.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xfindIndex.js","webpack://healthy-workplace/./node_modules/ramda/es/findIndex.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xfindLast.js","webpack://healthy-workplace/./node_modules/ramda/es/findLast.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xfindLastIndex.js","webpack://healthy-workplace/./node_modules/ramda/es/findLastIndex.js","webpack://healthy-workplace/./node_modules/ramda/es/flatten.js","webpack://healthy-workplace/./node_modules/ramda/es/flip.js","webpack://healthy-workplace/./node_modules/ramda/es/forEach.js","webpack://healthy-workplace/./node_modules/ramda/es/forEachObjIndexed.js","webpack://healthy-workplace/./node_modules/ramda/es/fromPairs.js","webpack://healthy-workplace/./node_modules/ramda/es/groupBy.js","webpack://healthy-workplace/./node_modules/ramda/es/groupWith.js","webpack://healthy-workplace/./node_modules/ramda/es/gt.js","webpack://healthy-workplace/./node_modules/ramda/es/gte.js","webpack://healthy-workplace/./node_modules/ramda/es/hasPath.js","webpack://healthy-workplace/./node_modules/ramda/es/has.js","webpack://healthy-workplace/./node_modules/ramda/es/hasIn.js","webpack://healthy-workplace/./node_modules/ramda/es/identical.js","webpack://healthy-workplace/./node_modules/ramda/es/ifElse.js","webpack://healthy-workplace/./node_modules/ramda/es/inc.js","webpack://healthy-workplace/./node_modules/ramda/es/includes.js","webpack://healthy-workplace/./node_modules/ramda/es/indexBy.js","webpack://healthy-workplace/./node_modules/ramda/es/indexOf.js","webpack://healthy-workplace/./node_modules/ramda/es/init.js","webpack://healthy-workplace/./node_modules/ramda/es/innerJoin.js","webpack://healthy-workplace/./node_modules/ramda/es/insert.js","webpack://healthy-workplace/./node_modules/ramda/es/insertAll.js","webpack://healthy-workplace/./node_modules/ramda/es/uniqBy.js","webpack://healthy-workplace/./node_modules/ramda/es/uniq.js","webpack://healthy-workplace/./node_modules/ramda/es/intersection.js","webpack://healthy-workplace/./node_modules/ramda/es/intersperse.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_objectAssign.js","webpack://healthy-workplace/./node_modules/ramda/es/objOf.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_stepCat.js","webpack://healthy-workplace/./node_modules/ramda/es/into.js","webpack://healthy-workplace/./node_modules/ramda/es/invert.js","webpack://healthy-workplace/./node_modules/ramda/es/invertObj.js","webpack://healthy-workplace/./node_modules/ramda/es/invoker.js","webpack://healthy-workplace/./node_modules/ramda/es/is.js","webpack://healthy-workplace/./node_modules/ramda/es/isEmpty.js","webpack://healthy-workplace/./node_modules/ramda/es/join.js","webpack://healthy-workplace/./node_modules/ramda/es/juxt.js","webpack://healthy-workplace/./node_modules/ramda/es/keysIn.js","webpack://healthy-workplace/./node_modules/ramda/es/lastIndexOf.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isNumber.js","webpack://healthy-workplace/./node_modules/ramda/es/length.js","webpack://healthy-workplace/./node_modules/ramda/es/lens.js","webpack://healthy-workplace/./node_modules/ramda/es/lensIndex.js","webpack://healthy-workplace/./node_modules/ramda/es/lensPath.js","webpack://healthy-workplace/./node_modules/ramda/es/lensProp.js","webpack://healthy-workplace/./node_modules/ramda/es/lt.js","webpack://healthy-workplace/./node_modules/ramda/es/lte.js","webpack://healthy-workplace/./node_modules/ramda/es/mapAccum.js","webpack://healthy-workplace/./node_modules/ramda/es/mapAccumRight.js","webpack://healthy-workplace/./node_modules/ramda/es/mapObjIndexed.js","webpack://healthy-workplace/./node_modules/ramda/es/match.js","webpack://healthy-workplace/./node_modules/ramda/es/mathMod.js","webpack://healthy-workplace/./node_modules/ramda/es/maxBy.js","webpack://healthy-workplace/./node_modules/ramda/es/sum.js","webpack://healthy-workplace/./node_modules/ramda/es/mean.js","webpack://healthy-workplace/./node_modules/ramda/es/median.js","webpack://healthy-workplace/./node_modules/ramda/es/memoizeWith.js","webpack://healthy-workplace/./node_modules/ramda/es/merge.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeAll.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeWithKey.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeDeepWithKey.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeDeepLeft.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeDeepRight.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeDeepWith.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeLeft.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeRight.js","webpack://healthy-workplace/./node_modules/ramda/es/mergeWith.js","webpack://healthy-workplace/./node_modules/ramda/es/min.js","webpack://healthy-workplace/./node_modules/ramda/es/minBy.js","webpack://healthy-workplace/./node_modules/ramda/es/modulo.js","webpack://healthy-workplace/./node_modules/ramda/es/move.js","webpack://healthy-workplace/./node_modules/ramda/es/multiply.js","webpack://healthy-workplace/./node_modules/ramda/es/negate.js","webpack://healthy-workplace/./node_modules/ramda/es/none.js","webpack://healthy-workplace/./node_modules/ramda/es/nthArg.js","webpack://healthy-workplace/./node_modules/ramda/es/o.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_of.js","webpack://healthy-workplace/./node_modules/ramda/es/of.js","webpack://healthy-workplace/./node_modules/ramda/es/omit.js","webpack://healthy-workplace/./node_modules/ramda/es/once.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_assertPromise.js","webpack://healthy-workplace/./node_modules/ramda/es/otherwise.js","webpack://healthy-workplace/./node_modules/ramda/es/over.js","webpack://healthy-workplace/./node_modules/ramda/es/pair.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_createPartialApplicator.js","webpack://healthy-workplace/./node_modules/ramda/es/partial.js","webpack://healthy-workplace/./node_modules/ramda/es/partialRight.js","webpack://healthy-workplace/./node_modules/ramda/es/partition.js","webpack://healthy-workplace/./node_modules/ramda/es/pathEq.js","webpack://healthy-workplace/./node_modules/ramda/es/pathOr.js","webpack://healthy-workplace/./node_modules/ramda/es/pathSatisfies.js","webpack://healthy-workplace/./node_modules/ramda/es/pick.js","webpack://healthy-workplace/./node_modules/ramda/es/pickAll.js","webpack://healthy-workplace/./node_modules/ramda/es/pickBy.js","webpack://healthy-workplace/./node_modules/ramda/es/pipeK.js","webpack://healthy-workplace/./node_modules/ramda/es/prepend.js","webpack://healthy-workplace/./node_modules/ramda/es/product.js","webpack://healthy-workplace/./node_modules/ramda/es/useWith.js","webpack://healthy-workplace/./node_modules/ramda/es/project.js","webpack://healthy-workplace/./node_modules/ramda/es/propEq.js","webpack://healthy-workplace/./node_modules/ramda/es/propIs.js","webpack://healthy-workplace/./node_modules/ramda/es/propOr.js","webpack://healthy-workplace/./node_modules/ramda/es/propSatisfies.js","webpack://healthy-workplace/./node_modules/ramda/es/props.js","webpack://healthy-workplace/./node_modules/ramda/es/range.js","webpack://healthy-workplace/./node_modules/ramda/es/reduceRight.js","webpack://healthy-workplace/./node_modules/ramda/es/reduceWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/reduced.js","webpack://healthy-workplace/./node_modules/ramda/es/times.js","webpack://healthy-workplace/./node_modules/ramda/es/repeat.js","webpack://healthy-workplace/./node_modules/ramda/es/replace.js","webpack://healthy-workplace/./node_modules/ramda/es/scan.js","webpack://healthy-workplace/./node_modules/ramda/es/sequence.js","webpack://healthy-workplace/./node_modules/ramda/es/set.js","webpack://healthy-workplace/./node_modules/ramda/es/sort.js","webpack://healthy-workplace/./node_modules/ramda/es/sortBy.js","webpack://healthy-workplace/./node_modules/ramda/es/sortWith.js","webpack://healthy-workplace/./node_modules/ramda/es/split.js","webpack://healthy-workplace/./node_modules/ramda/es/splitAt.js","webpack://healthy-workplace/./node_modules/ramda/es/splitEvery.js","webpack://healthy-workplace/./node_modules/ramda/es/splitWhen.js","webpack://healthy-workplace/./node_modules/ramda/es/startsWith.js","webpack://healthy-workplace/./node_modules/ramda/es/subtract.js","webpack://healthy-workplace/./node_modules/ramda/es/symmetricDifference.js","webpack://healthy-workplace/./node_modules/ramda/es/symmetricDifferenceWith.js","webpack://healthy-workplace/./node_modules/ramda/es/takeLastWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xtakeWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/takeWhile.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_xtap.js","webpack://healthy-workplace/./node_modules/ramda/es/tap.js","webpack://healthy-workplace/./node_modules/ramda/es/test.js","webpack://healthy-workplace/./node_modules/ramda/es/internal/_isRegExp.js","webpack://healthy-workplace/./node_modules/ramda/es/then.js","webpack://healthy-workplace/./node_modules/ramda/es/toLower.js","webpack://healthy-workplace/./node_modules/ramda/es/toPairs.js","webpack://healthy-workplace/./node_modules/ramda/es/toPairsIn.js","webpack://healthy-workplace/./node_modules/ramda/es/toUpper.js","webpack://healthy-workplace/./node_modules/ramda/es/transduce.js","webpack://healthy-workplace/./node_modules/ramda/es/transpose.js","webpack://healthy-workplace/./node_modules/ramda/es/traverse.js","webpack://healthy-workplace/./node_modules/ramda/es/trim.js","webpack://healthy-workplace/./node_modules/ramda/es/tryCatch.js","webpack://healthy-workplace/./node_modules/ramda/es/unapply.js","webpack://healthy-workplace/./node_modules/ramda/es/unary.js","webpack://healthy-workplace/./node_modules/ramda/es/uncurryN.js","webpack://healthy-workplace/./node_modules/ramda/es/unfold.js","webpack://healthy-workplace/./node_modules/ramda/es/union.js","webpack://healthy-workplace/./node_modules/ramda/es/uniqWith.js","webpack://healthy-workplace/./node_modules/ramda/es/unionWith.js","webpack://healthy-workplace/./node_modules/ramda/es/unless.js","webpack://healthy-workplace/./node_modules/ramda/es/unnest.js","webpack://healthy-workplace/./node_modules/ramda/es/until.js","webpack://healthy-workplace/./node_modules/ramda/es/valuesIn.js","webpack://healthy-workplace/./node_modules/ramda/es/view.js","webpack://healthy-workplace/./node_modules/ramda/es/when.js","webpack://healthy-workplace/./node_modules/ramda/es/where.js","webpack://healthy-workplace/./node_modules/ramda/es/whereEq.js","webpack://healthy-workplace/./node_modules/ramda/es/without.js","webpack://healthy-workplace/./node_modules/ramda/es/xprod.js","webpack://healthy-workplace/./node_modules/ramda/es/zip.js","webpack://healthy-workplace/./node_modules/ramda/es/zipObj.js","webpack://healthy-workplace/./node_modules/ramda/es/zipWith.js","webpack://healthy-workplace/./node_modules/ramda/es/thunkify.js","webpack://healthy-workplace/./node_modules/randombytes/browser.js","webpack://healthy-workplace/./node_modules/randomfill/browser.js","webpack://healthy-workplace/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://healthy-workplace/./node_modules/react-dom/index.js","webpack://healthy-workplace/./node_modules/react-is/cjs/react-is.production.min.js","webpack://healthy-workplace/./node_modules/react-is/index.js","webpack://healthy-workplace/./node_modules/react-reconciler/cjs/react-reconciler.production.min.js","webpack://healthy-workplace/./node_modules/react-reconciler/index.js","webpack://healthy-workplace/./node_modules/react-reconciler/node_modules/scheduler/cjs/scheduler.production.min.js","webpack://healthy-workplace/./node_modules/react-reconciler/node_modules/scheduler/index.js","webpack://healthy-workplace/./node_modules/react-slick/lib/arrows.js","webpack://healthy-workplace/./node_modules/react-slick/lib/default-props.js","webpack://healthy-workplace/./node_modules/react-slick/lib/dots.js","webpack://healthy-workplace/./node_modules/react-slick/lib/index.js","webpack://healthy-workplace/./node_modules/react-slick/lib/initial-state.js","webpack://healthy-workplace/./node_modules/react-slick/lib/inner-slider.js","webpack://healthy-workplace/./node_modules/react-slick/lib/slider.js","webpack://healthy-workplace/./node_modules/react-slick/lib/track.js","webpack://healthy-workplace/./node_modules/react-slick/lib/utils/innerSliderUtils.js","webpack://healthy-workplace/./node_modules/react-yup/dist/index.js","webpack://healthy-workplace/./node_modules/react/cjs/react.production.min.js","webpack://healthy-workplace/./node_modules/react/index.js","webpack://healthy-workplace/./node_modules/readable-stream/errors-browser.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/_stream_duplex.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/_stream_passthrough.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/_stream_readable.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/_stream_transform.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/_stream_writable.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/state.js","webpack://healthy-workplace/./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://healthy-workplace/./node_modules/readable-stream/readable-browser.js","webpack://healthy-workplace/./node_modules/regenerator-runtime/runtime.js","webpack://healthy-workplace/./node_modules/regexp.prototype.flags/implementation.js","webpack://healthy-workplace/./node_modules/regexp.prototype.flags/index.js","webpack://healthy-workplace/./node_modules/regexp.prototype.flags/polyfill.js","webpack://healthy-workplace/./node_modules/regexp.prototype.flags/shim.js","webpack://healthy-workplace/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://healthy-workplace/./node_modules/restructure/index.js","webpack://healthy-workplace/./node_modules/restructure/src/Array.js","webpack://healthy-workplace/./node_modules/restructure/src/Bitfield.js","webpack://healthy-workplace/./node_modules/restructure/src/Boolean.js","webpack://healthy-workplace/./node_modules/restructure/src/Buffer.js","webpack://healthy-workplace/./node_modules/restructure/src/DecodeStream.js","webpack://healthy-workplace/./node_modules/restructure/src/EncodeStream.js","webpack://healthy-workplace/./node_modules/restructure/src/Enum.js","webpack://healthy-workplace/./node_modules/restructure/src/LazyArray.js","webpack://healthy-workplace/./node_modules/restructure/src/Number.js","webpack://healthy-workplace/./node_modules/restructure/src/Optional.js","webpack://healthy-workplace/./node_modules/restructure/src/Pointer.js","webpack://healthy-workplace/./node_modules/restructure/src/Reserved.js","webpack://healthy-workplace/./node_modules/restructure/src/String.js","webpack://healthy-workplace/./node_modules/restructure/src/Struct.js","webpack://healthy-workplace/./node_modules/restructure/src/VersionedStruct.js","webpack://healthy-workplace/./node_modules/restructure/src/utils.js","webpack://healthy-workplace/./node_modules/ripemd160/index.js","webpack://healthy-workplace/./node_modules/safe-buffer/index.js","webpack://healthy-workplace/./node_modules/safer-buffer/safer.js","webpack://healthy-workplace/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://healthy-workplace/./node_modules/scheduler/index.js","webpack://healthy-workplace/./node_modules/sha.js/hash.js","webpack://healthy-workplace/./node_modules/sha.js/index.js","webpack://healthy-workplace/./node_modules/sha.js/sha.js","webpack://healthy-workplace/./node_modules/sha.js/sha1.js","webpack://healthy-workplace/./node_modules/sha.js/sha224.js","webpack://healthy-workplace/./node_modules/sha.js/sha256.js","webpack://healthy-workplace/./node_modules/sha.js/sha384.js","webpack://healthy-workplace/./node_modules/sha.js/sha512.js","webpack://healthy-workplace/./node_modules/shallowequal/index.js","webpack://healthy-workplace/./node_modules/simple-swizzle/index.js","webpack://healthy-workplace/./node_modules/simple-swizzle/node_modules/is-arrayish/index.js","webpack://healthy-workplace/./node_modules/store2/dist/store2.js","webpack://healthy-workplace/./node_modules/stream-browserify/index.js","webpack://healthy-workplace/./node_modules/string-convert/camel2hyphen.js","webpack://healthy-workplace/./node_modules/string_decoder/lib/string_decoder.js","webpack://healthy-workplace/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://healthy-workplace/./node_modules/svg-arc-to-cubic-bezier/modules/index.js","webpack://healthy-workplace/./node_modules/synchronous-promise/index.js","webpack://healthy-workplace/./node_modules/tiny-inflate/index.js","webpack://healthy-workplace/./node_modules/toposort/index.js","webpack://healthy-workplace/./node_modules/unicode-trie/index.js","webpack://healthy-workplace/./node_modules/util-deprecate/browser.js","webpack://healthy-workplace/./node_modules/util/support/isBufferBrowser.js","webpack://healthy-workplace/./node_modules/util/support/types.js","webpack://healthy-workplace/./node_modules/util/util.js","webpack://healthy-workplace/./node_modules/warning/warning.js","webpack://healthy-workplace/./node_modules/which-typed-array/index.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseHas.js","webpack://healthy-workplace/./node_modules/lodash-es/isArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_freeGlobal.js","webpack://healthy-workplace/./node_modules/lodash-es/_root.js","webpack://healthy-workplace/./node_modules/lodash-es/_Symbol.js","webpack://healthy-workplace/./node_modules/lodash-es/_getRawTag.js","webpack://healthy-workplace/./node_modules/lodash-es/_objectToString.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseGetTag.js","webpack://healthy-workplace/./node_modules/lodash-es/isObjectLike.js","webpack://healthy-workplace/./node_modules/lodash-es/isSymbol.js","webpack://healthy-workplace/./node_modules/lodash-es/_isKey.js","webpack://healthy-workplace/./node_modules/lodash-es/isObject.js","webpack://healthy-workplace/./node_modules/lodash-es/isFunction.js","webpack://healthy-workplace/./node_modules/lodash-es/_coreJsData.js","webpack://healthy-workplace/./node_modules/lodash-es/_isMasked.js","webpack://healthy-workplace/./node_modules/lodash-es/_toSource.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsNative.js","webpack://healthy-workplace/./node_modules/lodash-es/_getValue.js","webpack://healthy-workplace/./node_modules/lodash-es/_getNative.js","webpack://healthy-workplace/./node_modules/lodash-es/_nativeCreate.js","webpack://healthy-workplace/./node_modules/lodash-es/_hashClear.js","webpack://healthy-workplace/./node_modules/lodash-es/_hashDelete.js","webpack://healthy-workplace/./node_modules/lodash-es/_hashGet.js","webpack://healthy-workplace/./node_modules/lodash-es/_hashHas.js","webpack://healthy-workplace/./node_modules/lodash-es/_hashSet.js","webpack://healthy-workplace/./node_modules/lodash-es/_Hash.js","webpack://healthy-workplace/./node_modules/lodash-es/_listCacheClear.js","webpack://healthy-workplace/./node_modules/lodash-es/eq.js","webpack://healthy-workplace/./node_modules/lodash-es/_assocIndexOf.js","webpack://healthy-workplace/./node_modules/lodash-es/_listCacheDelete.js","webpack://healthy-workplace/./node_modules/lodash-es/_listCacheGet.js","webpack://healthy-workplace/./node_modules/lodash-es/_listCacheHas.js","webpack://healthy-workplace/./node_modules/lodash-es/_listCacheSet.js","webpack://healthy-workplace/./node_modules/lodash-es/_ListCache.js","webpack://healthy-workplace/./node_modules/lodash-es/_Map.js","webpack://healthy-workplace/./node_modules/lodash-es/_mapCacheClear.js","webpack://healthy-workplace/./node_modules/lodash-es/_isKeyable.js","webpack://healthy-workplace/./node_modules/lodash-es/_getMapData.js","webpack://healthy-workplace/./node_modules/lodash-es/_mapCacheDelete.js","webpack://healthy-workplace/./node_modules/lodash-es/_mapCacheGet.js","webpack://healthy-workplace/./node_modules/lodash-es/_mapCacheHas.js","webpack://healthy-workplace/./node_modules/lodash-es/_mapCacheSet.js","webpack://healthy-workplace/./node_modules/lodash-es/_MapCache.js","webpack://healthy-workplace/./node_modules/lodash-es/memoize.js","webpack://healthy-workplace/./node_modules/lodash-es/_stringToPath.js","webpack://healthy-workplace/./node_modules/lodash-es/_memoizeCapped.js","webpack://healthy-workplace/./node_modules/lodash-es/_arrayMap.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseToString.js","webpack://healthy-workplace/./node_modules/lodash-es/toString.js","webpack://healthy-workplace/./node_modules/lodash-es/_castPath.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsArguments.js","webpack://healthy-workplace/./node_modules/lodash-es/isArguments.js","webpack://healthy-workplace/./node_modules/lodash-es/_isIndex.js","webpack://healthy-workplace/./node_modules/lodash-es/isLength.js","webpack://healthy-workplace/./node_modules/lodash-es/_toKey.js","webpack://healthy-workplace/./node_modules/lodash-es/_hasPath.js","webpack://healthy-workplace/./node_modules/lodash-es/has.js","webpack://healthy-workplace/./node_modules/lodash-es/_stackClear.js","webpack://healthy-workplace/./node_modules/lodash-es/_stackDelete.js","webpack://healthy-workplace/./node_modules/lodash-es/_stackGet.js","webpack://healthy-workplace/./node_modules/lodash-es/_stackHas.js","webpack://healthy-workplace/./node_modules/lodash-es/_stackSet.js","webpack://healthy-workplace/./node_modules/lodash-es/_Stack.js","webpack://healthy-workplace/./node_modules/lodash-es/_arrayEach.js","webpack://healthy-workplace/./node_modules/lodash-es/_defineProperty.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseAssignValue.js","webpack://healthy-workplace/./node_modules/lodash-es/_assignValue.js","webpack://healthy-workplace/./node_modules/lodash-es/_copyObject.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseTimes.js","webpack://healthy-workplace/./node_modules/lodash-es/stubFalse.js","webpack://healthy-workplace/./node_modules/lodash-es/isBuffer.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseUnary.js","webpack://healthy-workplace/./node_modules/lodash-es/_nodeUtil.js","webpack://healthy-workplace/./node_modules/lodash-es/isTypedArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://healthy-workplace/./node_modules/lodash-es/_isPrototype.js","webpack://healthy-workplace/./node_modules/lodash-es/_overArg.js","webpack://healthy-workplace/./node_modules/lodash-es/_nativeKeys.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseKeys.js","webpack://healthy-workplace/./node_modules/lodash-es/isArrayLike.js","webpack://healthy-workplace/./node_modules/lodash-es/keys.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseAssign.js","webpack://healthy-workplace/./node_modules/lodash-es/_nativeKeysIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseKeysIn.js","webpack://healthy-workplace/./node_modules/lodash-es/keysIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseAssignIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_cloneBuffer.js","webpack://healthy-workplace/./node_modules/lodash-es/_copyArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_arrayFilter.js","webpack://healthy-workplace/./node_modules/lodash-es/stubArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_getSymbols.js","webpack://healthy-workplace/./node_modules/lodash-es/_copySymbols.js","webpack://healthy-workplace/./node_modules/lodash-es/_arrayPush.js","webpack://healthy-workplace/./node_modules/lodash-es/_getPrototype.js","webpack://healthy-workplace/./node_modules/lodash-es/_getSymbolsIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_copySymbolsIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://healthy-workplace/./node_modules/lodash-es/_getAllKeys.js","webpack://healthy-workplace/./node_modules/lodash-es/_getAllKeysIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_DataView.js","webpack://healthy-workplace/./node_modules/lodash-es/_Promise.js","webpack://healthy-workplace/./node_modules/lodash-es/_Set.js","webpack://healthy-workplace/./node_modules/lodash-es/_WeakMap.js","webpack://healthy-workplace/./node_modules/lodash-es/_getTag.js","webpack://healthy-workplace/./node_modules/lodash-es/_initCloneArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_Uint8Array.js","webpack://healthy-workplace/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://healthy-workplace/./node_modules/lodash-es/_cloneDataView.js","webpack://healthy-workplace/./node_modules/lodash-es/_cloneRegExp.js","webpack://healthy-workplace/./node_modules/lodash-es/_cloneSymbol.js","webpack://healthy-workplace/./node_modules/lodash-es/_cloneTypedArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_initCloneByTag.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseCreate.js","webpack://healthy-workplace/./node_modules/lodash-es/_initCloneObject.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsMap.js","webpack://healthy-workplace/./node_modules/lodash-es/isMap.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsSet.js","webpack://healthy-workplace/./node_modules/lodash-es/isSet.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseClone.js","webpack://healthy-workplace/./node_modules/lodash-es/cloneDeepWith.js","webpack://healthy-workplace/./node_modules/lodash-es/isString.js","webpack://healthy-workplace/./node_modules/lodash-es/_iteratorToArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_mapToArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_setToArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_asciiToArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_hasUnicode.js","webpack://healthy-workplace/./node_modules/lodash-es/_unicodeToArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_stringToArray.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseValues.js","webpack://healthy-workplace/./node_modules/lodash-es/values.js","webpack://healthy-workplace/./node_modules/lodash-es/toArray.js","webpack://healthy-workplace/./node_modules/yup/es/util/printValue.js","webpack://healthy-workplace/./node_modules/yup/es/locale.js","webpack://healthy-workplace/./node_modules/yup/es/util/isSchema.js","webpack://healthy-workplace/./node_modules/yup/es/Condition.js","webpack://healthy-workplace/./node_modules/yup/es/ValidationError.js","webpack://healthy-workplace/./node_modules/yup/es/util/runValidations.js","webpack://healthy-workplace/./node_modules/yup/es/util/prependDeep.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseFor.js","webpack://healthy-workplace/./node_modules/lodash-es/_createBaseFor.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseForOwn.js","webpack://healthy-workplace/./node_modules/lodash-es/_setCacheAdd.js","webpack://healthy-workplace/./node_modules/lodash-es/_setCacheHas.js","webpack://healthy-workplace/./node_modules/lodash-es/_SetCache.js","webpack://healthy-workplace/./node_modules/lodash-es/_arraySome.js","webpack://healthy-workplace/./node_modules/lodash-es/_cacheHas.js","webpack://healthy-workplace/./node_modules/lodash-es/_equalArrays.js","webpack://healthy-workplace/./node_modules/lodash-es/_equalByTag.js","webpack://healthy-workplace/./node_modules/lodash-es/_equalObjects.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsEqual.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIsMatch.js","webpack://healthy-workplace/./node_modules/lodash-es/_isStrictComparable.js","webpack://healthy-workplace/./node_modules/lodash-es/_getMatchData.js","webpack://healthy-workplace/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseMatches.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseGet.js","webpack://healthy-workplace/./node_modules/lodash-es/get.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseHasIn.js","webpack://healthy-workplace/./node_modules/lodash-es/hasIn.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://healthy-workplace/./node_modules/lodash-es/identity.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseProperty.js","webpack://healthy-workplace/./node_modules/lodash-es/_basePropertyDeep.js","webpack://healthy-workplace/./node_modules/lodash-es/property.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseIteratee.js","webpack://healthy-workplace/./node_modules/lodash-es/mapValues.js","webpack://healthy-workplace/./node_modules/yup/es/Reference.js","webpack://healthy-workplace/./node_modules/yup/es/util/createValidation.js","webpack://healthy-workplace/./node_modules/yup/es/util/reach.js","webpack://healthy-workplace/./node_modules/yup/es/mixed.js","webpack://healthy-workplace/./node_modules/yup/es/util/inherits.js","webpack://healthy-workplace/./node_modules/yup/es/boolean.js","webpack://healthy-workplace/./node_modules/yup/es/util/isAbsent.js","webpack://healthy-workplace/./node_modules/yup/es/string.js","webpack://healthy-workplace/./node_modules/yup/es/number.js","webpack://healthy-workplace/./node_modules/yup/es/util/isodate.js","webpack://healthy-workplace/./node_modules/yup/es/date.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack://healthy-workplace/./node_modules/lodash-es/_arrayReduce.js","webpack://healthy-workplace/./node_modules/lodash-es/_deburrLetter.js","webpack://healthy-workplace/./node_modules/lodash-es/_basePropertyOf.js","webpack://healthy-workplace/./node_modules/lodash-es/deburr.js","webpack://healthy-workplace/./node_modules/lodash-es/_asciiWords.js","webpack://healthy-workplace/./node_modules/lodash-es/_hasUnicodeWord.js","webpack://healthy-workplace/./node_modules/lodash-es/_unicodeWords.js","webpack://healthy-workplace/./node_modules/lodash-es/words.js","webpack://healthy-workplace/./node_modules/lodash-es/_createCompounder.js","webpack://healthy-workplace/./node_modules/lodash-es/snakeCase.js","webpack://healthy-workplace/./node_modules/lodash-es/_baseSlice.js","webpack://healthy-workplace/./node_modules/lodash-es/_castSlice.js","webpack://healthy-workplace/./node_modules/lodash-es/upperFirst.js","webpack://healthy-workplace/./node_modules/lodash-es/_createCaseFirst.js","webpack://healthy-workplace/./node_modules/lodash-es/capitalize.js","webpack://healthy-workplace/./node_modules/lodash-es/camelCase.js","webpack://healthy-workplace/./node_modules/lodash-es/mapKeys.js","webpack://healthy-workplace/./node_modules/yup/es/util/sortFields.js","webpack://healthy-workplace/./node_modules/yup/es/util/sortByKeyOrder.js","webpack://healthy-workplace/./node_modules/yup/es/util/makePath.js","webpack://healthy-workplace/./node_modules/yup/es/object.js","webpack://healthy-workplace/./node_modules/yup/es/array.js","webpack://healthy-workplace/./node_modules/yup/es/Lazy.js","webpack://healthy-workplace/./node_modules/yup/es/setLocale.js","webpack://healthy-workplace/./node_modules/yup/es/index.js","webpack://healthy-workplace/webpack/bootstrap","webpack://healthy-workplace/webpack/runtime/create fake namespace object","webpack://healthy-workplace/webpack/runtime/compat get default export","webpack://healthy-workplace/webpack/runtime/define property getters","webpack://healthy-workplace/webpack/runtime/global","webpack://healthy-workplace/webpack/runtime/hasOwnProperty shorthand","webpack://healthy-workplace/webpack/runtime/make namespace object","webpack://healthy-workplace/webpack/runtime/node module decorator","webpack://healthy-workplace/webpack/runtime/publicPath","webpack://healthy-workplace/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://healthy-workplace/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://healthy-workplace/./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://healthy-workplace/./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://healthy-workplace/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://healthy-workplace/./node_modules/polished/dist/polished.esm.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://healthy-workplace/./src/components/BenefitTable.tsx","webpack://healthy-workplace/./src/assets/svg/clipboard.svg","webpack://healthy-workplace/./src/assets/svg/clockArrow.svg","webpack://healthy-workplace/./src/assets/svg/speechBubbles.svg","webpack://healthy-workplace/./src/assets/svg/thumbsUp.svg","webpack://healthy-workplace/./src/assets/svg/closeIcon.svg","webpack://healthy-workplace/./src/components/BusinessCircles.tsx","webpack://healthy-workplace/./src/assets/svg/questionMark.svg","webpack://healthy-workplace/./src/assets/svg/lightbulb.svg","webpack://healthy-workplace/./src/assets/svg/warningSign.svg","webpack://healthy-workplace/./src/assets/svg/dollarSignCircled.svg","webpack://healthy-workplace/./src/components/PracticeCircles.tsx","webpack://healthy-workplace/./src/theme.ts","webpack://healthy-workplace/./src/components/RiskFactors.tsx","webpack://healthy-workplace/./src/assets/svg/couch.svg","webpack://healthy-workplace/./src/assets/svg/hamburger.svg","webpack://healthy-workplace/./src/assets/svg/cigarette.svg","webpack://healthy-workplace/./src/assets/svg/beer.svg","webpack://healthy-workplace/./src/assets/svg/tissue.svg","webpack://healthy-workplace/./src/assets/svg/arrowsUp.svg","webpack://healthy-workplace/./src/assets/svg/userOxygen.svg","webpack://healthy-workplace/./src/assets/svg/userWinning.svg","webpack://healthy-workplace/./src/components/RoleOfManagement.tsx","webpack://healthy-workplace/./src/assets/svg/injuredHand.svg","webpack://healthy-workplace/./src/components/MotivateEngage.tsx","webpack://healthy-workplace/./src/assets/svg/speechBubblesColour.svg","webpack://healthy-workplace/./src/assets/svg/lightbulbColour.svg","webpack://healthy-workplace/./src/assets/svg/cogsColour.svg","webpack://healthy-workplace/./src/components/ProgramPromotion.tsx","webpack://healthy-workplace/./src/assets/svg/page.svg","webpack://healthy-workplace/./src/assets/svg/globeCircled.svg","webpack://healthy-workplace/./src/assets/svg/speechBubbles2.svg","webpack://healthy-workplace/./src/assets/svg/calendarCheck.svg","webpack://healthy-workplace/./node_modules/react-transition-group/esm/config.js","webpack://healthy-workplace/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://healthy-workplace/./node_modules/react-transition-group/esm/Transition.js","webpack://healthy-workplace/./src/components/StagesOfChange.tsx","webpack://healthy-workplace/./src/assets/svg/userStand.svg","webpack://healthy-workplace/./src/assets/svg/userSignal.svg","webpack://healthy-workplace/./src/assets/svg/userBoxes.svg","webpack://healthy-workplace/./src/assets/svg/userClimbing.svg","webpack://healthy-workplace/./src/assets/svg/userCog.svg","webpack://healthy-workplace/./src/components/StickyMessage.tsx","webpack://healthy-workplace/./src/components/BestPractice.tsx","webpack://healthy-workplace/./src/components/EducationActivities.tsx","webpack://healthy-workplace/./src/components/SettingFoundation.tsx","webpack://healthy-workplace/./src/assets/svg/bikeRack.svg","webpack://healthy-workplace/./src/components/WorkEnvironment.tsx","webpack://healthy-workplace/./src/assets/svg/fridge.svg","webpack://healthy-workplace/./src/assets/svg/kitchenBench.svg","webpack://healthy-workplace/./src/assets/svg/desk.svg","webpack://healthy-workplace/./src/assets/svg/meetingRoom.svg","webpack://healthy-workplace/./src/assets/svg/shower.svg","webpack://healthy-workplace/./src/assets/svg/vendingMachine.svg","webpack://healthy-workplace/./src/assets/svg/microwave.svg","webpack://healthy-workplace/./src/assets/svg/noSmoking.svg","webpack://healthy-workplace/./src/assets/svg/newFile.svg","webpack://healthy-workplace/./src/components/ActionPlan.tsx","webpack://healthy-workplace/./src/assets/svg/trophy.svg","webpack://healthy-workplace/./src/assets/svg/flag.svg","webpack://healthy-workplace/./src/assets/svg/pencilRuler.svg","webpack://healthy-workplace/./src/assets/svg/user2.svg","webpack://healthy-workplace/./src/components/ConsultationQuestions.tsx","webpack://healthy-workplace/./src/components/StepsToAssess.tsx","webpack://healthy-workplace/./node_modules/react-transition-group/esm/SwitchTransition.js","webpack://healthy-workplace/./src/assets/svg/04_file.svg","webpack://healthy-workplace/./src/assets/svg/04_eye.svg","webpack://healthy-workplace/./src/assets/svg/04_conversation.svg","webpack://healthy-workplace/./src/assets/svg/04_graph.svg","webpack://healthy-workplace/./node_modules/dom-helpers/esm/hasClass.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/removeClass.js","webpack://healthy-workplace/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/addClass.js","webpack://healthy-workplace/./src/components/SmartObjectives.tsx","webpack://healthy-workplace/./src/components/WorkplaceAssessment.tsx","webpack://healthy-workplace/./node_modules/dom-helpers/esm/contains.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useMounted.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useWillUnmount.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useUpdatedRef.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useTimeout.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/safeFindDOMNode.js","webpack://healthy-workplace/./node_modules/uncontrollable/lib/esm/hook.js","webpack://healthy-workplace/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useCallbackRef.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useMergedRefs.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/enums.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useSafeState.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/math.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/within.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/createPopper.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/popper.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://healthy-workplace/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/usePopper.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/canUseDOM.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/addEventListener.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/removeEventListener.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/listen.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useCommittedRef.js","webpack://healthy-workplace/./node_modules/@restart/hooks/esm/useEventCallback.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/ownerDocument.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/useRootClose.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/ownerDocument.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/useWaitForDOMRef.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/mergeOptionsWithPopperConfig.js","webpack://healthy-workplace/./node_modules/react-overlays/esm/Overlay.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/ThemeProvider.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/usePopperMarginModifiers.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/getComputedStyle.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/ownerWindow.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/hyphenate.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/hyphenateStyle.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/isTransform.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/css.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/transitionEnd.js","webpack://healthy-workplace/./node_modules/dom-helpers/esm/triggerEvent.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/transitionEndListener.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/Fade.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/triggerBrowserReflow.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/Overlay.js","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/OverlayTrigger.js","webpack://healthy-workplace/./src/assets/svg/externalLink.svg","webpack://healthy-workplace/./src/components/ModuleSection.tsx","webpack://healthy-workplace/./src/components/ModuleFooter.tsx","webpack://healthy-workplace/./src/state/AppContext.tsx","webpack://healthy-workplace/./src/constants.ts","webpack://healthy-workplace/./src/state/GlobalUser.tsx","webpack://healthy-workplace/./src/components/ModuleHeader.tsx","webpack://healthy-workplace/./src/components/Flipper.tsx","webpack://healthy-workplace/./node_modules/react-bootstrap/esm/Tooltip.js","webpack://healthy-workplace/./src/components/Tooltips.tsx","webpack://healthy-workplace/./src/ui/Form/IconField.tsx","webpack://healthy-workplace/./src/ui/Form/Checkbox.tsx","webpack://healthy-workplace/./src/assets/svg/tick.svg","webpack://healthy-workplace/./src/ui/Form/ValidationError.tsx","webpack://healthy-workplace/./src/components/ModuleQuizForm.tsx","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/toDate/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/isValid/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://healthy-workplace/./node_modules/date-fns/esm/format/index.js","webpack://healthy-workplace/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://healthy-workplace/./node_modules/@react-pdf/renderer/lib/react-pdf.browser.es.js","webpack://healthy-workplace/./src/components/Certificate.tsx","webpack://healthy-workplace/./src/components/Hub_Flipper.tsx","webpack://healthy-workplace/./src/components/Hub_InteractiveTable.tsx","webpack://healthy-workplace/./src/assets/svg/trophy-gold.svg","webpack://healthy-workplace/./src/assets/svg/rightArrow.svg","webpack://healthy-workplace/./src/assets/svg/clock.svg","webpack://healthy-workplace/./src/components/Hub_InteractiveTraining.tsx","webpack://healthy-workplace/./src/components/Hub_ThreeCircles.tsx","webpack://healthy-workplace/./src/components/Hub_QuickWins.tsx","webpack://healthy-workplace/./node_modules/date-fns/esm/formatISO/index.js","webpack://healthy-workplace/./src/util/CmHelpers.ts","webpack://healthy-workplace/./src/views/modules/module1.tsx","webpack://healthy-workplace/./src/views/modules/module2.tsx","webpack://healthy-workplace/./src/views/modules/module3.tsx","webpack://healthy-workplace/./src/views/modules/module4.tsx","webpack://healthy-workplace/./src/assets/svg/pin.svg","webpack://healthy-workplace/./src/views/start.tsx","webpack://healthy-workplace/./src/assets/svg/email.svg","webpack://healthy-workplace/./src/assets/svg/user.svg","webpack://healthy-workplace/./src/views/registration.tsx","webpack://healthy-workplace/./src/views/program-finish.tsx","webpack://healthy-workplace/./src/App.tsx","webpack://healthy-workplace/./src/styles/main.scss?fe74","webpack://healthy-workplace/./src/index.tsx"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","module","exports","fn","self","this","args","arguments","apply","err","undefined","__esModule","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","Constructor","protoProps","staticProps","prototype","obj","_createClass","_extends","assign","source","hasOwnProperty","call","_inheritsLoose","subClass","superClass","create","constructor","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_typeof","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","Symbol","iterator","_asyncToGenerator","_regeneratorRuntime","fetch","fontkit","_interopDefaultLegacy","e","_asyncToGenerator__default","_extends__default","_regeneratorRuntime__default","_objectWithoutPropertiesLoose__default","fetch__default","fontkit__default","FONT_WEIGHTS","thin","hairline","ultralight","extralight","light","normal","medium","semibold","demibold","bold","ultrabold","extrabold","heavy","black","fetchFont","_ref","mark","_callee","src","options","response","buffer","wrap","_context","prev","next","sent","arrayBuffer","abrupt","name","Buffer","from","stop","_x","_x2","sortByFontWeight","a","b","fontWeight","FontSource","fontFamily","fontStyle","data","loading","load","_load","_callee2","postscriptName","_this$options","headers","body","_this$options$method","method","_this","_context2","dataUrl","header","hasDataPrefix","hasBase64Prefix","split","substring","open","Font","family","sources","_proto2","register","_ref2","numericFontWeight","resolveFontWeight","push","res","_descriptor$fontWeigh","_descriptor$fontStyle","styleSources","filter","s","exactFit","find","leftOffset","rightOffset","lt","sort","gt","Error","standard","fonts","emojiSource","hyphenationCallback","registerEmojiSource","url","_ref$format","format","registerHyphenationCallback","callback","getFont","includes","f","reset","clear","getRegisteredFonts","getEmojiSource","getHyphenationCallback","getRegisteredFontFamilies","_applyDecoratedDescriptor","property","decorators","context","forEach","initializer","slice","reverse","reduce","decorator","_defineProperty","formats","Map","memoized","_len","Array","_key","result","registerFormat","openSync","filename","probe","font","defaultLanguage","setDefaultLanguage","lang","SubHeader","firstCode","entryCount","idDelta","idRangeOffset","CmapGroup","startCharCode","endCharCode","glyphID","UnicodeValueRange","startUnicodeValue","additionalCount","UVSMapping","unicodeValue","DefaultUVS","NonDefaultUVS","VarSelectorRecord","varSelector","defaultUVS","type","nonDefaultUVS","CmapSubtable","0","language","codeMap","2","subHeaderKeys","subHeaderCount","t","Math","max","subHeaders","glyphIndexArray","4","segCountX2","segCount","searchRange","entrySelector","rangeShift","endCode","reservedPad","startCode","_currentOffset","6","glyphIndices","8","reserved","is32","nGroups","groups","10","12","13","14","numRecords","varSelectors","CmapEntry","platformID","encodingID","table","lazy","cmap","version","numSubtables","tables","head","revision","checkSumAdjustment","magicNumber","flags","unitsPerEm","created","modified","xMin","yMin","xMax","yMax","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","hhea","ascent","descent","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","HmtxEntry","advance","bearing","hmtx","metrics","parent","bearings","maxp","numGlyphs","maxPoints","maxContours","maxComponentPoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","getEncoding","languageID","MAC_LANGUAGE_ENCODINGS","ENCODINGS","15","17","18","24","25","26","27","28","30","37","38","39","40","143","146","LANGUAGES","60","90","1","31","61","91","32","62","92","3","33","63","93","34","64","94","5","35","65","128","36","66","129","7","67","130","68","131","9","69","132","70","133","11","41","71","134","42","72","135","43","73","136","44","74","137","45","75","138","16","46","76","139","47","77","140","48","78","141","19","49","79","142","20","50","80","21","51","81","144","22","52","82","145","23","53","83","54","84","147","55","85","148","56","86","149","57","87","150","58","88","151","29","59","89","_createForOfIteratorHelperLoose$s","allowArrayLike","it","isArray","minLen","_arrayLikeToArray$s","n","toString","test","_unsupportedIterableToArray$s","TypeError","bind","arr","len","arr2","NameRecord","nameID","string","relativeTo","allowNull","LangTagRecord","tag","NameTable","count","stringOffset","records","langTagCount","langTags","NAMES","process","stream","_step","_iterator","record","preEncode","val","byteLength","en","size","OS2","xAvgCharWidth","usWeightClass","usWidthClass","fsType","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","sFamilyClass","panose","ulCharRange","vendorID","fsSelection","usFirstCharIndex","usLastCharIndex","typoAscender","typoDescender","typoLineGap","winAscent","winDescent","codePageRange","xHeight","capHeight","defaultChar","breakChar","maxContent","usLowerOpticalPointSize","usUpperOpticalPointSize","versions","post","italicAngle","underlinePosition","underlineThickness","isFixedPitch","minMemType42","maxMemType42","minMemType1","maxMemType1","numberOfGlyphs","glyphNameIndex","names","2.5","offsets","map","cvt","controlValues","fpgm","instructions","loca","prep","controlValueProgram","glyf","_createForOfIteratorHelperLoose$r","_arrayLikeToArray$r","_unsupportedIterableToArray$r","CFFIndex","_proto","getCFFVersion","ctx","hdrSize","decode","readUInt32BE","readUInt16BE","offsetType","offSize","readUInt8","pos","ret","startPos","start","end","offset","item","encode","writeUInt16BE","sizes","writeUInt8","_i","_sizes","_step2","_iterator2","_item","FLOAT_LOOKUP","FLOAT_ENCODE_LOOKUP","CFFOperand","readInt16BE","readInt32BE","str","n1","n2","parseFloat","forceLarge","ceil","Number","writeInt32BE","writeInt16BE","c1","c2","FLOAT_EOF","_createForOfIteratorHelperLoose$q","_arrayLikeToArray$q","_unsupportedIterableToArray$q","CFFDict","ops","fields","field","decodeOperands","operands","op","encodeOperands","_this2","defineProperties","_startOffset","_field","PropertyDescriptor","dict","includePointers","pointerSize","startOffset","k","pointers","pointerOffset","_step3","_iterator3","_step4","_iterator4","_step5","_iterator5","_op","ptr","CFFPointer","_r$Pointer","Ptr","valueOf","CFFPrivateDict","CFFBlendOp","numBlends","pop","standardStrings","StandardEncoding","ISOAdobeCharset","LangSysTable","reqFeatureIndex","featureCount","featureIndexes","LangSysRecord","langSys","Script","defaultLangSys","langSysRecords","ScriptRecord","script","ScriptList","Feature","featureParams","lookupCount","lookupListIndexes","FeatureRecord","feature","FeatureList","LookupFlags","markAttachmentType","LookupList","SubTable","Lookup","lookupType","subTableCount","subTables","markFilteringSet","useMarkFilteringSet","_","RangeRecord","startCoverageIndex","Coverage","glyphCount","glyphs","rangeCount","rangeRecords","ClassRangeRecord","class","ClassDef","startGlyph","classValueArray","classRangeCount","classRangeRecord","Device","deltaFormat","LookupRecord","sequenceIndex","lookupListIndex","Rule","input","lookupRecords","RuleSet","ClassRule","classes","ClassSet","Context","coverage","ruleSetCount","ruleSets","classDef","classSetCnt","classSet","coverages","ChainRule","backtrackGlyphCount","backtrack","inputGlyphCount","lookaheadGlyphCount","lookahead","ChainRuleSet","ChainingContext","chainCount","chainRuleSets","backtrackClassDef","inputClassDef","lookaheadClassDef","chainClassSet","backtrackCoverage","inputCoverage","lookaheadCoverage","F2DOT14","RegionAxisCoordinates","startCoord","peakCoord","endCoord","VariationRegionList","axisCount","regionCount","variationRegions","DeltaSet","shortDeltas","shortDeltaCount","regionDeltas","regionIndexCount","deltas","concat","ItemVariationData","itemCount","regionIndexes","deltaSets","ItemVariationStore","variationRegionList","variationDataCount","itemVariationData","ConditionTable","axisIndex","filterRangeMinValue","filterRangeMaxValue","ConditionSet","conditionCount","conditionTable","FeatureTableSubstitutionRecord","featureIndex","alternateFeatureTable","FeatureTableSubstitution","substitutionCount","substitutions","FeatureVariationRecord","conditionSet","featureTableSubstitution","FeatureVariations","majorVersion","minorVersion","featureVariationRecordCount","featureVariationRecords","PredefinedOp","predefinedOps","index","CFFEncodingVersion","_r$Number","Range1","first","nLeft","Range2","CFFEncoding","nCodes","codes","nRanges","ranges","RangeArray","_r$Array","resolveLength","range","CFFCharset","CharStrings","FDRange3","fd","FDRange4","FDSelect","fds","sentinel","CFFPrivateOp","_proto4","FontDict","CFFTopDict","VariationStore","itemVariationStore","CFF2TopDict","CFFTop","nameIndex","topDictIndex","stringIndex","globalSubrIndex","topDict","CFFFont","top","isCIDFont","ROS","sid","getCharString","glyph","readBuffer","getGlyphName","gid","charset","fdForGlyph","low","high","mid","privateDictForGlyph","FDArray","Private","FullName","FamilyName","VerticalOrigin","glyphIndex","vertOriginY","VORG","defaultVertOriginY","numVertOriginYMetrics","BigMetrics","height","width","horiBearingX","horiBearingY","horiAdvance","vertBearingX","vertBearingY","vertAdvance","SmallMetrics","bearingX","bearingY","EBDTComponent","xOffset","yOffset","ByteAligned","BitAligned","pad","numComponents","components","dataLen","SBitLineMetrics","ascender","descender","widthMax","caretSlopeNumerator","caretSlopeDenominator","minOriginSB","minAdvanceSB","maxBeforeBL","minAfterBL","CodeOffsetPair","glyphCode","IndexSubtable","imageFormat","imageDataOffset","offsetArray","lastGlyphIndex","firstGlyphIndex","imageSize","bigMetrics","glyphArray","glyphCodeArray","IndexSubtableArray","subtable","BitmapSizeTable","indexSubTableArray","indexTablesSize","numberOfIndexSubTables","colorRef","hori","vert","startGlyphIndex","endGlyphIndex","ppemX","ppemY","bitDepth","EBLC","numSizes","ImageTable","ppem","resolution","imageOffsets","sbix","numImgTables","imageTables","LayerRecord","paletteIndex","BaseGlyphRecord","firstLayerIndex","numLayers","COLR","numBaseGlyphRecords","baseGlyphRecord","layerRecords","numLayerRecords","ColorRecord","blue","green","red","alpha","CPAL","numPaletteEntries","numPalettes","numColorRecords","colorRecords","colorRecordIndices","offsetPaletteTypeArray","offsetPaletteLabelArray","offsetPaletteEntryLabelArray","BaseCoord","coordinate","referenceGlyph","baseCoordPoint","deviceTable","BaseValues","defaultIndex","baseCoordCount","baseCoords","FeatMinMaxRecord","minCoord","maxCoord","MinMax","featMinMaxCount","featMinMaxRecords","BaseLangSysRecord","minMax","BaseScript","baseValues","defaultMinMax","baseLangSysCount","baseLangSysRecords","BaseScriptRecord","BaseScriptList","BaseTagList","Axis$1","baseTagList","baseScriptList","BASE","horizAxis","vertAxis","AttachPoint","AttachList","attachPoints","CaretValue","caretValuePoint","LigGlyph","LigCaretList","ligGlyphCount","ligGlyphs","MarkGlyphSetsDef","markSetTableFormat","markSetCount","GDEF","glyphClassDef","attachList","ligCaretList","markAttachClassDef","markGlyphSetsDef","ValueFormat","types","xPlacement","yPlacement","xAdvance","yAdvance","xPlaDevice","yPlaDevice","xAdvDevice","yAdvDevice","ValueRecord","buildStruct","struct","rel","PairValueRecord","secondGlyph","value1","value2","PairSet","Class2Record","Anchor","xCoordinate","yCoordinate","anchorPoint","xDeviceTable","yDeviceTable","EntryExitRecord","entryAnchor","exitAnchor","MarkRecord","markAnchor","MarkArray","BaseRecord","classCount","BaseArray","ComponentRecord","LigatureAttach","LigatureArray","GPOSLookup","valueFormat","valueCount","values","valueFormat1","valueFormat2","pairSetCount","pairSets","classDef1","classDef2","class1Count","class2Count","classRecords","entryExitCount","entryExitRecords","markCoverage","baseCoverage","markArray","baseArray","ligatureCoverage","ligatureArray","mark1Coverage","mark2Coverage","mark1Array","mark2Array","posFormat","extension","GPOS","scriptList","featureList","lookupList","featureVariations","Sequence","AlternateSet","Ligature","compCount","LigatureSet","GSUBLookup","deltaGlyphID","substitute","substFormat","sequences","alternateSet","ligatureSets","substitutes","GSUB","JstfGSUBModList","JstfPriority","shrinkageEnableGSUB","shrinkageDisableGSUB","shrinkageEnableGPOS","shrinkageDisableGPOS","shrinkageJstfMax","extensionEnableGSUB","extensionDisableGSUB","extensionEnableGPOS","extensionDisableGPOS","extensionJstfMax","JstfLangSys","JstfLangSysRecord","jstfLangSys","JstfScript","extenderGlyphs","langSysCount","JstfScriptRecord","JSTF","scriptCount","VariableSizeNumber","_size","readUInt24BE","MapDataEntry","entry","entryFormat","outerIndex","innerIndex","DeltaSetIndexMap","mapCount","mapData","HVAR","advanceWidthMapping","LSBMapping","RSBMapping","Signature","SignatureBlock","cbSignature","signature","DSIG","ulVersion","usNumSigs","usFlag","signatures","signatureBlocks","GaspRange","rangeMaxPPEM","rangeGaspBehavior","gasp","numRanges","gaspRanges","DeviceRecord","pixelSize","maximumWidth","widths","hdmx","sizeDeviceRecord","KernPair","left","right","ClassTable$1","firstGlyph","nGlyphs","Kern2Array","off","leftTable","rowWidth","KernSubtable","nPairs","pairs","rightTable","array","kernValueCount","leftClassCount","rightClassCount","kernValue","leftClass","rightClass","kernIndex","KernTable","subVersion","padding","tupleIndex","kern","nTables","LTSH","yPels","PCLT","fontNumber","pitch","style","typeFamily","symbolSet","typeface","characterComplement","fileName","strokeWeight","widthType","serifStyle","Ratio","bCharSet","xRatio","yStartRatio","yEndRatio","vTable","yPelHeight","VdmxGroup","recs","startsz","endsz","entries","VDMX","numRecs","numRatios","ratioRanges","vhea","advanceHeightMax","minTopSideBearing","minBottomSideBearing","yMaxExtent","VmtxEntry","vmtx","shortFrac$1","Correspondence","fromCoord","toCoord","Segment","pairCount","correspondence","avar","segment","UnboundedArrayAccessor","base","_items","getItem","inspect","UnboundedArray","LookupTable","ValueType","Shadow","_proto3","BinarySearchHeader","unitSize","nUnits","LookupSegmentSingle","lastGlyph","LookupSegmentArray","LookupSingle","binarySearchHeader","segments","StateTable","entryData","newState","Entry","StateArray","nClasses","classTable","stateArray","entryTable","BslnSubtable","mappingData","standardGlyph","controlPoints","bsln","defaultBaseline","Setting","setting","fontFeatures","FeatureName","nSettings","settingTable","featureFlags","defaultSetting","feat","featureNameCount","reserved1","reserved2","featureNames","Axis","axisTag","minValue","defaultValue","maxValue","Instance","coord","postscriptNameID","instanceSize","fvar","offsetToData","countSizePairs","axisSize","instanceCount","axis","instance","shortFrac","Offset","gvar","globalCoordCount","globalCoords","ClassTable","subFeatureFlags","stateTable","ClassLookupTable","newStateOffset","WidthDeltaRecord","justClass","beforeGrowLimit","beforeShrinkLimit","afterGrowLimit","afterShrinkLimit","growFlags","shrinkFlags","WidthDeltaCluster","ActionData","lowerLimit","upperLimit","order","addGlyph","substThreshold","substGlyph","variationAxis","minimumLimit","noStretchValue","maximumLimit","Action","actionClass","actionType","actionLength","actionData","PostcompensationAction","PostCompensationTable","lookupTable","JustificationTable","wdcOffset","postCompensationTable","widthDeltaClusters","just","horizontal","vertical","LigatureData","action","ContextualData","markIndex","currentIndex","InsertionData","currentInsertIndex","markedInsertIndex","SubstitutionTable","items","SubtableData","substitutionTable","ligatureActions","ligatureList","insertionActions","Subtable","FeatureEntry","featureType","featureSetting","enableFlags","disableFlags","MorxChain","defaultFlags","chainLength","nFeatureEntries","nSubtables","features","subtables","morx","unused","nChains","chains","OpticalBounds","bottom","opbd","_createForOfIteratorHelperLoose$p","_arrayLikeToArray$p","_unsupportedIterableToArray$p","CBLC","_class$4","TableEntry","checkSum","Directory","numTables","binarySearch","cmp","min","_createForOfIteratorHelperLoose$o","_arrayLikeToArray$o","_unsupportedIterableToArray$o","tables$1","maxExponentFor2","floor","log","LN2","maxPowerOf2","pow","iconv","CmapProcessor","cmapTable","encoding","findSubtable","encodingExists","uvs","_step2$value","lookup","codepoint","variationSelector","buf","String","fromCodePoint","getVariationSelector","rangeOffset","_gid","_min","_max","_mid","group","selectors","toArray","x","sel","getCharacterSet","endCodes","tail","_res","codePointsForGlyph","_res2","delta","c","g","_res3","_step6","_res4","_iterator6","_group","_createForOfIteratorHelperLoose$n","_arrayLikeToArray$n","_unsupportedIterableToArray$n","KernProcessor","positions","id","getKerning","crossStream","variation","pairIdx","pair","override","UnicodeLayoutEngine","positionGlyphs","clusterStart","clusterEnd","isMark","positionCluster","baseBox","cbox","copy","codePoints","minX","yGap","markBox","position","combiningClass","getCombiningClass","maxX","minY","maxY","codePoint","BBox","Infinity","addPoint","y","abs","_createForOfIteratorHelperLoose$m","_arrayLikeToArray$m","_unsupportedIterableToArray$m","UNICODE_SCRIPTS","Caucasian_Albanian","Arabic","Imperial_Aramaic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bopomofo","Brahmi","Braille","Buginese","Buhid","Chakma","Canadian_Aboriginal","Carian","Cham","Cherokee","Coptic","Cypriot","Cyrillic","Devanagari","Deseret","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gurmukhi","Hangul","Han","Hanunoo","Hebrew","Hiragana","Pahawh_Hmong","Katakana_Or_Hiragana","Old_Italic","Javanese","Kayah_Li","Katakana","Kharoshthi","Khmer","Khojki","Kannada","Kaithi","Tai_Tham","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Mandaic","Manichaean","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Malayalam","Modi","Mongolian","Mro","Meetei_Mayek","Myanmar","Old_North_Arabian","Nabataean","Nko","Ogham","Ol_Chiki","Old_Turkic","Oriya","Osmanya","Palmyrene","Pau_Cin_Hau","Old_Permic","Phags_Pa","Inscriptional_Pahlavi","Psalter_Pahlavi","Phoenician","Miao","Inscriptional_Parthian","Rejang","Runic","Samaritan","Old_South_Arabian","Saurashtra","Shavian","Sharada","Siddham","Khudawadi","Sinhala","Sora_Sompeng","Sundanese","Syloti_Nagri","Syriac","Tagbanwa","Takri","Tai_Le","New_Tai_Lue","Tamil","Tai_Viet","Telugu","Tifinagh","Tagalog","Thaana","Thai","Tibetan","Tirhuta","Ugaritic","Vai","Warang_Citi","Old_Persian","Cuneiform","Yi","Inherited","Common","Unknown","OPENTYPE_SCRIPTS","RTL","arab","hebr","syrc","thaa","cprt","khar","phnx","lydi","avst","armi","phli","prti","sarb","orkh","samr","mand","merc","mero","mani","mend","nbat","narb","palm","phlp","direction","_createForOfIteratorHelperLoose$l","_arrayLikeToArray$l","_unsupportedIterableToArray$l","GlyphRun","direction$1","bbox","GlyphPosition","allTypographicFeatures","code","exclusive","allTypeFeatures","ligatures","requiredLigatures","commonLigatures","rareLigatures","rebusPictures","diphthongLigatures","squaredLigatures","abbrevSquaredLigatures","symbolLigatures","contextualLigatures","historicalLigatures","cursiveConnection","unconnected","partiallyConnected","cursive","letterCase","verticalSubstitution","substituteVerticalForms","linguisticRearrangement","numberSpacing","monospacedNumbers","proportionalNumbers","thirdWidthNumbers","quarterWidthNumbers","smartSwash","wordInitialSwashes","wordFinalSwashes","nonFinalSwashes","diacritics","showDiacritics","hideDiacritics","decomposeDiacritics","verticalPosition","normalPosition","superiors","inferiors","ordinals","scientificInferiors","fractions","noFractions","verticalFractions","diagonalFractions","overlappingCharacters","preventOverlap","typographicExtras","slashedZero","mathematicalExtras","mathematicalGreek","ornamentSets","noOrnaments","dingbats","piCharacters","fleurons","decorativeBorders","internationalSymbols","mathSymbols","characterAlternatives","noAlternates","designComplexity","designLevel1","designLevel2","designLevel3","designLevel4","designLevel5","styleOptions","noStyleOptions","displayText","engravedText","illuminatedCaps","titlingCaps","tallCaps","characterShape","traditionalCharacters","simplifiedCharacters","JIS1978Characters","JIS1983Characters","JIS1990Characters","traditionalAltOne","traditionalAltTwo","traditionalAltThree","traditionalAltFour","traditionalAltFive","expertCharacters","JIS2004Characters","hojoCharacters","NLCCharacters","traditionalNamesCharacters","numberCase","lowerCaseNumbers","upperCaseNumbers","textSpacing","proportionalText","monospacedText","halfWidthText","thirdWidthText","quarterWidthText","altProportionalText","altHalfWidthText","transliteration","noTransliteration","annotation","noAnnotation","boxAnnotation","roundedBoxAnnotation","circleAnnotation","invertedCircleAnnotation","parenthesisAnnotation","periodAnnotation","romanNumeralAnnotation","diamondAnnotation","invertedBoxAnnotation","invertedRoundedBoxAnnotation","kanaSpacing","fullWidthKana","proportionalKana","ideographicSpacing","fullWidthIdeographs","proportionalIdeographs","halfWidthIdeographs","unicodeDecomposition","canonicalComposition","compatibilityComposition","transcodingComposition","rubyKana","CJKSymbolAlternatives","noCJKSymbolAlternatives","CJKSymbolAltOne","CJKSymbolAltTwo","CJKSymbolAltThree","CJKSymbolAltFour","CJKSymbolAltFive","ideographicAlternatives","noIdeographicAlternatives","ideographicAltOne","ideographicAltTwo","ideographicAltThree","ideographicAltFour","ideographicAltFive","CJKVerticalRomanPlacement","CJKVerticalRomanCentered","CJKVerticalRomanHBaseline","italicCJKRoman","CJKItalicRoman","caseSensitiveLayout","caseSensitiveSpacing","alternateKana","alternateHorizKana","alternateVertKana","stylisticAlternatives","noStylisticAlternates","stylisticAltOne","stylisticAltTwo","stylisticAltThree","stylisticAltFour","stylisticAltFive","stylisticAltSix","stylisticAltSeven","stylisticAltEight","stylisticAltNine","stylisticAltTen","stylisticAltEleven","stylisticAltTwelve","stylisticAltThirteen","stylisticAltFourteen","stylisticAltFifteen","stylisticAltSixteen","stylisticAltSeventeen","stylisticAltEighteen","stylisticAltNineteen","stylisticAltTwenty","contextualAlternates","swashAlternates","contextualSwashAlternates","lowerCase","defaultLowerCase","lowerCaseSmallCaps","lowerCasePetiteCaps","upperCase","defaultUpperCase","upperCaseSmallCaps","upperCasePetiteCaps","languageTag","CJKRomanSpacing","halfWidthCJKRoman","proportionalCJKRoman","defaultCJKRoman","fullWidthCJKRoman","selector","OTMapping","rlig","clig","dlig","hlig","liga","hist","smcp","pcap","frac","dnom","numr","afrc","case","ccmp","cpct","valt","swsh","cswh","curs","c2pc","c2sc","init","fin2","medi","med2","fin3","fina","pkna","half","halt","hkna","vkna","ital","lnum","onum","mgrk","calt","vrt2","tnum","pnum","sups","subs","ordn","pwid","hwid","qwid","twid","fwid","palt","trad","smpl","jp78","jp83","jp90","jp04","expt","hojo","nlck","tnam","ruby","titl","zero","ss01","ss02","ss03","ss04","ss05","ss06","ss07","ss08","ss09","ss10","ss11","ss12","ss13","ss14","ss15","ss16","ss17","ss18","ss19","ss20","_class$3","AATMapping","ot","aat","mapFeatureStrings","isNaN","typeCode","settingCode","_createForOfIteratorHelperLoose$k","_arrayLikeToArray$k","_unsupportedIterableToArray$k","AATLookupTable","seg","glyphsForValue","classValue","_segment","_createForOfIteratorHelperLoose$j","_arrayLikeToArray$j","_unsupportedIterableToArray$j","_class$2","AATStateMachine","processEntry","currentState","dir","classCode","shouldAdvance","entryIndex","traverse","opts","state","visited","Set","add","_this$stateTable","row","enter","exit","_createForOfIteratorHelperLoose$i","_arrayLikeToArray$i","_unsupportedIterableToArray$i","REVERSE_DIRECTION","AATMorxProcessor","processIndicRearragement","processContextualSubstitution","processLigature","processNoncontextualSubstitutions","processGlyphInsertion","inputCache","chain","processSubtable","splice","ligatureStack","markedGlyph","markedIndex","stateMachine","getStateMachine","getProcessor","verb","swap","reorderGlyphs","subsitutions","getGlyph","_lookup","_lookupTable","_this$ligatureStack","actions","actionIndex","last","ligatureIndex","ligatureGlyphs","_codePoints","componentGlyph","unshift","store","ligatureEntry","_insertGlyphs","insertionActionIndex","isBefore","_this$glyphs","insertions","_count","_isBefore","getSupportedFeatures","generateInputs","generateInputCache","_step7","_iterator7","generateInputsForSubtable","stack","found","_cache","_stack$pop","rangeA","rangeB","reverseA","reverseB","_createForOfIteratorHelperLoose$h","_arrayLikeToArray$h","_unsupportedIterableToArray$h","AATLayoutEngine","morxProcessor","fallbackPosition","glyphRun","r","mapOTToAAT","getAvailableFeatures","_feature","_r","_f","mapAATToOT","stringsForGlyph","glyphStrings","_addStrings","strings","_cmapProcessor","_createForOfIteratorHelperLoose$g","_arrayLikeToArray$g","_unsupportedIterableToArray$g","ShapingPlan","stages","globalFeatures","allFeatures","_addFeatures","global","stageIndex","stage","local","addStage","setFeatureOverrides","assignGlobalFeatures","processor","applyFeatures","VARIATION_FEATURES","COMMON_FEATURES","FRACTIONAL_FEATURES","HORIZONTAL_FEATURES","DIRECTIONAL_FEATURES","ltr","rtl","DefaultShaper","plan","_plan","planPreprocessing","planFeatures","planPostprocessing","assignFeatures","userFeatures","trieData$2","trie$2","Uint8Array","FEATURES","ShapingClasses","ISOL","FINA","FIN2","MEDI","MED2","INIT","NONE","STATE_TABLE$1","ArabicShaper","_DefaultShaper","curAction","prevAction","getShapingClass","_STATE_TABLE$state$ty","category","GlyphIterator","shouldIgnore","ignoreMarks","ignoreBaseGlyphs","isBase","ignoreLigatures","isLigature","move","peek","idx","increment","peekIndex","_createForOfIteratorHelperLoose$f","_arrayLikeToArray$f","_unsupportedIterableToArray$f","DEFAULT_SCRIPTS","OTProcessor","scriptTag","lookups","variationsIndex","_variationProcessor","findVariationsIndex","normalizedCoords","selectScript","ligatureID","currentFeature","findScript","changed","repeat","substituteFeature","substituteFeatureForVariations","lookupsForFeatures","exclude","lookupIndex","substitution","coords","variations","conditions","variationConditionsMatch","every","condition","advances","applyLookups","glyphIterator","_step8","_iterator8","_step8$value","cur","_step9","_iterator9","applyLookup","applyLookupList","_step10","_iterator10","lookupRecord","_step11","_iterator11","coverageIndex","_step12","_iterator12","match","sequence","matched","sequenceMatches","component","sequenceMatchIndices","coverageSequenceMatches","getClassID","_step13","_iterator13","classSequenceMatches","_this3","classID","applyContext","_step14","_iterator14","rule","_step15","_iterator15","_rule","applyChainingContext","_step16","_iterator16","rules","_step17","_iterator17","_rule2","GlyphInfo","_font","ligatureComponent","isLigated","cursiveAttachment","markAttachment","shaperInfo","substituted","isMultiplied","_id","HangulShaper","getType","STATE_TABLE","DECOMPOSE","hasGlyphForCodePoint","decompose","COMPOSE","compose","TONE_MARK","reorderToneMark","INVALID","insertDottedCircle","HANGUL_BASE","L_BASE","V_BASE","T_BASE","isL","isV","isT","HANGUL_END","isLV","isLVT","isTone","glyphForCodePoint","l","v","ljmo","vjmo","insert","tjmo","lv","prevType","isCombiningL","isCombiningV","isCombiningT","del","advanceWidth","getLength","dottedCircle","indicMachine","accepting","tags","useData","categories","decompositions","CATEGORIES","POSITIONS","Start","Ra_To_Become_Reph","Pre_M","Pre_C","Base_C","After_Main","Above_C","Before_Sub","Below_C","After_Sub","Before_Post","Post_C","After_Post","Final_C","SMVD","End","CONSONANT_FLAGS","JOINER_FLAGS","HALANT_OR_COENG_FLAGS","INDIC_CONFIGS","Default","hasOldSpec","virama","basePos","rephPos","rephMode","blwfMode","INDIC_DECOMPOSITIONS","trieData$1","_createForOfIteratorHelperLoose$e","_arrayLikeToArray$e","_unsupportedIterableToArray$e","decompositions$1","trie$1","stateMachine$1","IndicShaper","setupSyllables$1","initialReordering","finalReordering","unicodeScript","fromOpenType","indicConfig","isOldSpec","_loop","d","decomposed","indicCategory","indicPosition","IndicInfo","syllableType","syllable","_step$value","_i2","isConsonant","isJoiner","isHalantOrCoeng","wouldSubstitute","_glyph$features","_layoutEngine","engine","GSUBProcessor","consonantPosition","consonant","nextSyllable$1","_glyphs$start$shaperI","_i3","limit","hasReph","rphf","_g","_i4","seenBelow","_info","_i5","_i6","_info2","_i7","j","disallowDoubleHalants","_i8","_j","lastPos","_i9","_info3","_j2","_i10","_j3","_i11","_i12","blwf","_i13","_i14","abvf","pstf","_i15","pref","_i16","_j4","cfar","_i17","nonJoiner","_j5","tryPref","BASE_C","_i18","newPos","_i19","oldPos","tmp","newRephPos","_i20","reph","_i21","_newPos","_oldPos2","_oldPos","_tmp","trieData","_createForOfIteratorHelperLoose$d","_arrayLikeToArray$d","_unsupportedIterableToArray$d","trie","UniversalShaper","setupSyllables","clearSubstitutionFlags","recordRphf","recordPref","reorder","useCategory","USEInfo","nextSyllable","isHalant","_createForOfIteratorHelperLoose$c","_arrayLikeToArray$c","_unsupportedIterableToArray$c","SHAPERS","mong","phag","hang","bng2","beng","dev2","deva","gjr2","gujr","guru","gur2","knda","knd2","mlm2","mlym","ory2","orya","taml","tml2","telu","tel2","khmr","bali","batk","brah","bugi","buhd","cakm","cham","dupl","egyp","gran","hano","java","kthi","kali","khoj","sind","lepc","limb","mahj","mtei","modi","hmng","rjng","saur","shrd","sidd","sinh","sund","sylo","tglg","tagb","tale","lana","tavt","takr","tibt","tfng","tirh","latn","DFLT","_createForOfIteratorHelperLoose$b","_arrayLikeToArray$b","_unsupportedIterableToArray$b","_OTProcessor","_index","curGlyph","replacement","_index2","_index3","ligature","_curGlyph","characters","_index4","ligatureGlyph","isMarkLigature","lastLigID","lastNumComps","curComps","matchIndex","_createForOfIteratorHelperLoose$a","_arrayLikeToArray$a","_unsupportedIterableToArray$a","GPOSProcessor","applyPositionValue","variationProcessor","variationStore","getDelta","nextGlyph","_pair","class1","class2","nextIndex","_nextGlyph","curRecord","nextRecord","getAnchor","rightToLeft","baseGlyphIndex","baseIndex","markRecord","baseAnchor","applyAnchor","_markIndex","_baseGlyphIndex","ligIndex","ligAttach","markGlyph","ligGlyph","compIndex","_markRecord","_baseAnchor","mark1Index","prevIndex","_cur","good","mark2Index","_markRecord2","_baseAnchor2","markCoords","markPos","anchor","fixCursiveAttachment","fixMarkAttachment","_k","OTLayoutEngine","glyphInfos","setup","shaper","choose","glyphInfo","zeroMarkWidths","zeroMarkAdvances","cleanup","_createForOfIteratorHelperLoose$9","_arrayLikeToArray$9","_unsupportedIterableToArray$9","LayoutEngine","unicodeLayoutEngine","kernProcessor","layout","charCodeAt","_script","forString","glyphsForString","_script2","forCodePoints","hideDefaultIgnorables","positioned","space","isDefaultIgnorable","ch","plane","_createForOfIteratorHelperLoose$8","_arrayLikeToArray$8","_unsupportedIterableToArray$8","SVG_COMMANDS","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","closePath","Path","commands","_bbox","_cbox","toFunction","command","toSVG","round","join","mapPoints","path","_fn","transform","m0","m1","m2","m3","m4","m5","translate","rotate","angle","cos","sin","scale","scaleX","scaleY","freeze","cx","cy","p0","p1","p2","p3","_c$args","_c$args2","qp1x","qp1y","cp1x","cp1y","cp2x","p3x","cp2y","p3y","_c$args3","b2ac","t1","sqrt","t2","_arr","_class$1","StandardNames","Glyph","_getPath","_getCBox","_getBBox","_getTableMetrics","metric","_getMetrics","_metrics","os2","_this$_getTableMetric","leftBearing","_this$_getTableMetric2","advanceHeight","topBearing","getAdvanceAdjustment","getScaledPath","_getName","fromCharCode","render","save","fill","restore","_createForOfIteratorHelperLoose$7","_arrayLikeToArray$7","_unsupportedIterableToArray$7","GlyfHeader","numberOfContours","Point$1","Point","onCurve","endContour","Component","dx","dy","scale01","scale10","TTFGlyph","_Glyph","internal","_getTableStream","_parseGlyphCoord","short","same","_decode","glyfPos","_decodeSimple","_decodeComposite","points","endPtsOfContours","numCoords","flag","point","px","py","_getPhantomPoints","transformPoints","phantomPoints","haveInstructions","gPos","readInt8","_this$_metrics","_getContours","_contours","contour","_point","directory","contours","firstPt","lastPt","curvePt","pt","prevPt","midX","midY","CFFGlyph","CFF2","bias","cff","usedGsubrs","usedSubrs","trans","nStems","_usedGsubrs","_usedSubrs","gsubrs","gsubrsBias","privateDict","subrs","Subrs","subrsBias","vstore","vsindex","checkWidth","shift","nominalWidthX","parseStems","parse","phase","c1x","c1y","c2x","c2y","subr","blendVector","getBlendVector","numOperands","sum","s1","s2","v1","v2","random","c3x","c3y","c4x","c4y","c5x","c5y","c6x","c6y","pts","startx","starty","b1","SBIXImage","originX","originY","buflen","SBIXGlyph","_TTFGlyph","getImageForSize","img","image","renderOutlines","_createForOfIteratorHelperLoose$6","_arrayLikeToArray$6","_unsupportedIterableToArray$6","COLRLayer","color","COLRGlyph","layers","fillColor","cpal","colr","rec","baseLayer","_getBaseGlyph","GlyphVariationProcessor","normalizeCoords","blendVectors","normalized","EPSILON","glyphPoints","tupleCount","here","sharedPoints","decodePoints","origPoints","tupleDataSize","tupleCoords","startCoords","_a","endCoords","_a2","factor","tupleFactor","nPoints","xDeltas","decodeDeltas","yDeltas","outPoints","hasDelta","interpolateMissingDeltas","deltaX","deltaY","Uint16Array","run","runCount","readUInt16","Int16Array","inPoints","firstPoint","endPoint","firstDelta","curDelta","deltaInterpolate","deltaShift","ref1","ref2","iterable","in1","in2","out1","out2","_p","out","ref","_table$advanceWidthMa","itemStore","varData","deltaSet","netAdjustment","master","scalar","regionIndex","axes","resolved","Subset","mapping","includeGlyph","encodeStream","Glyf","xPoints","yPoints","TTFGlyphEncoder","encodeSimple","lastX","lastY","lastFlag","pointCount","_encodePoint","shortFlag","sameFlag","diff","_createForOfIteratorHelperLoose$5","_arrayLikeToArray$5","_unsupportedIterableToArray$5","TTFSubset","_Subset","glyphEncoder","_addGlyph","curOffset","nextOffset","_createForOfIteratorHelperLoose$4","_arrayLikeToArray$4","_unsupportedIterableToArray$4","_class","CFFSubset","subsetCharstrings","charstrings","subsetSubrs","used","subsetFontdict","used_fds","used_subrs","FontName","createCIDFontdict","addString","Encoding","CIDCount","_createForOfIteratorHelperLoose$3","_arrayLikeToArray$3","_unsupportedIterableToArray$3","TTFFont","variationCoords","_directoryPos","_tables","_glyphs","_decodeDirectory","_getTable","_decodeTable","logErrors","getName","nextState","createSubset","getVariation","settings","namedVariations","trim","default","_createForOfIteratorHelperLoose$2","_arrayLikeToArray$2","_unsupportedIterableToArray$2","WOFFDirectoryEntry","compLength","origChecksum","WOFFDirectory","flavor","totalSfntSize","metaOffset","metaLength","metaOrigLength","privOffset","privLength","WOFFFont","_TTFFont","outBuffer","alloc","_createForOfIteratorHelperLoose$1","_arrayLikeToArray$1","_unsupportedIterableToArray$1","TTCHeader","numFonts","dsigTag","dsigLength","dsigOffset","TrueTypeCollection","readString","_createForOfIteratorHelperLoose","_arrayLikeToArray","_unsupportedIterableToArray","DFontName","Ref","nameOffset","attr","dataOffset","handle","Type","maxTypeIndex","refList","TypeList","DFontMap","typeList","nameListOffset","DFontHeader","dataLength","mapLength","DFont","sfnt","PNG","PNG__default","isValid","MARKERS","JPEG","marker","isBuffer","_temp","_ref$limit","IMAGE_CACHE","fetchRemoteFile","uri","getImage","toLowerCase","resolveBufferImage","guessFormat","getImageFormat","isPng","isJpg","resolveImageFromUrl","_ref4","_src$method","t0","_x3","_ref5$cache","cacheKey","_ref3","exec","lower","isValidFormat","resolveBase64Image","JSON","stringify","resolveImageFromData","_interopRequireDefault","_interopRequireWildcard","R","_getMargin","_getPadding","_isHeightAuto","getMax","_default","curryN","page","node","imageMargin","pagePadding","pageArea","box","paddingTop","paddingBottom","marginTop","marginBottom","nil","rect","w","h","ellipse","rx","ry","circle","polygon","roundedRect","text","lineWidth","dash","clip","stroke","lineCap","opacity","lineJoin","fontSize","miterLimit","strokeColor","fillOpacity","strokeOpacity","linearGradient","radialGradient","getWidth","pluck","getHeight","measureCtx","paint","_regenerator","_asyncToGenerator2","_image","_getSource","resolveSrc","_node$image","_node$props","_node$props2","_node$props3","href","_yoga","_getRatio","widthMode","heightMode","imageRatio","MEASURE_MODE_EXACTLY","MEASURE_MODE_UNDEFINED","scaledHeight","MEASURE_MODE_AT_MOST","_scaledHeight","_asyncCompose","_resolveSvg","_resolveZIndex","_resolveAssets","_resolveStyles","_resolveOrigins","_resolvePageSizes","_resolvePagination","_resolveDimensions","_resolveTextLayout","_resolveInheritance","_resolvePagePaddings","_resolvePercentRadius","_resolvePercentHeight","_resolveLinkSubstitution","_objectWithoutPropertiesLoose2","_primitives","_castArray","isString","is","isNumber","isNotString","complement","createInstance","element","TextInstance","_element$props","_element$props$style","_element$props$childr","children","getComputedBorder","yogaNode","edge","_yogaNode","borderTopWidth","EDGE_TOP","borderRightWidth","EDGE_RIGHT","borderBottomWidth","EDGE_BOTTOM","borderLeftWidth","EDGE_LEFT","DEFAULT_DIMENSION","getComputedWidth","getComputedHeight","getComputedMargin","marginVertical","margin","marginRight","marginHorizontal","marginLeft","nodes","isEmpty","_matchPercent","getTransformStyle","pathOr","_node$box","transformOriginX","transformOriginY","percentX","percentY","percent","getComputedPadding","paddingVertical","paddingRight","paddingHorizontal","paddingLeft","getComputedTop","getComputedRight","getComputedBottom","getComputedLeft","_upperFirst","tap","yogaValue","cond","equals","always","ALIGN_FLEX_START","ALIGN_CENTER","ALIGN_FLEX_END","ALIGN_STRETCH","ALIGN_BASELINE","ALIGN_SPACE_BETWEEN","ALIGN_SPACE_AROUND","T","ALIGN_AUTO","isNil","setAspectRatio","setBorder","setBorderLeft","setBorderBottom","setBorderRight","setBorderTop","_setYogaValue","setMaxHeight","setMinHeight","setHeight","setMaxWidth","setMinWidth","setWidth","setDisplay","DISPLAY_NONE","DISPLAY_FLEX","isRow","isRowReverse","isColumnReverse","FLEX_DIRECTION_ROW","FLEX_DIRECTION_ROW_REVERSE","FLEX_DIRECTION_COLUMN_REVERSE","FLEX_DIRECTION_COLUMN","setFlexDirection","defaultTo","WRAP_WRAP","WRAP_WRAP_REVERSE","WRAP_NO_WRAP","setFlexWrap","JUSTIFY_CENTER","JUSTIFY_FLEX_END","JUSTIFY_SPACE_BETWEEN","JUSTIFY_SPACE_AROUND","JUSTIFY_SPACE_EVENLY","JUSTIFY_FLEX_START","setJustifyContent","setMargin","setMarginLeft","setMarginBottom","setMarginRight","setMarginTop","OVERFLOW_HIDDEN","OVERFLOW_SCROLL","OVERFLOW_VISIBLE","setOverflow","setPadding","setPaddingLeft","setPaddingBottom","setPaddingRight","setPaddingTop","setPosition","setPositionLeft","setPositionBottom","setPositionRight","setPositionTop","setPositionType","POSITION_TYPE_ABSOLUTE","POSITION_TYPE_RELATIVE","isNotNil","_yogaNode$percentMeth","_yogaNode$percentMeth2","hasEdge","fixedMethod","autoMethod","percentMethod","_yogaNode$autoMethod","setFlexBasis","UNIT_AUTO","_yogaNode$autoMethod2","_yogaNode$fixedMethod","_yogaNode$fixedMethod2","P","_getNodesHeight","isType","propEq","isSvg","Svg","isNote","Note","isImage","Image","isCanvas","Canvas","getWrap","ifElse","anyPass","getBreak","getMinPresenceAhead","defaultPresenceAhead","child","futureElements","minPresenceAhead","presenceAhead","elements","isElementInside","getPresenceAhead","futureHeight","shouldSplit","shouldWrap","getTop","hasFixedHeight","hasPath","nodeTop","current","evolve","borderBottomLeftRadius","borderBottomRightRadius","nextHeight","subtract","__","subtractHeight","borderTopLeftRadius","borderTopRightRadius","_getPadding2","_page$style","VALID_ORIENTATIONS","_page$props","orientation","_isLandscape","PAGE_SIZES","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","EXECUTIVE","FOLIO","LEGAL","LETTER","TABLOID","ID1","toSizeObject","getStringSize","toUpperCase","getNumberSize","throwInvalidError","identity","pathSatisfies","_getOrientation","_emoji","_fetchImage","fetchAssets","fontStore","_node$children","promises","listToExplore","_n$style","childNode","all","resolvePageDimensions","_getPosition","_getDimension","_getBorderWidth","_setDisplay","_setOverflow","_setFlexWrap","_setFlexGrow","_setFlexBasis","_setAlignSelf","_setAlignItems","_setFlexShrink","_setAspectRatio","_setAlignContent","_setPositionType","_setFlexDirection","_setJustifyContent","_setMargin","_setPadding","_setBorderWidth","_setPosition","_setDimension","_measureSvg","_measureText","_measureImage","_measureCanvas","YOGA_NODE","YOGA_CONFIG","Config","setPointScaleFactor","isText","Text","isPage","Page","isTextInstance","setYogaValues","setNodeHeight","minWidth","maxWidth","minHeight","maxHeight","display","flexDirection","alignSelf","alignContent","alignItems","justifyContent","flexWrap","overflow","aspectRatio","flexBasis","flexGrow","flexShrink","isNotText","isNotNote","isNotSvg","isNotTextInstance","isLayoutElement","allPass","createYogaNodes","Node","createWithConfig","setMeasureFunc","when","insertChild","getChildCount","assoc","calculateLayout","persistDimensions","mergeAll","destroyYogaNodes","dissoc","freeYogaNodes","freeRecursive","getInheritStyles","pick","propOr","resolveInheritance","styles","inheritStyles","resolveChild","merge","isLink","Link","hasRenderProp","hasTextInstanceChilds","resolveLinkSubstitution","both","either","_getOrigin","resolveNodeOrigin","converge","resolvePageHorizontalPadding","container","resolvePageVerticalPadding","resolvePageSize","_extends2","_flatten","_getSize","_splitText","_splitNode2","_createInstance","_shouldBreak","_getContentArea","assingChildren","getChildren","isElementOutside","useWith","lte","isFixed","pathEq","allFixed","isDynamic","relayoutPage","fns","reversedFns","_len2","_key2","splitNodes","currentChildren","nextChildren","futureNodes","futureFixedNodes","nodeHeight","isOutside","shouldBreak","break","_split","currentChild","nextChild","_splitNode","currentNode","nextNode","_splitChildren","availableHeight","splitChildren","currentChilds","shouldResolveDynamicNodes","some","resolveDynamicNodes","isNodeDynamic","Boolean","lines","resolveDynamicPage","resolvedPage","splitPage","pageNumber","contentArea","dynamicPage","_splitNodes","nextChilds","relayout","currentPage","assocPath","dissocPath","assocSubPageData","subpages","subPageNumber","subPageTotalPages","dissocSubPageData","paginate","splittedPage","pages","nextPage","doc","totalPages","resolvePageIndices","transformHeight","hasHeight","resolveNodePercentHeight","getPageArea","resolveRadius","resolvePercentRadius","_stylesheet","LINK_STYLES","textDecoration","resolveNodeStyles","prop","_colors","_layoutText","_replaceDefs","_getContainer","_parseViewbox","_inheritProps","_parseAspectRatio","STYLE_PROPS","VERTICAL_PROPS","HORIZONTAL_PROPS","transformPercent","mapObjIndexed","parsePercent","mergeStyles","removeNoneValues","pickStyleProps","styleProps","parseSvgProps","viewBox","preserveAspectRatio","addMissingTspan","resolveSvgNode","x1","x2","y1","y2","transformColor","stopOpacity","stopColor","parseProps","resolveChildren","parseText","resolveSvgRoot","resolveSvg","shouldLayoutText","resolveTextLayout","getZIndex","shouldNotSort","Document","sortZIndex","za","zb","resolveZIndex","unless","viewbox","isDefs","Defs","getId","groupBy","getInheritProps","inheritProps","_layout","_linebreaker","_attributedString","_justification","_scriptItemizer","_wordHyphenation","_textDecoration","_transformText","_fontSubstitution","engines","linebreaker","justification","scriptItemizer","wordHyphenation","fontSubstitution","getFragments","fragments","_instance$props","_instance$props$fill","_instance$props$fontF","_instance$props$fontS","textDecorationColor","textDecorationStyle","textTransform","attributes","underlineStyle","underline","underlineColor","strike","strikeStyle","strikeColor","getAttributedString","fromFragments","AlmostInfinity","shrinkWhitespaceFactor","before","after","layoutTspan","attributedString","layoutOptions","replace","align","meetOrSlice","_getDefs","isNotDefs","detachDefs","URL_REGEX","replaceDef","defs","parseNodeDefs","clipPath","root","embedEmojis","fetchEmojis","_emojiRegex","emojis","regex","_removeNoColor","buildEmojiUrl","emoji","char","codePointAt","promise","emojiUrl","fetchEmojiImage","fragment","lastIndex","emojiSize","chunk","attachment","_standardFont","fontCache","IGNORED_CODE_POINTS","getFontSize","getOrCreateFont","getFallbackFont","shouldFallbackToFont","runs","lastFont","lastFontSize","defaultFont","_fontSize","_ignoreChars","PREPROCESSORS","_instance$props2","_instance$style","_instance$style$color","backgroundColor","_instance$style$fontF","_instance$style$fontS","_instance$style$textA","textAlign","lineHeight","letterSpacing","textIndent","indent","characterSpacing","link","_fragments","preprocessor","counter","line","IGNORABLE_CODEPOINTS","charSubset","acc","subsetRegex","RegExp","_getAttributedString","getMaxLines","getTextOverflow","maxLines","truncateMode","getContainer","hyphenationPenalty","getLayoutOptions","_linesWidth","_linesHeight","_lineIndexAtHeight","_heightAtLineIndex","getWidows","getOrphans","slicedLineIndex","widows","orphans","linesQuantity","slicedLine","getLineBreak","currentHeight","_createClass2","_pdfkit","StandardFont","PDFFont","_this$src$encode","encoded","stringIndices","parseInt","characterToGlyph","_capitalize","transformation","_args","isNotArray","isPercent","upperFirst","juxt","toUpper","memoizeWith","PDFReference","_stream$Writable","document","decodeStrings","finalize","ReferenceError","_assertThisInitialized","deflate","compress","Filter","uncompressedLength","chunks","initDeflate","on","Length","_write","write","_offset","PDFObject","convert","_Array$from","_refEnd","PDFNameTree","sortedKeys","localeCompare","escapableRe","escapable","object","isUnicode","buff","swapBytes","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","number","SIZES","PDFPage","dimensions","content","resources","ProcSet","xobjects","XObject","ext_gstates","ExtGState","patterns","Pattern","annotations","dictionary","Annots","Parent","_root","Pages","MediaBox","Contents","Resources","number$1","PDFGradient$1","PDFGradient","stops","embedded","_normalizeColor","_colorSpace","setTransform","m11","m12","m21","m22","embed","m","stopsLength","matrix","bounds","FunctionType","Domain","N","Functions","Bounds","Encode","_gradCount","shader","pattern","PatternType","Shading","Matrix","grad","opacityGradient","pageBBox","form","Subtype","FormType","Group","S","CS","Sh1","gstate","SMask","G","opacityPattern","PaintType","TilingType","XStep","YStep","Gs1","_this$doc$_ctm","_ctm","_this$transform","addContent","Gradient","PDFLinearGradient","_PDFGradient","ShadingType","ColorSpace","Coords","Function","Extend","PDFRadialGradient","_PDFGradient2","r1","r2","Color","initColor","_opacityRegistry","_opacityCount","part","charAt","hex","namedColors","result1","_Array$from2","_setColor","_setColorSpace","_fillColor","_opacity","_doOpacity","_Array$from3","ca","CA","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","SVGPath","parameters","_apply","runners","solveArc","arcToSegments","segmentToBezier","initClass","sx","sy","A","C","H","L","M","Q","q","V","Z","z","cmd","curArg","foundDecimal","params","rot","large","sweep","ex","ey","segs","bez","rotateX","ox","oy","th","PI","sin_th","cos_th","pl","a00","a01","a10","a11","x0","y0","sfactor_sq","sfactor","xc","yc","th0","atan2","th_arc","asc","th2","th3","th1","th_half","x3","y3","SVGPath$1","KAPPA","Vector","initVector","_ctmStack","_CAP_STYLES","BUTT","ROUND","SQUARE","_JOIN_STYLES","MITER","BEVEL","undash","cpx","cpy","xe","ye","xm","ym","radius","arc","startAngle","endAngle","anticlockwise","TWO_PI","HALF_PI","deltaAng","numSegs","segAng","handleLen","curAng","deltaCx","deltaCy","ax","ay","segIdx","_path","_windingRule","fillAndStroke","isFillRule","rad","origin","xFactor","yFactor","_Array$from4","WIN_ANSI_MAP","402","8211","8212","8216","8217","8218","8220","8221","8222","8224","8225","8226","8230","8364","8240","8249","8250","710","8482","338","339","732","352","353","376","381","382","AFMFont","contents","glyphWidths","boundingBoxes","kernPairs","charWidths","inclusive","ascending","section","encodeText","charCode","character","widthOfGlyph","getKernPair","advancesForGlyphs","STANDARD_FONTS","Courier","Helvetica","toHex","isStandardFont","ArrayBuffer","EmbeddedFont","widthOfString","includeGap","gap","_PDFFont","BaseFont","encodeGlyphs","createStandardFont","subset","unicode","layoutCache","layoutRun","layoutCached","cached","onlyWidth","needle","_this$layout","isCFF","fontFile","pipe","familyClass","italic","Flags","FontBBox","ItalicAngle","Ascent","Descent","CapHeight","XHeight","StemV","FontFile3","FontFile2","descendantFont","CIDSystemInfo","Registry","Ordering","Supplement","FontDescriptor","W","DescendantFonts","ToUnicode","toUnicodeCmap","createEmbeddedFont","Fonts","initFonts","_fontFamilies","_fontCount","_registeredFonts","_this$_registeredFont","currentLineHeight","registerFont","initText","_lineGap","_text","_initOptions","wordSpacing","_line","columns","columnGap","wrapper","_fragment","_this$_font$encode","_addGlyphs","advanceWidthScale","encodedGlyphs","encodedPositions","mode","hadOffset","addSegment","flush","label","bits","channels","colorSpace","BitsPerComponent","Width","Height","PNGImage","imgData","dataDecoded","hasAlphaChannel","isInterlaced","interlaceMethod","Predictor","Colors","colors","Columns","palette","transparency","grayscale","rgb","mask","indexed","loadIndexedAlphaChannel","splitAlphaChannel","decodeData","alphaChannel","sMask","Decode","decodePixels","pixels","colorCount","pixelCount","skipByteCount","colorIndex","PDFImage","Images","initImages","_imageRegistry","_imageCount","bh","bp","bw","ip","left1","openImage","wp","hp","fit","cover","valign","goTo","destination","addNamedDestination","Annotations","annotate","Rect","_convertRect","Border","F","Dest","note","Name","D","Kids","URI","_markup","_this$_convertRect","QuadPoints","highlight","lineAnnotation","rectAnnotation","ellipseAnnotation","textAnnotation","DA","fileAnnotation","file","filespec","hidden","FS","Desc","_this$_ctm","FIELD_FLAGS","readOnly","required","noExport","multiline","password","toggleToOffButton","radioButton","pushButton","combo","edit","multiSelect","noSpell","FIELD_JUSTIFY","center","VALUE_MAP","FORMAT_SPECIAL","zip","zipPlus4","zip4","phone","ssn","FORMAT_DEFAULT","nDec","sepComma","negStyle","currency","currencyPrepend","AcroFormMixin","initForm","_acroform","Fields","NeedAppearances","DR","AcroForm","endAcroForm","fontDict","fieldRef","_endChild","childRef","formField","fieldDict","_fieldDict","_addToParent","formAnnotation","annotRef","formText","formPushButton","formCombo","formList","formRadioButton","formCheckbox","_resolveType","_resolveFlags","_resolveJustify","_resolveFont","_resolveStrings","_resolveColors","_resolveFormat","FT","fnKeystroke","fnFormat","param","AA","K","JS","MK","BG","borderColor","BC","Ff","select","appendChoices","Opt","Attachments","refBody","Params","creationDate","CreationDate","modifiedDate","ModDate","checksum","CheckSum","Size","_fileRegistry","isEqual","fileSpecBody","EF","UF","description","addNamedEmbeddedFile","PDFDocument","_stream$Readable","pdfVersion","_pageBuffer","_pageBufferStart","_offsets","_waiting","_ended","Count","Names","Dests","Lang","Producer","Creator","displayTitle","ViewerPreferences","DisplayDocTitle","autoFirstPage","addPage","bufferPages","flushPages","EmbeddedFiles","limits","addNamedJavaScript","js","JavaScript","_read","_finalize","xRefOffset","Root","Info","mixin","methods","chunkSize","readUInt32","colorType","compressionMethod","filterMethod","read","pixelBitlength","bytes","pixelBytes","pass","singlePass","scanlineLength","byte","col","upper","paeth","upperLeft","pa","pb","pc","pixelsPos","bufferPos","decodePalette","copyToImageData","imageData","_decodedPalette","View","Line","Stop","Tspan","Circle","Ellipse","Polygon","Polyline","ClipPath","LinearGradient","RadialGradient","_renderNode","_addMetadata","renderDocument","getProp","or","setProp","setPDFMetadata","title","author","subject","keywords","creator","producer","_node$style","_node$style$borderTop","_node$style$borderTop2","_node$style$borderBot","_node$style$borderBot2","rtr","ctr","rbr","cbr","rbl","cbl","ctl","isSrcId","getSource","isId","getTranslateX","matchX","matchGeneric","getTranslateY","matchY","getScaleX","getScaleY","applySingleTransformation","getRotation","getMatrix","re","_colorString","_save","_restore","_clipNode","drawBackground","parsed","to","_node$style2","shouldRenderBorders","_node$style$borderTop3","borderTopColor","_node$style$borderTop4","borderTopStyle","_node$style$borderLef","borderLeftColor","_node$style$borderLef2","borderLeftStyle","_node$style$borderRig","borderRightColor","_node$style$borderRig2","borderRightStyle","_node$style$borderBot3","borderBottomColor","_node$style$borderBot4","borderBottomStyle","c0","topRightYCoord","innerTopRightRadiusX","innerTopRightRadiusY","innerTopLeftRadiusX","innerTopLeftRadiusY","c3","c4","topLeftYCoord","c5","trSlope","_trSlope","clipBorderTop","fillBorderTop","topBottomXCoord","innerBottomRightRadiusX","innerBottomRightRadiusY","topRightXCoord","brSlope","clipBorderRight","fillBorderRight","bottomLeftYCoord","innerBottomLeftRadiusX","innerBottomLeftRadiusY","bottomRightYCoord","clipBorderBottom","fillBorderBottom","topLeftCoordX","bottomLeftXCoord","_trSlope2","clipBorderLeft","fillBorderLeft","_extends3","availableMethods","defaultsZero","availableWidth","painter","_renderEllipse","drawEllipse","shouldDebug","debugOrigin","_node$box4","_node$box4$marginLeft","_node$box4$marginTop","_node$box4$marginRigh","_node$box4$marginBott","roundedWidth","roundedHeight","debugText","_node$box3","_node$box3$marginLeft","_node$box3$marginTop","_node$box3$marginRigh","_node$box3$marginBott","debugMargin","_node$box2","_node$box2$paddingLef","_node$box2$paddingTop","_node$box2$paddingRig","_node$box2$paddingBot","_node$box2$borderLeft","_node$box2$borderTopW","_node$box2$borderRigh","_node$box2$borderBott","debugPadding","_node$box$paddingLeft","_node$box$paddingTop","_node$box$paddingRigh","_node$box$paddingBott","_node$box$borderLeftW","_node$box$borderTopWi","_node$box$borderRight","_node$box$borderBotto","debugContent","_resolveObjectFit2","_node$style3","_node$style4","objectFit","objectPositionX","objectPositionY","_resolveObjectFit","drawImage","_renderSvg","_renderText","_renderPage","_renderNote","_renderImage","_renderDebug","_renderCanvas","_renderBorders","_renderBackground","_isSvg","_isLink","_isPage","_isNote","_isText","_isImage","_isCanvas","_setLink","_transform","_setDestination","shouldRenderChildren","isOverflowHidden","renderChildren","renderNode","_renderPolyline","drawPolyline","_parsePoints","krx","kry","_renderPath","_renderRect","_renderLine","_renderGroup","_renderCircle","_renderSvgText","_renderPolygon","_renderSvgImage","_isPath","_isRect","_isLine","_isTspan","_isGroup","_isCircle","_isEllipse","_isPolygon","_isPolyline","_isTextInstance","_getBoundingBox","warnUnsupportedNode","hasLinearGradientFill","hasRadialGradientFill","setLinearGradientFill","gradient","gx1","gy1","gx2","gy2","setRadialGradientFill","fx","fy","gr","gcx","gcy","gfx","gfy","setFillColor","drawNode","fillRule","draw","setOpacity","setFillOpacity","setStrokeOpacity","setFill","setStrokeColor","setStrokeWidth","setLineJoin","setLineDash","setLineCap","drawChildren","_node$props$preserveA","_preserveAspectRatio$","_preserveAspectRatio$2","logicalWidth","logicalHeight","logicalRatio","physicalRatio","resolveAspectRatio","moveToOrigin","_advanceWidth","_advanceWidth2","renderSpan","textAnchor","dominantBaseline","xTranslate","yTranslate","runAdvanceWidth","_run$attributes","renderRun","span","_pdf","initialY","_absSvgPath","_parseSvgPath","_normalizeSvgPath","getPolylineBoundingBox","xValues","yValues","lengthIsOdd","splitEvery","isNumeric","isFinite","applyContainObjectFit","cw","iw","ih","cr","ir","pxp","pyp","pxv","pyv","_height","_width","_yOffset","applyNoneObjectFit","_width2","_height2","_xOffset2","applyCoverObjectFit","containDimension","noneDimension","applyScaleDownObjectFit","applyFillObjectFit","unstable_now","unstable_forceFrameRate","window","MessageChannel","setTimeout","now","clearTimeout","performance","u","requestAnimationFrame","cancelAnimationFrame","B","E","J","I","postMessage","port2","port1","onmessage","O","previous","priorityLevel","expirationTime","U","startTime","X","Y","aa","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_NormalPriority","unstable_IdlePriority","unstable_LowPriority","unstable_runWithPriority","unstable_next","unstable_scheduleCallback","delay","timeout","unstable_cancelCallback","unstable_wrapCallback","unstable_getCurrentPriorityLevel","unstable_shouldYield","unstable_requestPaint","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","_hslToHex","isRgb","isRgba","isHsl","isHsla","parseRgb","parseHsl","hsl","processObjectPosition","processFontWeight","_shorthands","matchBoxModel","matchObjectPosition","matchBorderShorthand","matchTransformOrigin","FONT_WEIGHT_REGEX","BORDER_STYLE_REGEX","BOX_MODEL_STYLE_REGEX","OBJECT_POSITION_STYLE_REGEX","matchNumber","castFloat","transformStyle","transformOffsetKeywords","propsArray","resolvedStyle","expandedProps","propName","castArray","compact","flatten","_mediaEngine","_matchMedia","_expand","_units","_mediaQueries","filterNoneValues","border","borderTop","borderRight","borderBottom","borderLeft","borderRadius","borderStyle","borderWidth","objectPosition","transformOrigin","flex","transformUnit","unit","parseValue","_reduce","_filter","_advanceWidthBetween","_empty","_append","_stringFromCodePoints","unapply","_ascent","_copy","syllables","_descent","_dropLast","dropLast","adjust","getRuns","applySpec","_runAt","_glyphIndexAt","_end","_fromFragments","_glyphWidthAt","_indexAtOffset","_insertGlyph","_leadingOffset","_length","_prepend","_runIndexAt","_slice","_sliceAtOffset","_start","_trailingOffset","_trim","advanceWidthBetween","append","empty","glyphWidthAt","indexAtOffset","insertGlyph","leadingOffset","prepend","runAt","runIndexAt","sliceAtOffset","trailingOffset","_insert","idxGt","nthArg","runIndex","conds","incRange","addIndex","_add","accum","_subtract","_mapIndexed","sliceRuns","intermediateRun","testChar","findCharIndex","findIndex","findLastCharIndex","inc","findLastIndex","block","newBlock","factors","total","priorities","unconstrained","_priority","priority","highestPriority","highestPrioritySum","remainingGap","prioritySum","distances","dist","_isWhiteSpace","EXPAND_WHITESPACE_FACTOR","EXPAND_CHAR_FACTOR","SHRINK_WHITESPACE_FACTOR","SHRINK_CHAR_FACTOR","charFactor","expandCharFactor","shrinkCharFactor","getCharFactor","whitespaceFactor","expandWhitespaceFactor","getWhitespaceFactor","clone","getFactor","concatFactors","_getFactors","_getDistances","justifyLine","getNextBreakpoint","subnodes","lineNumber","minimumBadness","stretch","shrink","lineLength","calculateRatio","ratio","penalty","badness","breakpoints","breakpoint","_bestFit","_linebreak","getStyles","availableWidths","tolerance","hyphenPenalty","glue","hyphenated","_value","infinity","getNodes","breaks","breakPoint","prevNode","breakLines","_linkedList","linebreak","demerits","flagged","fitness","activeNodes","lineLengths","fitnessClass","totals","computeCost","active","currentLine","computeSum","breakPointIndex","mainLoop","tmpSum","candidate","newNode","candidates","currentClass","remove","insertBefore","_defineProperty2","LinkedList","listSize","isLinked","fun","contains","at","listLength","insertAfter","_unicodeProperties","ignoredScripts","lastScript","getScript","_ascent2","lineFragment","overflowRight","decorationLines","thickness","_hyphen","_enUs","hyphenator","splitHyphen","getParts","word","not","intersection","indices","applyRunStyles","alignLastLine","bidiLevel","bullet","hangingPunctuation","hyphenationFactor","justificationFactor","lineSpacing","paragraphSpacing","shrinkFactor","ALIGNMENT_FACTORS","justify","removeNewLine","getOverflowLeft","getOverflowRight","adjustOverflow","overflowLeft","finalizeBlock","isLastFragment","lineAdvanceWidth","remainingWidth","shouldJustify","blocks","_scale","_resolve","getCharacterSpacing","runString","multScale","multiply","scalePosition","subCharacterSpacing","scalePositions","_wrapWords","_typesetter","_generateGlyphs","_resolveYOffset","_preprocessRuns","_splitParagraphs","_finalizeFragments","_resolveAttachments","_applyDefaultStyles","processParagraphs","_omit","purgeAttachments","paragraph","currentY","lineIndent","omit","layoutLines","omitFont","mapIndexed","getGlyphs","getAttachment","isReplaceGlyph","resolveRunAttachments","attachmentWidth","getYOffset","getUnitsPerEm","resolveRunYOffset","mult","_crop","_truncate","_layoutParagraph","_sliceAtHeight","attributedStrings","paragraphs","truncateEllipsis","linesCount","paragraphRect","nextParagraph","slicedBlock","linesHeight","shouldTruncate","defaultHyphenationEngine","hyphenateWord","words","parts","DEST_REGEXP","renderAttachment","_attachment$xOffset","_attachment$yOffset","outlineRuns","objectReplacement","attachmentAdvance","renderAttachments","renderBackground","renderDecorationLine","step","stepCount","renderBlock","lineAscent","outlineLines","backgroundRect","decorationLine","renderLine","runStart","glyphStartIndex","glyphEndIndex","_getFont","_isNumber","_fromCodePoint","runScale","glyphLength","appendGlyph","getFontAscent","_normalize","reverseMerge","flip","reverseConcat","runA","runB","getFontDescent","startIndex","endIndex","_sort","_isEmpty","generatePoints","flattenEmptyRuns","mergeDeepWithKey","groupWith","eqProps","flattenRegularRuns","attrs","_points$i","partition","negate","_concat","leadingRun","trailingRun","leadingPositions","takeWhile","dropWhile","prependGlyph","_isBetween","calculateScale","divide","endGlyph","startGlyphs","endOffset","endGlyphs","sliceOffset","_positions","trailingPositions","gte","list","data$1","combiningClasses","scripts","eaw","log2","CATEGORY_BITS","COMBINING_BITS","SCRIPT_BITS","EAW_BITS","CATEGORY_SHIFT","COMBINING_SHIFT","SCRIPT_SHIFT","CATEGORY_MASK","COMBINING_MASK","SCRIPT_MASK","EAW_MASK","getCategory","getEastAsianWidth","getNumericValue","num","_exp","exp","isAlphabetic","isDigit","isPunctuation","isLowerCase","isUpperCase","isTitleCase","isWhiteSpace","isBaseForm","Module","cb","onRuntimeInitialized","ccall","_nbind_value","reflect","NBind","queryType","toggleLightGC","lib","moduleOverrides","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","nodeFS","nodePath","importScripts","console","warn","binary","assert","globalEval","ExitStatus","print","printErr","readbuffer","scriptArgs","quit","status","toThrow","xhr","XMLHttpRequest","send","responseText","responseType","onload","onerror","TRY_USE_DUMP","dump","eval","Runtime","setTempRet0","tempRet0","getTempRet0","stackSave","STACKTOP","stackRestore","stackTop","getNativeTypeSize","QUANTUM_SIZE","substr","getNativeFieldSize","STACK_ALIGN","prepVararg","getAlignSize","vararg","dynCall","sig","functionPointers","addFunction","func","removeFunction","warnOnce","shown","funcWrappers","getFuncWrapper","sigCache","getCompilerSetting","stackAlloc","staticAlloc","STATICTOP","dynamicAlloc","HEAP32","DYNAMICTOP_PTR","TOTAL_MEMORY","enlargeMemory","alignMemory","quantum","makeBigInt","unsigned","GLOBAL_BASE","__dummy__","ABORT","EXITSTATUS","cwrap","abort","getCFunc","ident","setValue","noSafe","HEAP8","HEAP16","tempI64","tempDouble","Math_abs","Math_min","Math_floor","Math_ceil","HEAPF32","HEAPF64","getValue","JSfuncs","writeArrayToMemory","stringToUTF8","toC","returnType","argTypes","cArgs","converter","Pointer_stringify","async","EmterpreterAsync","asyncFinalizers","sourceRegex","parseJSFunc","jsfunc","returnValue","JSsource","ensureJSsource","cfunc","numericArgs","numericRet","argNames","funcstr","nargs","convertCode","cfuncname","strgfy","ALLOC_NORMAL","ALLOC_STACK","ALLOC_STATIC","ALLOC_DYNAMIC","ALLOC_NONE","allocate","slab","allocator","zeroinit","singleType","_malloc","subarray","HEAPU8","typeSize","previousType","curr","getFunctionIndex","getMemory","staticSealed","runtimeInitialized","hasUtf","MAX_CHUNK","AsciiToString","stringToAscii","outPtr","writeAsciiToMemory","UTF8Decoder","TextDecoder","UTF8ArrayToString","u8Array","endPtr","u0","u1","u2","u3","u4","UTF8ToString","stringToUTF8Array","outU8Array","outIdx","maxBytesToWrite","startIdx","endIdx","lengthBytesUTF8","UTF16Decoder","HEAP","HEAPU16","HEAPU32","STATIC_BASE","STACK_BASE","STACK_MAX","DYNAMIC_BASE","demangle","__cxa_demangle_func","_free","demangleAll","jsStackTrace","stackTrace","updateGlobalBufferViews","Int8Array","Int32Array","Uint32Array","Float32Array","Float64Array","abortOnCannotGrowMemory","TOTAL_STACK","getTotalMemory","callRuntimeCallbacks","callbacks","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATEXIT__","__ATPOSTRUN__","runtimeExited","preRun","addOnPreRun","ensureInitRuntime","preMain","exitRuntime","postRun","addOnPostRun","addOnInit","addOnPreMain","addOnExit","intArrayFromString","stringy","dontAddNull","u8array","numBytesWritten","intArrayToString","chr","writeStringToMemory","lastChar","al","bl","imul","froundBuffer","fround","clz32","trunc","Math_cos","Math_sin","Math_tan","Math_acos","acos","Math_asin","asin","Math_atan","atan","Math_atan2","Math_exp","Math_log","Math_sqrt","Math_pow","Math_imul","Math_fround","Math_round","Math_clz32","Math_trunc","runDependencies","runDependencyWatcher","dependenciesFulfilled","getUniqueRunDependency","addRunDependency","removeRunDependency","clearInterval","ASM_CONSTS","$0","$1","$2","$3","$4","$5","$6","$7","_nbind","callbackSignatureList","_emscripten_asm_const_iiiiiiii","a0","a1","a2","a3","a4","a5","a6","_emscripten_asm_const_iiiii","_emscripten_asm_const_iiidddddd","a7","_emscripten_asm_const_iiididi","_emscripten_asm_const_iiii","_emscripten_asm_const_iiiid","_emscripten_asm_const_iiiiii","__GLOBAL__sub_I_Yoga_cpp","__GLOBAL__sub_I_nbind_cc","__GLOBAL__sub_I_common_cc","__GLOBAL__sub_I_Binding_cc","tempDoublePtr","_atexit","___cxa_atexit","_abort","__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj","__decorate","Reflect","decorate","_defineHidden","__nbind_free_external","externalList","dereference","__nbind_reference_external","reference","_llvm_stackrestore","_llvm_stacksave","LLVM_SAVEDSTACKS","__nbind_register_pool","pageSize","usedPtr","rootPtr","pagePtr","Pool","bigEndian","makeTypeKindTbl","PrimitiveType","Int64Type","BindClass","BindClassPtr","SharedClassPtr","ArrayType","CStringType","CallbackType","BindType","makeTypeNameTbl","BufferType","ExternalType","CreateValueType","BooleanType","StringType","callUpcast","globalScope","makeType","constructType","proto","_emscripten_set_main_loop_timing","Browser","timingMode","timingValue","scheduler","timeUntilNextTick","tickStartTime","_emscripten_get_now","runner","setImmediates","emscriptenMainLoopMessageId","addEventListener","event","stopPropagation","_emscripten_set_main_loop","fps","simulateInfiniteLoop","noSetTiming","browserIterationFunc","thisMainLoopId","currentlyRunningMainloop","queue","blocker","remainingBlockers","remaining","counted","updateStatus","currentFrameNumber","runIter","SDL","audio","queueNewAudioData","pause","resume","message","expected","expectedBlockers","isFullscreen","pointerLock","moduleContextCreatedCallbacks","workers","initted","Blob","hasBlobConstructor","BlobBuilder","MozBlobBuilder","WebKitBlobBuilder","URLObject","URL","webkitURL","noImageDecoding","imagePlugin","byteArray","getMimetype","bb","getBlob","createObjectURL","complete","canvas","createElement","getContext","revokeObjectURL","audioPlugin","noAudioDecoding","finish","fail","Audio","leftchar","leftbits","PAD","encode64","safeSetTimeout","requestPointerLock","exitPointerLock","pointerLockChange","ev","preventDefault","createContext","useWebGL","setInModule","webGLContextAttributes","contextHandle","contextAttributes","antialias","attribute","GL","GLctx","makeContextCurrent","destroyContext","fullscreenHandlersInstalled","lockPointer","resizeCanvas","requestFullscreen","vrDevice","fullscreenChange","canvasContainer","parentNode","exitFullscreen","setFullscreenCanvasSize","removeChild","setWindowedCanvasSize","updateCanvasDimensions","appendChild","Element","vrDisplay","requestFullScreen","nextRAF","fakeRequestAnimationFrame","safeCallback","allowAsyncCallbacks","queuedAsyncCallbacks","pauseAsyncCallbacks","resumeAsyncCallbacks","safeRequestAnimationFrame","safeSetInterval","setInterval","lastIndexOf","getUserMedia","navigator","getMovementX","getMovementY","getMouseWheelDelta","detail","wheelDelta","mouseX","mouseY","mouseMovementX","mouseMovementY","touches","lastTouches","calculateMouseEvent","getBoundingClientRect","scrollX","pageXOffset","scrollY","pageYOffset","touch","adjustedX","pageX","adjustedY","pageY","identifier","asyncLoad","noRunDep","dep","resizeListeners","updateResizeListeners","listener","setCanvasSize","noUpdates","windowedWidth","windowedHeight","screen","wNative","hNative","widthNative","heightNative","removeProperty","setProperty","wgetRequests","nextWgetRequestHandle","getNextWgetRequestHandle","SYSCALLS","varargs","getStr","get64","getZero","___syscall6","which","getStreamFromFD","close","ErrnoError","errno","___syscall54","_typeModule","structureList","applyStructure","outerName","outerFlags","innerName","innerFlags","spec","refKind","kind","ptrSize","output","getComplexType","place","prevStructure","depth","problem","query","structureType","placeholderFlag","structure","reportProblem","srcSpec","subType","paramList","argList","structureParam","paramType","_b","_c","__nbind_register_type","namePtr","readAsciiString","__nbind_register_callback_signature","typeListPtr","typeCount","readTypeIdList","makeJSCaller","__extends","Class","Base","__nbind_register_class","idListPtr","policyListPtr","superListPtr","upcastListPtr","superCount","destructorPtr","policyTbl","readPolicyList","idList","bindClass","ptrType","destroy","makeMethodCaller","boundID","superIdList","upcastList","makeBound","_removeAccessorPrefix","initial","second","__nbind_register_function","direct","signatureType","specList","name_1","specList_1","addMethod","typeNameTbl","throwError","bind_value","__nbindValueConstructor","__nbind_get_value_object","popValue","fromJS","_emscripten_memcpy_big","dest","__nbind_register_primitive","cttz_i8","___setErrNo","___syscall140","offset_low","whence","llseek","getdents","___syscall146","iov","iovcnt","buffers","printChar","__nbind_finish","___dso_handle","invoke_viiiii","invoke_vif","invoke_vid","invoke_fiff","invoke_vi","invoke_vii","invoke_ii","invoke_viddi","invoke_vidd","invoke_iiii","invoke_diii","invoke_di","invoke_iid","invoke_iii","invoke_viiddi","invoke_viiiiii","invoke_dii","invoke_i","invoke_iiiiii","invoke_viiid","invoke_viififi","invoke_viii","invoke_v","invoke_viid","invoke_idd","invoke_viiii","typeIdTbl","lalloc","lreset","bindType","paramCount","getTypes","getDynCall","mangleMap","float32_t","float64_t","int64_t","uint64_t","arity","overload","makeOverloader","_super","heap","needsWireRead","wireRead","makeWireRead","needsWireWrite","wireWrite","makeWireWrite","heapTbl","expr","pushCString","popCString","readResources","pool","writeResources","Wrapper","persist","__nbindState","Bound","shared","nbindFlags","nbindPtr","nbindShared","ptrMarker","wirePtr","__nbindConstructor","propTbl","free","__nbindShared","__nbindFlags","disableMember","die","pushPointer","pendingSuperCount","ready","methodTbl","classType","overloadList","registerMethods","staticOnly","setter","overloadList_1","caller","makeCaller","registerSuperMethods","firstSuper","visitTbl","nextFirst","superNum","superId","superList","Proto","__nbindType","upcastStep","dst","superPtr","popPointer","tryValue","pushValue","__nbindPtr","objType","pushMutablePointer","isConst","isValue","popShared","unsafe","pushShared","pushMutableShared","firstFreeExternal","External","refCount","popExternal","pushExternal","external","valueList","firstFreeValue","valueBase","push64","pop64","pushArray","memberType","popArray","pushString","popString","makeArgList","argCount","dummy","anyNeedsWireWrite","anyNeedsWireRead","convertParamList","paramNum","buildCallerFunction","prefix","argTypeList","callExpression","resourceSet","listResources","sourceCode","makeOpen","makeClose","buildJSCallerFunction","typeIdList","dynCall_1","callerList","_func","_arity","Resource","openTbl","closeTbl","other","readList","writeList","readList_1","resource","writeList_1","_d","_e","ExternalBuffer","getBuffer","DataView","byteOffset","pushBuffer","commitBuffer","NodeBuffer","dirtyList","gcTimer","dirtyList_1","enable","dateNow","fflush","asmGlobalArg","NaN","asmLibraryArg","asm","env","$","ba","da","ea","fa","ga","ha","ia","ja","ka","la","ma","na","oa","qa","ra","sa","ta","ua","va","wa","xa","ya","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","db","eb","fb","gb","hb","ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","oc","Sb","af","Tb","Ub","oB","Vb","fe","Wb","Xb","qC","Yb","ie","Zb","$b","ac","bc","pB","GC","bf","cf","df","cc","nc","Ib","dc","ec","Vd","fc","gc","hc","ic","jc","kc","lc","mc","ef","le","jC","gf","ff","sC","qc","rc","sc","BB","tc","uc","vc","wc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","zd","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","tC","Od","gC","Pd","Qd","Rd","Sd","Td","Ud","Wd","nb","Xd","Yd","me","ne","ge","qe","se","te","ue","ve","ze","oe","Ae","Be","Ce","be","cC","eC","Ee","Fe","De","Ge","$d","ce","He","Ie","ae","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","we","Zd","de","$e","ee","CB","iC","Bb","he","je","ke","pe","Db","We","yC","Xe","Ye","mb","Ze","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","gh","Pg","Qg","Rg","UA","Sg","Tg","WA","Vg","Ug","Wg","Xg","Yg","dh","Zg","$g","ah","fh","eh","hh","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","kv","yu","eu","vt","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","_h","dr","er","Hv","Oq","ai","tq","cq","Lp","pp","Yo","Fo","mo","Un","Bn","Um","Bm","im","Rl","vl","Kk","nk","Rj","xj","$h","bi","ci","di","fi","ei","qi","si","ji","ki","li","gi","hi","ii","mi","ni","oi","pi","ui","ri","ti","vi","yi","wi","xi","zi","Ai","ob","Bi","Di","Ci","Ii","Ei","Fi","Gi","Hi","Ti","Ni","jy","Ji","Ki","kC","Li","Mi","Oi","Pi","Qi","Ri","Si","Zi","Ui","Vi","Wi","Xi","$i","aj","bj","cj","jj","dj","ej","fj","gj","hj","ij","mj","kj","lj","nj","oj","pj","qj","rj","sj","tj","uj","qb","wj","vj","yj","zj","Aj","Bj","Ij","Cj","Dj","Ej","Fj","Gj","Hj","Lj","Jj","Kj","Mj","Nj","Oj","Pj","Qj","Sj","Tj","Uj","Vj","ak","Wj","Xj","Yj","Zj","$j","dk","bk","ck","ek","fk","gk","hk","ik","jk","kk","lk","mk","ok","pk","qk","rk","yk","sk","tk","uk","vk","wk","xk","Bk","zk","Ak","Ck","Dk","Ek","Fk","Gk","Hk","Ik","wb","Jk","Lk","Mk","Nk","Ok","Vk","Pk","Qk","Rk","Sk","Tk","Uk","Yk","Wk","Xk","Zk","$k","cl","dl","el","fl","ml","gl","hl","il","jl","kl","ll","nl","ol","ql","rl","sl","tl","ul","wl","xl","yl","zl","Gl","Al","Bl","Cl","Dl","El","Fl","Jl","Hl","Il","Kl","Ll","Ml","Nl","Ol","Pl","Ql","Sl","Tl","Ul","Vl","am","Wl","Xl","Yl","Zl","_l","$l","dm","bm","cm","em","fm","gm","hm","Eb","jm","km","lm","mm","tm","nm","om","pm","qm","rm","sm","wm","um","vm","zm","Am","Cm","Dm","Em","Fm","Mm","Gm","Hm","Im","Jm","Km","Lm","Pm","Nm","Om","Qm","Rm","Sm","Tm","ub","Vm","Wm","Xm","Ym","dn","Zm","_m","$m","an","bn","cn","gn","hn","jn","kn","ln","mn","nn","pn","An","un","qn","rn","sn","tn","vn","wn","xn","yn","zn","Cn","Dn","En","Fn","Mn","Gn","Hn","In","Jn","Kn","Ln","Pn","Nn","On","Qn","Rn","Sn","Tn","Vn","Wn","Xn","Yn","eo","Zn","_n","$n","ao","bo","co","ho","fo","go","io","jo","ko","lo","no","oo","po","qo","xo","ro","so","uo","vo","wo","Ao","yo","zo","Bo","Co","Do","Eo","lb","Go","Ho","Io","Jo","Qo","Ko","Lo","Mo","No","Oo","Po","To","Ro","So","Uo","Vo","Wo","Xo","Gb","Zo","_o","$o","ap","cp","dp","ep","fp","gp","kp","jp","lp","mp","np","qp","rp","sp","tp","Ap","up","vp","xp","yp","zp","Dp","Bp","Cp","Ep","Fp","Gp","Hp","Ip","Jp","Kp","Mp","Np","Op","Pp","Wp","Qp","Rp","Sp","Tp","Up","Vp","Zp","Xp","Yp","$p","aq","bq","dq","eq","fq","mq","gq","hq","iq","jq","kq","lq","pq","nq","oq","qq","sq","rq","uq","vq","wq","Dq","xq","yq","zq","Aq","Bq","Cq","Gq","Eq","Fq","Hq","Iq","Kq","Jq","Lq","Mq","Nq","Pq","Qq","Rq","Yq","Sq","Tq","Uq","Vq","Wq","Xq","$q","Zq","_q","ar","br","Ab","nr","fr","hr","lr","jr","kr","oC","mr","pr","qr","rr","sr","tr","ur","nt","Ws","Es","Or","vr","wr","xr","yr","zr","Gr","Ar","Br","Cr","Dr","Er","Fr","Jr","Hr","Ir","Kr","Lr","Mr","Nr","Pr","Qr","Rr","Sr","Zr","Tr","Ur","Vr","Wr","Xr","Yr","as","$r","bs","cs","ds","es","fs","gs","kb","hs","ks","ls","ms","ts","ns","os","ps","qs","rs","ss","ws","us","vs","xs","ys","zs","As","Bs","Cs","Ds","Fs","Gs","Hs","Os","Is","Js","Ks","Ls","Ms","Ns","Rs","Ps","Qs","Ss","Ts","Vs","Us","Xs","Ys","Zs","et","_s","$s","bt","ct","dt","ht","ft","jt","kt","mt","ut","qt","rt","st","tt","wt","xt","yt","Yt","At","Mt","zt","Bt","Et","Gt","Ct","Dt","Jt","Ft","Ht","It","Kt","Lt","Nt","Qt","Ot","Pt","Vt","Rt","St","Tt","Ut","Wt","Xt","Zt","_t","$t","cu","au","bu","du","fu","gu","su","hu","iu","lu","ju","ku","pu","mu","nu","ou","qu","ru","tu","uu","vu","wu","xu","zu","Au","Bu","cv","dv","Su","Cu","Du","Gu","Eu","Fu","Lu","Hu","Iu","Ju","Ku","Mu","Nu","Ou","Pu","Qu","Ru","Tu","Wu","Uu","Vu","$u","Xu","Yu","Zu","_u","av","bv","jv","fv","gv","hv","iv","mv","Zv","nv","vv","wv","ov","rv","pv","qv","sv","uv","tv","xv","yv","zv","Av","Bv","Cv","Dv","Ev","Fv","Gv","Rv","Mv","Nv","Ov","Iv","Jv","Kv","Lv","Pv","Qv","Sv","AB","Tv","Uv","Vv","Wv","Xv","Yv","_v","$v","aw","dw","OA","ew","fw","gw","hw","jw","kw","Rw","Sw","Tw","Nw","Kw","Ow","Pw","Qw","lw","mw","nw","ow","Lw","Mw","Iw","Jw","pw","qw","rw","sw","tw","uw","Gw","yw","ww","xw","vw","zw","Aw","RA","Fw","Bw","Cw","Dw","Ew","Hw","Uw","Vw","Ww","Xw","Yw","_w","Zw","$w","nx","ix","gx","hx","bx","jx","kx","lx","mx","qx","tx","ux","vx","QA","wx","xx","PA","yx","zx","Ax","Ox","Kx","Gx","Bx","Cx","Dx","Ex","Fx","Hx","Ix","Jx","Lx","Mx","Nx","Px","Qx","Rx","Sx","Tx","Ux","Vx","rC","qy","Wx","Xx","Yx","ky","Zx","by","$x","gy","hy","iy","ly","my","ny","ty","uy","vy","wy","yy","GA","HA","rA","Yz","Gz","hz","Ry","xy","zy","Ay","By","Cy","Jy","Dy","Ey","Fy","Gy","Hy","Iy","My","Ky","Ly","Ny","Oy","Qy","Py","Sy","Ty","Uy","$y","Vy","Wy","Xy","Yy","Zy","_y","cz","az","bz","dz","ez","gz","fz","iz","jz","kz","rz","lz","mz","nz","oz","pz","qz","uz","sz","tz","vz","wz","yz","xz","zz","Az","Bz","Cz","Dz","Ez","Fz","Hz","Iz","Jz","Qz","Kz","Lz","Mz","Nz","Oz","Pz","Tz","Rz","Sz","Uz","Vz","Xz","Wz","jb","Zz","_z","$z","gA","aA","bA","cA","dA","eA","fA","jA","hA","iA","kA","lA","nA","mA","oA","pA","qA","sA","vA","tA","uA","zA","wA","xA","yA","BA","EA","FA","NA","IA","JA","KA","LA","MA","SA","TA","VA","XA","YA","ZA","_A","$A","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","FC","vB","qB","rB","yB","uB","sB","tB","wB","xB","zB","DB","EB","sb","FB","GB","HB","IB","KB","wC","MB","OB","QB","JB","LB","NB","PB","aC","AC","HC","EC","XB","WB","UB","RB","SB","zC","xC","TB","VB","YB","ZB","_B","$B","IC","bC","dC","fC","hC","lC","mC","nC","pC","uC","Fb","vC","CC","DC","JC","KC","LC","MC","NC","OC","PC","QC","RC","rb","SC","TC","tb","UC","VC","vb","WC","XC","xb","YC","yb","ZC","_C","$C","aD","Cb","bD","cD","dD","eD","fD","Hb","gD","hD","iD","jD","kD","lD","mD","nD","oD","pD","qD","rD","sD","tD","uD","vD","wD","xD","yD","zD","AD","BD","CD","DD","ED","FD","GD","_llvm_bswap_i32","dynCall_idd","dynCall_i","_i64Subtract","___udivdi3","dynCall_vif","setThrew","dynCall_viii","_bitshift64Lshr","_bitshift64Shl","dynCall_vi","dynCall_viiddi","dynCall_diii","dynCall_iii","_memset","_sbrk","_memcpy","dynCall_vii","___uremdi3","dynCall_vid","_nbind_init","dynCall_di","dynCall_iid","_i64Add","dynCall_fiff","dynCall_iiii","_emscripten_get_global_libc","dynCall_viid","dynCall_viiid","dynCall_viififi","dynCall_ii","dynCall_viiii","dynCall_iiiiii","dynCall_viiiii","dynCall_vidd","runPostSets","dynCall_viiiiii","establishStackSpace","_memmove","dynCall_viddi","dynCall_dii","dynCall_v","initialStackTop","preloadStartTime","calledMain","doRun","shouldRunNow","implicit","runCaller","callMain","argc","argv","toLog","abortDecorators","what","ALIGN_COUNT","DIMENSION_COUNT","DIMENSION_WIDTH","DIMENSION_HEIGHT","DIRECTION_COUNT","DIRECTION_INHERIT","DIRECTION_LTR","DIRECTION_RTL","DISPLAY_COUNT","EDGE_COUNT","EDGE_START","EDGE_END","EDGE_HORIZONTAL","EDGE_VERTICAL","EDGE_ALL","EXPERIMENTAL_FEATURE_COUNT","EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS","FLEX_DIRECTION_COUNT","JUSTIFY_COUNT","LOG_LEVEL_COUNT","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG","LOG_LEVEL_VERBOSE","LOG_LEVEL_FATAL","MEASURE_MODE_COUNT","NODE_TYPE_COUNT","NODE_TYPE_DEFAULT","NODE_TYPE_TEXT","OVERFLOW_COUNT","POSITION_TYPE_COUNT","PRINT_OPTIONS_COUNT","PRINT_OPTIONS_LAYOUT","PRINT_OPTIONS_STYLE","PRINT_OPTIONS_CHILDREN","UNIT_COUNT","UNIT_UNDEFINED","UNIT_POINT","UNIT_PERCENT","WRAP_COUNT","Yoga","nbind","ran","_classCallCheck","CONSTANTS","Layout","expose","Value","patch","original","_methods","fnName","_methods$unit","_methods$unit2","asNumber","endsWith","config","createDefault","getChild","measureFunc","unsetMeasureFunc","getInstanceCount","startX","startY","hasOwn","asn1","bignum","define","constants","decoders","encoders","inherits","Entity","_createNamed","Generated","entity","_initNamed","_getDecoder","enc","_getEncoder","reporter","Reporter","DecoderBuffer","EncoderBuffer","isEncoderBuffer","isDecoderBuffer","skip","raw","_reporterState","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","_wrap","stateProps","cstate","_init","equal","_useArgs","def","newKey","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","isError","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","_use","_createEncoderBuffer","_encode","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","msg","rethrow","pathLen","inherited","elem","partial","captureStackTrace","tagClass","tagClassByName","tagByName","_reverse","der","DERDecoder","tree","DERNode","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","decoder","possibleEnd","numstr","printstr","relative","identifiers","subident","year","mon","day","hour","sec","UTC","pem","PEMDecoder","base64","DEREncoder","two","encodedTag","encodeTag","lenOctets","objid","time","date","numArray","sign","dataBuffer","defaultBuffer","PEMEncoder","isDeepEqual","isDeepStrictEqual","_require$codes","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","ERR_MISSING_ARGS","AssertionError","_require$types","isPromise","isRegExp","objectAssign","objectIs","lazyLoadComparison","comparison","warned","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","generatedMessage","actual","operator","stackStartFn","internalMessage","argsLen","emitWarning","errArgs","notEqual","deepEqual","notDeepEqual","deepStrictEqual","notDeepStrictEqual","strictEqual","notStrictEqual","Comparison","compareExceptionKey","expectedException","isPrototypeOf","getActual","checkIsPromise","catch","waitForActual","promiseFn","resultPromise","expectsError","details","fnType","expectsNoError","strict","_len6","_key6","throws","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","tmp2","tmp1","_possibleConstructorReturn","_wrapNativeSuper","_construct","_getPrototypeOf","isNativeReflectConstruct","construct","sham","Proxy","getPrototypeOf","search","this_len","kReadableOperator","strictEqualObject","notStrictEqualObject","notIdentical","copyError","inspectValue","customInspect","maxArrayLength","showHidden","breakLength","showProxy","sorted","getters","createErrDiff","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","stderr","isTTY","maxCount","_actualLines","printedLines","skippedMsg","expectedLine","actualLine","divergingLines","_Error","stackTraceLimit","getColorDepth","knownOperators","_inherits","custom","recurseTimes","ownKeys","getOwnPropertySymbols","sym","_objectSpread","util","createErrorType","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","thing","determiner","reason","inspected","RangeError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","regexFlagsSupported","arrayFromSet","arrayFromMap","objectGetOwnPropertySymbols","numberIsNaN","uncurryThis","propertyIsEnumerable","objectToString","isAnyArrayBuffer","isArrayBufferView","isDate","isMap","isSet","isNativeError","isBoxedPrimitive","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isFloat32Array","isFloat64Array","isNonIndex","getOwnNonIndexProperties","compare","innerDeepEqual","val1","val2","memos","buf1","buf2","val1Tag","keys1","keys2","keyCheck","getTime","areSimilarTypedArrays","areSimilarFloatArrays","_keys","_keys2","BigInt","isEqualBoxedPrimitive","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","val2MemoA","val2MemoB","areEq","objEquiv","delete","setHasEqualElement","memo","setValues","findLooseMatchingPrimitives","prim","setMightHaveLoosePrim","altValue","mapMightHaveLoosePrim","curB","mapHasEqualEntry","key1","item1","key2","aValues","bValues","_val","setEquiv","aEntries","_aEntries$i","item2","bEntries","_bEntries$_i","mapEquiv","keysA","typedArray","_isIterable3","_getIterator3","sliceIterator","hadRuntime","regeneratorRuntime","getOwnPropertyNames","oldRuntime","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","awrap","__await","defineIteratorMethods","AsyncIterator","innerFn","outerFn","tryLocsList","iter","skipTempReset","_sent","delegate","tryEntries","resetTryEntry","rootRecord","completion","rval","dispatchException","exception","loc","caught","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","afterLoc","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","return","pushTryEntry","locs","iteratorMethod","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","maxChunkLength","len2","encodeChunk","WritableStream","mozURL","BlobStream","_chunks","_blob","toBlob","toBlobURL","MSBlobBuilder","blobSupported","blobSupportsArrayBufferView","blobBuilderSupported","mapArrayBufferViews","ary","BlobBuilderConstructor","BlobConstructor","superCtor","super_","TempCtor","BN","endian","isBN","negative","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","mul","_initNumber","_initArray","_parseHex","_parseBase","strip","limbLen","limbPow","mod","imuln","_iaddn","_normSign","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","toJSON","toBuffer","toArrayLike","reqLength","littleEndian","andln","iushrn","_countBits","_zeroBits","bitLength","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","sub","comb10MulTo","al0","ah0","al1","ah1","al2","ah2","al3","ah3","al4","ah4","al5","ah5","al6","ah6","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","revBin","permute","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","guessLen13b","odd","conjugate","normalize13b","convert13b","stub","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","hint","extended","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","div","divmod","positive","divn","umod","divRound","egcd","isEven","isOdd","gcd","_invmp","cmpn","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","mod3","one","nOne","lpow","inv","wnd","currentLen","mont","Rand","rand","generate","_rand","getBytes","getByte","crypto","getRandomValues","msCrypto","randomBytes","asUInt32Array","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s3","ksRow","RCON","INV_SBOX","INV_SUB_MIX","x4","x8","AES","_reset","blockSize","keySize","keyWords","ksRows","invKeySchedule","ksR","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","allocUnsafe","writeUInt32BE","decryptBlock","scrub","aes","Transform","GHASH","incr32","StreamCipher","decrypt","_cipher","_ghash","_finID","ghash","toPad","update","ivBits","writeUIntBE","calcIv","_prev","_secCache","_decrypt","_alen","_mode","_authTag","_called","_update","rump","encrypt","_final","final","xorTest","getAuthTag","setAuthTag","setAAD","ciphers","deciphers","modes","createCipher","Cipher","createCipheriv","Cipheriv","createDecipher","Decipher","createDecipheriv","Decipheriv","listCiphers","getCiphers","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","suite","padded","unpad","setAutoPadding","setTo","autoPadding","PADDING","padBuff","ZEROES","fromArray","_multiply","lsbVi","abl","encryptStart","encryptByte","byteParam","shiftIn","getBlock","chunkNum","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","DES","aesModes","desModes","keyLen","ivLen","CipherBase","des","instantiate","EDE","modeName","_des","des3","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","qinv","coefficient","exponent1","exponent2","_move","for","modrn","_toArrayLikeLE","_toArrayLikeBE","isNegNum","createHash","verify","algorithms","Sign","algorithm","Writable","_hashType","hash","_hash","_tag","_signType","Verify","createSign","createVerify","digest","createHmac","parseKeys","curves","getKey","algo","hlen","hbits","bits2int","bits2octets","obits","makeKey","makeR","hashType","signType","curve","curveId","keyFromPrivate","privateKey","toDER","ecSign","priv_key","dsaSign","checkValue","pub","pubkey","subjectPrivateKey","ecVerify","pub_key","unpacked","montp","dsaVerify","padNum","Zstream","zlib_deflate","zlib_inflate","DEFLATE","INFLATE","GZIP","GUNZIP","DEFLATERAW","INFLATERAW","UNZIP","Zlib","init_done","level","memLevel","strategy","windowBits","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","strm","inflateEnd","in_off","in_len","out_off","out_len","writeSync","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","avail_in","next_in","avail_out","next_out","_process","_checkError","_afterSync","nextTick","_after","next_expected_header_byte","inflate","Z_NEED_DICT","inflateSetDictionary","Z_OK","Z_DATA_ERROR","Z_STREAM_END","Z_BUF_ERROR","_error","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","_setDictionary","deflateInit2","Z_DEFLATED","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","binding","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","bkey","Z_ERRNO","Z_STREAM_ERROR","Z_MEM_ERROR","Z_VERSION_ERROR","ckeys","ckey","zlibBuffer","nread","flow","once","onEnd","removeListener","zlibBufferSync","flushFlag","_finishFlushFlag","_processChunk","Deflate","Inflate","Gzip","Gunzip","DeflateRaw","InflateRaw","Unzip","isValidFlushFlag","_opts","_chunkSize","finishFlush","_flushFlag","_handle","_hadError","_close","emit","_buffer","_level","_strategy","emitCloseNT","createDeflate","createInflate","createDeflateRaw","createInflateRaw","createGzip","createGunzip","createUnzip","deflateSync","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","_flush","_writableState","ended","ending","needDrain","availInBefore","availOutBefore","inOff","req","availInAfter","availOutAfter","have","newReq","ieee754","customInspectSymbol","SlowBuffer","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","encodingOrOffset","isEncoding","fromString","isView","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","checked","fromObject","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","toLocaleString","thisStart","thisEnd","thisCopy","targetCopy","hexSliceLookupTable","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","readUintLE","readUIntLE","readUintBE","readUIntBE","readUint8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt16LE","readInt32LE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUint8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt32LE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","super","addNumericalSeparator","ERR_OUT_OF_RANGE","checkBounds","ERR_BUFFER_OUT_OF_BOUNDS","received","isInteger","INVALID_BASE64_RE","leadSurrogate","base64clean","alphabet","i16","BufferBigIntNotDefined","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","StringDecoder","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","fin","classNames","argType","inner","circular","allParents","allChildren","useBuffer","_clone","__isArray","__isRegExp","__getRegExpFlags","__isDate","__objToStr","ignoreCase","clonePrototype","colorNames","swizzle","reverseNames","clamp","hexDouble","model","hwb","hexAlpha","i2","rgba","hsla","hwba","keyword","$Object","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","cof","TAG","ARG","tryGet","callee","core","__e","aFunction","that","hide","$export","own","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","virtual","__g","dP","createDesc","documentElement","setToStringTag","NAME","LIBRARY","redefine","Iterators","$iterCreate","ITERATOR","BUGGY","KEYS","VALUES","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","Properties","IE8_DOM_DEFINE","Attributes","getKeys","toObject","ObjectProto","$keys","bitmap","stat","uid","SHARED","copyright","toInteger","defined","TO_STRING","IObject","USE_SYMBOL","classof","iterFn","addToUnscopables","iterated","Arguments","$at","TO_STRING_TAG","DOMIterables","Collection","elliptic","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","formatReturnValue","p256","secp256r1","secp192r1","p384","p521","generateKeys","genKeyPair","getPublicKey","computeSecret","inenc","keyFromPublic","getPublic","getPrivate","getX","getPrivateKey","setPublicKey","_importPublic","setPrivateKey","_priv","_importPrivate","MD5","RIPEMD160","sha","Hash","alg","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","__self__","DOMException","support","viewClasses","normalizeName","normalizeValue","iteratorFor","Headers","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","readAsText","chars","readArrayBufferAsText","formData","json","oldValue","thisArg","Request","upcased","credentials","signal","referrer","decodeURIComponent","Response","bodyInit","statusText","redirectStatuses","redirect","location","request","aborted","abortXhr","rawHeaders","getAllResponseHeaders","responseURL","ontimeout","onabort","withCredentials","setRequestHeader","onreadystatechange","readyState","removeEventListener","polyfill","ponyfill","rng","pseudoRandomBytes","prng","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","randomFill","randomFillSync","createCredentials","CryptoJS","BlockCipher","C_algo","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","extend","_doReset","_keyPriorReset","sigBytes","invKsRow","_doCryptBlock","_createHelper","C_lib","WordArray","BufferedBlockAlgorithm","C_enc","Base64","Utf8","EvpKDF","cfg","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","dataUpdate","_doFinalize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","ciphertext","C_mode","BlockCipherMode","Encryptor","Decryptor","_iv","xorBlock","_prevBlock","processBlock","thisBlock","Pkcs7","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","CipherParams","modeCreator","_minBufferSize","__creator","_doProcessBlock","finalProcessedBlocks","_data","cipherParams","mixIn","formatter","OpenSSLFormatter","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","_parse","OpenSSLKdf","kdf","execute","compute","derivedParams","cryptoSecureRandomInt","subtype","overrides","$super","properties","propertyName","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","nBytes","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","escape","utf8Str","unescape","encodeURIComponent","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","messageUpdate","hasher","_createHmacHelper","HMAC","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","_map","base64Chars","triplet","paddingChar","_reverseMap","paddingIndex","swapEndian","Utf16","Utf16BE","utf16Chars","utf16Str","utf16StrLength","Utf16LE","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","superInit","Uint8ClampedArray","typedArrayByteLength","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","generateKeystreamAndEncrypt","keystream","CTRGladman","incWord","incCounter","_counter","_keystream","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SHA1","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","C_","RabbitLegacy","_X","IV","IV_0","IV_1","i0","i1","i3","Rabbit","RC4","keySigBytes","_S","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","drop","_zl","_zr","_sl","_sr","_hl","_hr","f1","f2","f3","f4","f5","rotl","HmacRIPEMD160","HmacSHA1","SHA256","SHA224","HmacSHA224","isPrime","sqrtN","getFractionalBits","nPrime","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","X64Word","x64","Word","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","C_x64","X64WordArray","SHA512","SHA384","HmacSHA384","X64Word_create","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","Wil","Wih","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","t1h","t2l","toX32","HmacSHA512","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","key3","_des1","_des2","_des3","X32WordArray","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","cssWithMappingToString","modules","mediaQuery","dedupe","alreadyImportedModules","cssMapping","btoa","sourceMapping","sourceURLs","sourceRoot","needQuotes","objectKeys","isArguments","isRegex","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","bIsBuffer","hasSymbols","toStr","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicate","predicates","utils","CBCState","_cbcInit","_cbcState","inp","outOff","superProto","bufferOff","_updateDecrypt","_updateEncrypt","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_pad","_unpad","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","_encrypt","lStart","rStart","keyL","keyR","expand","rip","EDEState","k1","k2","k3","_edeState","inL","inR","outL","outR","pc2table","sTable","permuteTable","padSplit","_interopDefault","_getIterator","_Symbol$iterator","StateMachine","dfa","startRun","lastAccepting","lastState","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","generatePrime","DH","genc","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","_pub","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","rem","simpleSieve","fermatTest","checkPrime","__gen","_gen","secret","getPrime","front","getGenerator","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","eddsa","getNAF","getJSF","BaseCurve","conf","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","precomputed","validate","_fixedNafMul","doubles","_getDoubles","naf","nafW","repr","jpoint","mixedAdd","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","jsf","decodePoint","pointFromX","encodeCompressed","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","EdwardsCurve","twisted","mOneA","oneC","zOne","_mulA","_mulC","rhs","lhs","pointFromY","isInfinity","normalize","fromJSON","_extDbl","_projDbl","_extAdd","_projAdd","mulAdd","jmulAdd","eqXToP","edwards","MontCurve","i4","a24","diffAdd","jumlAdd","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","isRed","inf","JPoint","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","len1","_endoSplit","q1","q2","_endoWnafMulAdd","npoints","ncoeffs","pre","endoMul","obj2point","ys1","dyinv","_precompute","zinv","zinv2","pz2","z2","h2","h3","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","yyyy","yyyy8","c8","gamma","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","yyu4","kbase","z3","pz3","PresetCurve","defineCurve","sha256","sha384","sha512","HmacDRBG","KeyPair","keyPair","fromPrivate","fromPublic","drbg","pers","persEnc","entropy","hmacStrength","entropyEnc","nonce","ns2","_truncateToN","truncOnly","ns1","kpX","recoveryParam","canonical","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","privEnc","pubEnc","derive","_importDER","Position","octetLen","rmPadding","constructLength","octets","slen","backHalf","parseBytes","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","messagePrefix","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","intFromLE","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","cachedProperty","_secret","_pubBytes","privBytes","getSecret","_R","_Rencoded","_Sencoded","Sencoded","toBytes","minAssert","minUtils","zero2","m8","d1","d2","m14","m24","computer","QueryHandler","each","MediaQuery","isUnconditional","handlers","mql","matchMedia","currentTarget","assess","addListener","constuctor","addHandler","handler","matches","removeHandler","Util","isFunction","MediaQueryDispatch","queries","browserIsIncapable","shouldDegrade","unregister","deferSetup","initialised","unmatch","collection","firstSource","nextSource","keysArray","nextKey","ReflectOwnKeys","ReflectApply","receiver","NumberIsNaN","EventEmitter","emitter","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","events","existing","newListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","listeners","prependListener","prependOnceListener","originalListener","spliceOne","removeAllListeners","rawListeners","eventNames","keyStart","ivStart","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","decodeURI","encodeURI","EvalError","FinalizationRegistry","URIError","WeakRef","WeakSet","doEval","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","quote","subString","getBaseIntrinsic","alias","intrinsicName","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","symObj","syms","HashBase","_block","_blockSize","_blockOffset","_finalized","throwIfNotStringOrBuffer","_digest","common","ripemd","sha1","sha224","ripemd160","BlockHash","pending","pendingTotal","outSize","padLength","_delta8","_delta32","join32","outer","rotl32","sum32","sum32_3","sum32_4","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","seed","_hmac","kmac","reseed","addEnc","temp","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","toRgb","hue","saturation","luminosity","cycle","lightness","chroma","huePrime","secondComponent","lightnessAdjustment","SETTING_DEFAULT_ASYNC","SETTING_DEFAULT_DEBUG","SETTING_DEFAULT_HTML","SETTING_DEFAULT_HYPH_CHAR","SETTING_DEFAULT_MIN_WORD_LENGTH","SETTING_NAME_ASYNC","SETTING_NAME_DEBUG","SETTING_NAME_HTML","SETTING_NAME_HYPH_CHAR","SETTING_NAME_MIN_WORD_LENGTH","_global","cloneObj","keyOrDefault","exceptionsFromDefinition","patternsDefinition","hyphenChar","exceptions","createHyphenator","asyncMode","caches","debug","preprocessPattern","minWordLength","skipHTML","localDebug","localHyphenChar","localMinWordLength","createTextChunkReader","readNextTextChunk","nextTextChunk","shouldHyphenate","chunkReader","nextCharIndex","nextChar","charIsLetter","charIsAngleOpen","charIsAngleClose","charIsHyphen","STATE_READ_TAG","STATE_RETURN_UNTOUCHED","SHOULD_SKIP","STATE_READ_WORD","STATE_RETURN_WORD","SHOULD_HYPHENATE","isSpacelike","shouldNextHyphenate","patternData","levels","loweredText","toLocaleLowerCase","patternIndex","fromChar","endPattern","patternEntityIndex","stickToLeft","stickToRight","hyphenatedText","patternChar","patternCharIndex","states","charIsDot","charIsNumber","prevCharIsNumber","isAsync","allTime","resolveNewText","newText","textChunk","loopStart","_dbcs","DBCSCodec","UNASSIGNED","SEQ_START","NODE_START","UNASSIGNED_NODE","codecOptions","encodingName","mappingTable","decodeTables","decodeTableSeq","_addDecodeChunk","defaultCharUnicode","encodeTable","encodeTableSeq","skipEncodeChars","encodeSkipVals","_fillEncodeTable","encodeAdd","uChar","_setEncodeChar","defCharSB","defaultCharSingleByte","gb18030","thirdByteNodeIdx","thirdByteNode","fourthByteNodeIdx","fourthByteNode","secondByteNodeIdx","secondByteNode","DBCSEncoder","codec","seqObj","DBCSDecoder","nodeIdx","prevBuf","findIdx","_getDecodeTrieNode","addr","curAddr","writeTable","codeTrail","seq","_getEncodeBucket","uCode","dbcsCode","bucket","_setEncodeSequence","oldVal","mbCode","resCode","uChars","gbChars","prevBufOffset","seqStart","curSeq","uCodeLead","InternalCodec","bomAware","InternalEncoderBase64","InternalEncoderCesu8","InternalDecoderCesu8","utf8","cesu8","unicode11utf8","ucs2","utf16le","_internal","InternalEncoder","InternalDecoder","prevStr","contBytes","accBytes","completeQuads","bufIdx","SBCSCodec","asciiString","decodeBuf","encodeBuf","SBCSEncoder","SBCSDecoder","_sbcs","idx1","idx2","Utf16BECodec","Utf16BEEncoder","Utf16BEDecoder","overflowByte","Utf16Codec","Utf16Encoder","addBOM","getEncoder","Utf16Decoder","initialBytes","initialBytesLen","detectEncoding","defaultEncoding","asciiCharsLE","asciiCharsBE","utf16be","utf16","getDecoder","trail","Utf7Codec","utf7","unicode11utf7","Utf7Encoder","Utf7Decoder","nonDirectChars","inBase64","base64Accum","base64Regex","plusChar","minusChar","andChar","Utf7IMAPCodec","Utf7IMAPEncoder","base64AccumIdx","Utf7IMAPDecoder","lastI","b64str","canBeDecoded","utf7imap","base64IMAPChars","PrependBOMWrapper","StripBOMWrapper","PrependBOM","StripBOM","stripBOM","bomHandling","encodings","skipDecodeWarning","getCodec","toEncoding","fromEncoding","_codecDataCache","_canonicalizeEncoding","codecDef","nodeVer","nodeVerArr","isLE","mLen","eLen","eMax","eBias","nBits","argIndex","framesToPop","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","getDay","tryDateObject","fnToStr","isFnRegex","generatorFunc","getGeneratorFunc","getPolyfill","shim","$exec","isRegexMarker","badStringifier","throwRegexMarker","gOPD","availableTypedArrays","typedArrays","$slice","toStrTags","anyTrue","getter","tryTypedArrays","protocolAndDomainRE","everythingAfterProtocol","localhostDomainRE","nonLocalhostDomainRE","camel2hyphen","obj2mq","isDimension","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","nativeMax","nativeMin","isObjectLike","isSymbol","isBinary","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","cancel","LZString","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","compressToBase64","_compress","decompressFromBase64","_decompress","compressToUTF16","decompressFromUTF16","compressed","compressToUint8Array","uncompressed","TotalLen","current_value","decompressFromUint8Array","decompress","compressToEncodedURIComponent","decompressFromEncodedURIComponent","bitsPerChar","getCharFromInt","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","resetValue","getNextValue","resb","maxpower","enlargeIn","dictSize","numBits","ARRAY16","fnF","fnG","fnH","fnI","Parser","And","Query","Operator","NUMBERS","LETTERS","WHITESPACE","COLON","COMMA","AND","AT","tokens","token","walk","parser","tokenizer","MaxHeight","MinHeight","MaxWidth","MinWidth","Orientation","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","rn1","getDivisor","bezierX","bezierY","quadX","quadY","arcToCurve","xAxisRotation","largeArcFlag","sweepFlag","quadratic","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","TYPED_OK","_has","shrinkBuf","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","fnUntyped","setTyped","Buf8","Buf16","Buf32","adler","Z_TREES","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_BINARY","Z_TEXT","Z_UNKNOWN","crcTable","makeTable","crc","configuration_table","trees","adler32","crc32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","rank","flush_pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","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","match_start","fill_window","more","_w_size","window_size","hash_size","total_in","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","max_block_size","max_start","deflateInit","deflateSetHeader","old_flush","beg","hcrc","extra","comment","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","_in","_out","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_fast","inflate_table","TYPE","BAD","zswap32","InflateState","havedict","check","wbits","ncode","nlen","ndist","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","inflateGetHeader","inflateInfo","MAXBITS","lbase","lext","dbase","dext","lens_index","table_index","incr","huff","base_index","offs","extra_index","LITERALS","L_CODES","D_CODES","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","put_short","send_bits","send_code","bi_reverse","gen_codes","next_code","init_block","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","certificate","RSAPrivateKey","int","RSAPublicKey","PublicKey","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","PrivateKey","EncryptedPrivateKeyInfo","EncryptedPrivateKey","DSAPrivateKey","DSAparam","ECPrivateKey","ECParameters","namedCurve","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","rdnSequence","Validity","Extension","bool","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherText","cipherKey","match2","aesid","fixProc","compat","passphrase","ndata","stripped","tbsCertificate","subjectPublicKeyInfo","subjectPublicKey","kde","kdeparams","iters","keylen","numbers","parseValues","ZERO_BUF","checkParameters","sync","subtle","toBrowser","checks","getNextTick","queueMicrotask","setImmediate","browserPbkdf2","importKey","deriveBits","resolvePromise","browser","prom","checkNative","resp","MAX_ALLOC","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","noop","cwd","chdir","umask","validator","componentName","propFullName","componentNameSafe","propFullNameSafe","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","getShim","isRequired","ReactPropTypes","symbol","arrayOf","elementType","instanceOf","objectOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Cache","maxSize","_maxSize","_values","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","normalizePath","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","safe","isBracket","i2ops","mgf","withPublic","zBuffer","iHash","maskedSeed","maskedDb","dif","oaep","pkcs1","publicKey","paddedMsg","hLen2","dblen","nonZero","Queue","concurrency","autostart","results","session","running","jobs","timers","begin","clearTimers","timeoutId","callOnErrorOrEnd","onend","methodResult","job","didTimeout","resultIndex","_isPlaceholder","_curry1","_curry2","set1","set2","_curryN","combined","argsIdx","combinedIdx","origFn","_curry3","_idx","_list","_isTransformer","_dispatchable","methodNames","_isArray","transducer","_reduced","XAll","_xfBase","functor","_isString","nodeType","XWrap","_xwrap","thisObj","_iterableReduce","_methodReduce","methodName","symIterator","_arrayReduce","XMap","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","checkArgsLength","paths","preds","XAny","applyF","applyX","_aperture","XAperture","full","getCopy","vals","mapValues","nextObj","_isInteger","_isFunction","lifted","_makeFlat","recursive","flatt","jlen","ilen","rxf","preservingReduced","monad","_cloneRegExp","sticky","refFrom","refTo","deep","copiedValue","pred","_pipe","_checkForMethod","methodname","toIndex","composeK","_pipeP","pipeP","composeP","_identity","headList","tailList","_arrayFromIterator","_includesWith","_uniqContentEquals","aIterator","bIterator","stackA","stackB","_equals","aItem","typeA","_functionName","extendedStackA","extendedStackB","_indexOf","_includes","_quote","toISOString","getUTCMilliseconds","toFixed","_complement","_isObject","XFilter","filterable","seen","recur","mapPairs","$8","$9","XReduceBy","valueFn","valueAcc","keyFn","inputs","elt","hasOrAdd","shouldAdd","prevSize","_nativeSet","bIdx","_Set","firstLen","secondLen","toFilterOut","XDrop","XTake","XDropLast","dropLastWhile","XDropLastWhile","retained","retain","XDropRepeatsWith","lastValue","seenFirstValue","sameAsLast","XDropWhile","suffix","obj1","obj2","transformations","XFind","XFindIndex","XFindLast","XFindLastIndex","lastIdx","keyList","nextidx","onTrue","onFalse","elts","appliedItem","list1","list2","filteredList","separator","_stepCatArray","_stepCatString","_stepCatObject","_stepCat","Ctor","toFunctorFn","focus","tuple","mFn","lObj","rObj","lVal","rVal","positiveFrom","positiveTo","_of","called","_assertPromise","Identity","fst","snd","_createPartialApplicator","propPath","pipeK","transformers","traversable","comparator","XTakeWhile","XTap","outerlist","innerlist","beginRx","endRx","tryer","catcher","currentDepth","whenFalseFn","Const","whenTrueFn","testObj","fnArgs","MAX_BYTES","MAX_UINT32","generated","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","removeAttribute","setAttribute","setAttributeNS","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","prepareStackTrace","_render","$$typeof","_payload","nodeName","_valueTracker","stopTracking","activeElement","defaultChecked","_wrapperState","initialChecked","initialValue","controlled","ownerDocument","Children","selected","defaultSelected","disabled","dangerouslySetInnerHTML","textContent","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","tabSize","zIndex","zoom","floodOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeWidth","menuitem","area","keygen","meta","wbr","srcElement","correspondingUseElement","stateNode","onError","alternate","memoizedState","dehydrated","sibling","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","pointerId","lanePriority","hydrate","containerInfo","animationend","animationiteration","animationstart","transitionend","animation","transition","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","keyCode","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","isPersistent","eventPhase","bubbles","cancelable","timeStamp","isTrusted","screenX","screenY","clientX","clientY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","dataTransfer","animationName","elapsedTime","pseudoElement","clipboardData","Esc","Spacebar","Left","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","112","113","114","115","116","117","118","119","120","121","122","123","224","Alt","Control","Meta","Shift","locale","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","targetTouches","changedTouches","wheelDeltaX","wheelDeltaY","deltaZ","deltaMode","documentMode","datetime","email","month","tel","week","oninput","detachEvent","attachEvent","nextSibling","compareDocumentPosition","HTMLIFrameElement","contentEditable","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","capture","passive","parentWindow","autoFocus","__html","previousSibling","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","getChildContext","__reactInternalMemoizedMergedChildContext","ReactCurrentBatchConfig","_currentValue","childLanes","dependencies","firstContext","lanes","observedBits","responders","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","eventTime","payload","refs","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","shouldComponentUpdate","isPureReactComponent","updater","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","lastEffect","nextEffect","firstEffect","tagName","memoizedProps","revealOrder","pendingProps","_workInProgressVersionPrimary","ReactCurrentDispatcher","baseQueue","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","_getVersion","_source","mutableReadLanes","useState","getSnapshot","subscribe","useEffect","setSnapshot","deps","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","ReactCurrentOwner","baseLanes","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","pendingContext","retryLane","fallback","unstable_avoidThisFallback","unstable_expectedLoadTime","isBackwards","rendering","renderingStartTime","tailMode","wasMultiple","multiple","onClick","onclick","createElementNS","createTextNode","componentDidCatch","componentStack","__reactInternalSnapshotBeforeUpdate","onCommitFiberUnmount","componentWillUnmount","_reactRootContainer","callbackNode","expirationTimes","callbackPriority","finishedWork","finishedLanes","timeoutHandle","pingCache","focusedElem","selectionRange","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","isReactComponent","pendingChildren","mutableSourceEagerHydrationData","hydrationOptions","mutableSources","_internalRoot","hasAttribute","_calculateChangedBits","unstable_observedBits","unmount","querySelectorAll","Events","findFiberByHostInstance","bundleType","rendererPackageName","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","$$$reconciler","$$$hostConfig","suspense","_status","_result","effectTag","getPublicInstance","getRootHostContext","getChildHostContext","prepareForCommit","resetAfterCommit","appendInitialChild","finalizeInitialChildren","prepareUpdate","shouldSetTextContent","shouldDeprioritizeSubtree","createTextInstance","noTimeout","isPrimaryRenderer","supportsMutation","supportsPersistence","supportsHydration","appendChildToContainer","commitTextUpdate","commitMount","commitUpdate","insertInContainerBefore","removeChildFromContainer","resetTextContent","hideInstance","hideTextInstance","unhideInstance","unhideTextInstance","cloneInstance","createContainerChildSet","appendChildToContainerChildSet","finalizeContainerChildren","replaceContainerChildren","cloneHiddenInstance","cloneHiddenTextInstance","canHydrateInstance","canHydrateTextInstance","isSuspenseInstancePending","isSuspenseInstanceFallback","getNextHydratableSibling","getFirstHydratableChild","hydrateInstance","hydrateTextInstance","getNextHydratableInstanceAfterSuspenseInstance","commitHydratedContainer","commitHydratedSuspenseInstance","_debugOwner","_debugSource","_currentValue2","childExpirationTime","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstCapturedEffect","lastCapturedEffect","suspenseConfig","_reactInternalFiber","responder","baseUpdate","useResponder","retryTime","tailExpiration","timeoutMs","lastExpiredTime","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","finishedExpirationTime","lastSuspendedTime","busyMinDurationMs","busyDelayMs","firstSuspendedTime","_ctor","createContainer","updateContainer","batchedEventUpdates","batchedUpdates","unbatchedUpdates","deferredUpdates","syncUpdates","discreteUpdates","flushDiscreteUpdates","flushControlled","flushPassiveEffects","IsThisRendererActing","getPublicRootInstance","attemptSynchronousHydration","attemptUserBlockingHydration","attemptContinuousHydration","attemptHydrationAtCurrentPriority","findHostInstance","findHostInstanceWithWarning","findHostInstanceWithNoPortals","shouldSuspend","injectIntoDevTools","$$$renderer","sortIndex","unstable_Profiling","NextArrow","PrevArrow","_react","_classnames","_innerSliderUtils","enumerableOnly","getOwnPropertyDescriptors","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","_React$PureComponent","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","className","customProps","prevArrow","cloneElement","PureComponent","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","accessibility","adaptiveHeight","afterChange","appendDots","dots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rows","slide","slidesPerRow","slidesToScroll","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","waitForAnimate","Dots","_this$props","onMouseEnter","onMouseOver","onMouseLeave","dotCount","mouseEvents","_rightBound","rightBound","_leftBound","leftBound","dotOptions","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","sourceSymbolKeys","_React$Component","querySelector","slidesToLoad","getOnDemandLazySlides","setState","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","progressiveLazyLoad","onWindowResized","callbackTimers","observe","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","timer","autoplayTimer","disconnect","prevProps","checkImagesLoad","setTrackStyle","didPropsChange","changeSlide","debouncedResize","resizeWindow","isTrackMounted","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_trackStyle","currentWidth","childrenCount","trackLeft","images","imagesCount","loadedCount","prevClickHandler","dontAnimate","asNavFor","_slideHandler","slideHandler","asNavForIndex","innerSlider","firstBatch","clickable","keyHandler","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","playType","play","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","canUseDOM","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpt","bQuery","media","newProps","newChildren","newSlide","tabIndex","innerSliderRefHandler","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","lazyStartIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","handleRef","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getTrackAnimateCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","getSwipeDirection","lazySlidesOnRight","lazySlidesOnLeft","getRequiredLazySlides","safePreventDefault","upperBound","onDemandSlides","requiredSlides","offsetWidth","offsetHeight","xDist","yDist","swipeAngle","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","indexes","navigables","prevNavigable","swipedSlide","slickList","offsetTop","offsetLeft","dataset","trackHeight","trackChildren","WebkitTransition","WebkitTransform","msTransform","slidesToOffset","targetSlideIndex","trackElem","childNodes","require","webpackPolyfill","__data__","isTypedArray","keysIn","defaultValues","getValues","defaultTouched","getTouched","setTouched","defaultErrors","getErrors","setErrors","validationSchema","submitFocusError","focusMapper","abortEarly","yupErrors","cast","validateAt","reach","validateSyncAt","onBlur","onChange","closest","getNamedItem","createSubmitHandler","getError","isChecked","isTouched","resetErrors","setDirty","setSubmitting","validateForm","validateField","Provider","touched","isSubmitting","isDirty","FormProvider","forceUpdate","__self","__source","IsSomeRendererActing","only","_threadCount","Consumer","createFactory","createRef","forwardRef","isValidElement","Duplex","Readable","allowHalfOpen","readable","onEndNT","highWaterMark","_readableState","destroyed","PassThrough","ReadableState","EElistenerCount","Stream","OurUint8Array","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","_destroy","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","computeNewHighWaterMark","maybeReadMore_","updateReadableListening","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","finished","nOrig","doRead","pipeOpts","endFn","stdout","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","ondata","cleanedUp","pipeOnDrain","dests","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writecb","writechunk","needTransform","writeencoding","prefinish","err2","CorkedRequest","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","noDecode","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_Object$create","hasStrings","_getString","_getBuffer","emitErrorAndCloseNT","emitErrorNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","setHeader","isRequest","destroyer","closed","popCallback","streams","destroys","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","PromiseImpl","accidentalStrictMode","dotAll","flagsBound","TypeErr","MapShim","getIndex","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","_ref1","EncodeStream","DecodeStream","LazyArray","Bitfield","Enum","Optional","Reserved","Struct","VersionedStruct","ArrayT","NumberT","lengthType","BooleanT","BufferT","writeBuffer","TYPES","UInt8","UInt16","UInt24","UInt32","Int8","Int16","Int24","Int32","Float","Double","readUInt24LE","readInt24BE","readInt24LE","__hasProp","bufferSize","__super__","bufferOffset","ensure","writeString","writeUInt24BE","writeUInt24LE","writeInt24BE","writeInt24LE","LazyArrayT","_results","Fixed","uint16be","uint16","uint16le","uint24be","uint24","uint24le","uint32be","uint32","uint32le","int8","int16be","int16","int16le","int24be","int24","int24le","int32be","int32","int32le","floatbe","float","floatle","doublebe","double","doublele","fracBits","fixed16be","fixed16","fixed16le","fixed32be","fixed32","fixed32le","Pointer","VoidPointer","_base","_base1","_base2","_base3","nullValue","relativeToGetter","decodeValue","StringT","_setup","_parseFields","versionGetter","versionSetter","fn1","fn2","fn3","fn4","fn5","copyProps","SafeBuffer","safer","Safer","kStringMaxLength","MAX_LENGTH","MAX_STRING_LENGTH","finalSize","_finalSize","assigned","remainder","lowBits","highBits","Algorithm","Sha","rotl30","Sha1","rotl5","Sha256","Sha224","sigma1","Sha384","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","writeInt64BE","Sha512","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","t2h","objA","objB","compareContext","keysB","bHasOwnProperty","valueA","valueB","isArrayish","areas","apis","inherit","api","revive","storeAPI","setItem","removeItem","Store","namespace","overwrite","getAll","transact","setAll","testKey","_area","storage","_ns","singleArea","isFake","fillList","alt","fillObj","clearAll","storageAPI","localStorage","sessionStorage","amd","conflict","EE","_isStdio","didOnEnd","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","utf8CheckByte","utf8CheckExtraBytes","utf8CheckIncomplete","isOldIE","atob","getTarget","styleTarget","contentDocument","stylesInDom","getIndexByIdentifier","modulesToDom","idCountMap","css","sourceMap","references","addStyle","insertStyleElement","textStore","replaceText","applyToSingletonTag","styleSheet","cssText","cssNode","applyToTag","singleton","singletonCounter","styleIndex","removeStyleElement","lastIdentifiers","newList","newLastIdentifiers","TAU","mapToEllipse","cosphi","sinphi","centerx","centery","approxUnitArc","ang1","ang2","vectorAngle","dot","_ref2$xAxisRotation","_ref2$largeArcFlag","_ref2$sweepFlag","_getArcCenter","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","getArcCenter","_getArcCenter2","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","makeArrayFrom","PENDING","RESOLVED","REJECTED","SynchronousPromise","_continuations","_parent","_paused","_continueWith","_failWith","looksLikeAPromise","passThrough","createAggregateErrorFrom","nextFn","catchFn","unresolved","_setParent","_isRejected","catchResult","_chainPromiseData","_runResolutions","_isResolved","_runRejections","finally","runFinally","callbackResult","firstPaused","_findFirstPaused","_findAncestry","firstPending","_findFirstPending","_setResolved","_findFirstAncestor","_isPending","matching","firstRejected","_setRejected","_takeContinuations","continuations","cont","_handleUserFunctionResult","_handleWhenResolvedDataIsPromise","_handleResolutionError","continuation","e2","nextSynchronousPromise","promiseData","newData","newError","newResult","allData","numResolved","thisResult","doReject","allErrors","numRejected","allSettled","numSettled","doSettled","RealPromise","installGlobally","__awaiter","__patched","originalAwaiter","patchAwaiterIfRequired","uninstallGlobally","Tree","Data","sourceIndex","bitcount","destLen","sltree","sdtree","length_bits","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","tinf_build_tree","tinf_getbit","tinf_read_bits","tinf_decode_symbol","tinf_decode_trees","hlit","hdist","hclen","clen","tinf_inflate_block_data","tinf_inflate_uncompressed_block","tinf_build_fixed_trees","bfinal","toposort","edges","cursor","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","UnicodeTrie","highStart","errorValue","getUint32","SHIFT_1","INDEX_2_BLOCK_LENGTH","DATA_BLOCK_LENGTH","LSCP_INDEX_2_OFFSET","UTF8_2B_INDEX_2_OFFSET","isArgumentsObject","whichTypedArray","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isSharedArrayBufferToString","isSharedArrayBuffer","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","descriptors","formatRegExp","objects","isNull","noDeprecation","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","stylize","stylizeNoColor","isBoolean","_extend","isUndefined","stylizeWithColor","formatValue","styleType","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","numLinesEst","reduceToSingleString","pid","isNullOrUndefined","isPrimitive","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","warning","foundName","nativeObjectToString","symToStringTag","unmasked","reIsDeepProp","reIsPlainProp","maskSrcKey","funcToString","reIsHostCtor","reIsNative","ListCache","MapCache","memoize","iteratee","symbolProto","symbolToString","baseToString","reIsUint","hasFunc","LARGE_ARRAY_SIZE","Stack","objValue","customizer","isNew","newValue","freeExports","freeModule","typedArrayTags","freeProcess","nodeIsTypedArray","isArr","isArg","isBuff","skipIndexes","isProto","isDeep","resIndex","nativeGetSymbols","keysFunc","symbolsFunc","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","dataView","reFlags","regexp","symbolValueOf","objectCreate","nodeIsMap","nodeIsSet","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","stacked","subValue","reHasUnicode","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","errorToString","regExpToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","printNumber","printValue","mixed","notOneOf","notType","originalValue","isCast","uuid","lowercase","uppercase","lessThan","moreThan","integer","noUnknown","boolean","__isYupSchema__","Condition","otherwise","schema","branch","isSchema","strReg","ValidationError","propagateErrors","endEarly","collectErrors","validations","unwrapError","fulfilled","settled","nestedErrors","runValidations","scopeToValue","prependDeep","sourceVal","targetVal","fromRight","SetCache","equalFunc","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsEqual","matchData","noCustomizer","srcValue","prefixes","Reference","isContext","isSibling","describe","isRef","__isYupRef","createErrorFactory","_ref2$path","_ref2$message","_ref2$type","oldParams","newParams","resolveParams","createValidation","rest","createError","testFn","runTest","validOrError","OPTIONS","getIn","lastPart","lastPartDebug","_part","innerType","_type","parentPath","RefSet","newItems","removeItems","SchemaType","_deps","_conditions","_options","_exclusive","_whitelist","_blacklist","tests","transforms","withMutation","typeError","_defaultDefault","_mutate","_label","_meta","_nullable","_typeCheck","resolvedSchema","_cast","formattedValue","formattedResult","rawValue","_validate","_this4","isStrict","_option","validationParams","initialTests","_typeError","_whitelistError","_blacklistError","validateSync","isValidSync","getDefault","_isPresent","notRequired","nullable","isNullable","isExclusive","enums","valids","invalids","_getIn","_arr2","_arr3","BooleanSchema","rEmail","rUrl","rUUID","isTrimmed","isAbsent","StringSchema","excludeEmptyString","NumberSchema","less","truncate","isoReg","invalidDate","DateSchema","timestamp","numericKeys","minutesOffset","_taggedTemplateLiteralLoose","accumulator","initAccum","reLatin","reComboMark","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsEmoji","reUnicodeWord","guard","reApos","strSymbols","sortFields","excludes","addNode","depPath","sortByKeyOrder","makePath","_templateObject3","_templateObject2","_templateObject","ObjectSchema","_nodes","dft","_excludedEdges","intermediateValue","innerOptions","__validating","isChanged","exists","fieldValue","_from","fromGetter","noAllow","unknownKeys","known","unknown","stripUnknown","allow","transformKeys","camelCase","snakeCase","constantCase","ArraySchema","_subType","castElement","rejector","mapFn","setLocale","schemaType","__webpack_module_cache__","leafPrototypes","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","definition","globalThis","nmd","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","reactPropsRegex","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","registerName","__webpack_nonce__","sheet","styleSheets","ownerNode","cssRules","isServer","useCSSOMInjection","getAttribute","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","plugins","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","theme","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","withComponent","_foldedDefaultProps","withConfig","createStyles","removeStyles","renderStyles","_emitSheetCSS","getStyleTags","sealed","getStyleElement","seal","collectStyles","interleaveWithNodeStream","PolishedError","colorToInt","convertToInt","hslToRgb","lightnessModification","namedColorMap","rebeccapurple","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","normalizedColorName","nameToHex","_alpha","rgbMatched","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","parseToHsl","rgbToHsl","reduceHexValue","numberToHex","colorToHex","convertToHex","hslToHex","firstValue","secondValue","thirdValue","fourthValue","rgbValue","toColorString","curried","curry","lowerBoundary","upperBoundary","darken","amount","hslColor","curriedDarken","BenefitTable","React","showEmployee","setShowEmployee","StyledBenefitTable","BenefitHeader","BenefitSelector","BenefitContent","BenefitList","styled","secondary","SvgCloseIcon","xmlns","BUSINESS_DATA","svgSrc","speechSvg","tip","download","thumbsUpSvg","clockArrowSvg","clipboardSvg","BusinessCircles","rotateSatellites","setRotateSatellites","showInfo","setShowInfo","changeButton","OuterWrapper","InnerWrapper","InfoButton","classnames","OpenTip","SatelliteWrapper","rotation","SatelliteContent","SatelliteIcon","SatelliteTitle","gray800","PracticeCircles","activeCircle","setActiveCircle","practiceCircleData","Tooltips","ThreeCircles","CircleContainer","sage","blueberry","raspberry","gray100","primary","success","danger","gray200","gray300","gray400","gray500","gray600","gray700","gray900","aubergine","almond","dark","ItemDescription","risk","didYouKnow","RiskFactors","itemSelected","setItemSelected","RISK_DATA","icon","summary","StyledButton","CircleDiv","IconDiv","RiskInformation","RoleOfManagement","benefits","imgSrc","arrowsUp","smallText","userWinning","userOxygen","tissue","Flipper","DATA","imgUrl","MotivateEngage","ProgramPromotion","StyledGroup","StyledIcon","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appear","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","StagesOfChange","selection","setSelection","change","setChange","selectionChange","Pill","StyledStep","subtitle","StickyMessage","frameBorder","allowFullScreen","BestPractice","manOnStairs","EducationActivities","option","setOption","handleSetOption","Pyramid","Layer","Content","SettingFoundation","WorkEnvironment","workplaceIdeas","bikeRack","SvgNewFile","ActionPlan","setSelected","handleSelection","ButtonWrapper","StyledTitle","Information","clipboard","clockArrow","thumbsUp","speechBubbles","ConsultationQuestions","setCurrentSlide","handleSlideChange","totalSlides","card","collapsed","data-toggle","data-target","ContentWrapper","show","aria-labelledby","data-parent","StyledInner","StyledContent","Overlay","PrevButton","NextButton","StyledListItem","List","_leaveRenders","_enterRenders","StepsToAssess","StyledRow","StyledList","callHook","leaveRenders","changeState","enterRenders","SwitchTransition","appeared","oldChildren","_this$state","hasClass","classList","baseVal","replaceClassName","origClass","classToRemove","_addClass","removeClass","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","_this$appliedClasses$","SmartObjectives","objectiveId","WorkplaceAssessment","meetingImg","StyledSpan","useMounted","mounted","useWillUnmount","onUnmount","valueRef","useUpdatedRef","MAX_DELAY_MS","setChainedTimeout","timeoutAtMs","delayMs","useTimeout","safeFindDOMNode","componentOrElement","useUncontrolledProp","propValue","wasPropRef","_useState","stateValue","isProp","wasProp","nextProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","__suppressDeprecationWarning","useCallbackRef","toFnRef","refA","refB","mergeRefs","auto","basePlacements","viewport","popper","variationPlacements","placement","modifierPhases","getBasePlacement","getLayoutRect","clientRect","getWindow","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","rootNode","getRootNode","isSameNode","host","getNodeName","isTableElement","getDocumentElement","getParentNode","assignedSlot","getTrueOffsetParent","offsetParent","getOffsetParent","isFirefox","userAgent","perspective","contain","willChange","getContainingBlock","getMainAxisFromPlacement","within","mergePaddingObject","paddingObject","expandToHashMap","hashMap","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","dpr","devicePixelRatio","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","win","heightProp","widthProp","_Object$assign","commonStyles","getOppositePlacement","getOppositeVariationPlacement","getWindowScroll","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","visualViewport","updatedList","rectToClientRect","getClientRectFromMixedType","clippingParent","html","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","basePlacement","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","referenceElement","rects","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","scroll","modifiers","modifier","requires","requiresIfExists","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","orderModifiers","merged","mergeByName","enabled","_ref3$options","effect","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","referenceRect","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","_options$scroll","_options$resize","resize","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_preventedOffset","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","_options$element","initialPopperStyles","pointerEvents","disabledApplyStylesModifier","ariaDescribedByModifier","ids","_popper$getAttribute","_state$elements2","role","EMPTY_MODIFIERS","popperElement","_ref3$enabled","_ref3$placement","_ref3$strategy","_ref3$modifiers","popperInstanceRef","_popperInstanceRef$cu","_popperInstanceRef$cu2","_useSafeState","popperState","updateModifier","optionsSupported","onceSupported","eventName","wrappedHandler","__once","onceHandler","useEventCallback","getRefTarget","onRootClose","_ref$clickTrigger","clickTrigger","preventMouseRootCloseRef","onClose","handleMouseCapture","isLeftClickEvent","handleMouse","handleKeyUp","currentEvent","removeMouseCaptureListener","removeMouseListener","removeKeyupListener","mobileSafariHackListeners","resolveContainerRef","useWaitForDOMRef","onResolved","resolvedRef","setRef","earlyRef","nextRef","mergeOptionsWithPopperConfig","_modifiers$preventOve","_modifiers$preventOve2","_modifiers$offset","_modifiers$arrow","enableEvents","fixed","containerPadding","_ref$popperConfig","popperConfig","toModifierMap","eventListeners","outerRef","_props$containerPaddi","_props$popperConfig","_useCallbackRef","rootElement","attachRef","_useCallbackRef2","attachArrowRef","mergedRef","exited","setExited","_usePopper","mountOverlay","onHide","rootClose","rootCloseDisabled","rootCloseEvent","_PropTypes$func","ThemeContext","useBootstrapPrefix","defaultPrefix","getMargins","psuedoElement","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","getPropertyValue","isTransform","emulateTransitionEnd","duration","createEvent","initEvent","dispatchEvent","triggerEvent","transitionEnd","removeEmulate","transitionEndListener","_fadeStyles","fadeStyles","Fade","handleEnter","triggerBrowserReflow","innerProps","overlayRef","margins","popoverClass","dropdownMenuClass","overlay","outerProps","popperRef","_usePopperMarginModif","_margins$current","_getMargins","marginModifiers","actualTransition","overlayProps","aRef","__wrapped","wrapRefs","outOfBoundaries","RefHolder","handleMouseOverOut","relatedNative","related","OverlayTrigger","trigger","propsShow","_ref$defaultShow","defaultShow","onToggle","propsDelay","_ref$flip","triggerNodeRef","hoverStateRef","_useUncontrolledProp","setShow","normalizeDelay","onFocus","handleShow","handleHide","handleFocus","handleBlur","handleClick","handleMouseOver","handleMouseOut","triggers","triggerProps","onMouseOut","ModuleSection","fluid","sectionTitle","sectionNumber","sectionData","useModuleRefs","observerRef","$ref","ModuleStateContext","ModuleProvider","onSectionChange","threshholdRef","IntersectionObserver","intersectionRatio","largestId","largestValue","rootMargin","threshold","useModuleState","defaultState","currentSection","currentSectionTitle","currentSectionData","handleSectionChange","SvgExternalLink","popover","ModuleFooter","moduleNumber","totalSections","isMenuOpen","setIsMenuOpen","FooterDescription","FooterInfo","FooterIcon","NextSection","nextSection","scrollIntoView","behavior","inline","ResourcesPopout","CloseButton","AppContext","AppContextProvider","wrapperRef","useAppContextMethods","useAppContext","scrollToTop","STATE_LIST","GlobalUserStateContext","GlobalUserDispatchContext","GlobalUserMethodsContext","STORAGE_KEY","DEFAULT_STATE","lastName","firstName","startedModules","completedModules","usersModuleAnswers","currentModule","currentQuestion","dateLastUsed","GlobalUserProvider","store2","$setState","stateRef","getState","saveToStore","goToRegistration","goToModule","nextLastUsed","nextModule","curState","useGlobalUserState","useGlobalUserMethods","useGlobalUser","useGlobalUserDispatch","ModuleHeader","ModuleMap","handleAnimation","FlipContainer","IndicatorLeft","FlipInner","ContentTitle","ContentDescription","IndicatorRight","Tooltip","bsPrefix","primaryPlacement","citations","aria-describedby","IconField","Icon","placeholder","htmlFor","Checkbox","showError","ModuleQuizForm","quizKey","showAnswers","onSuccess","onFail","onNextClick","onResetClick","nextText","quizHeading","userState","setUserState","CORRECT_ANSWERS","answer","savedData","userAnswers","questionIdx","optionIdx","onSubmit","$userAnswers","$currentQuestion","question","QuestionList","selectedAnswers","uniqueAnswers","boxShadow","QuizResults","answers","sortNumerical","$answers","questionResults","setA","setB","correctCount","incorrectQuestions","reviewRefs","requiredArgs","toDate","argument","argStr","dirtyDate","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","dirtyOptions","defaultWidth","formatLong","long","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","argumentCallback","buildMatchFn","dirtyString","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","formatDistance","addSuffix","formatRelative","_date","_baseDate","localize","ordinalNumber","dirtyNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","weekStartsOn","firstWeekContainsDate","addMilliseconds","dirtyAmount","subMilliseconds","addLeadingZeros","targetLength","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCDay","setUTCDate","setUTCHours","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","hours","minutes","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","lightFormatters","signedWeekYear","weekYear","getUTCWeek","isoWeek","getUTCISOWeek","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","getTimezoneOffset","originalDate","dateLongFormatter","timeLongFormatter","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","utcDate","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","cleanEscapedString","renderer","propsEqual","oldPropsKeys","newPropsKeys","emptyObject","createRenderer","_ref$onChange","schedulePassiveEffects","cancelPassiveEffects","warnsIfNotActing","parentInstance","rootContainerInstance","clearContainer","oldProps","useSyncScheduling","beforeChild","_parentInstance$child","_parentInstance$child2","_parentInstance$child3","textInstance","oldText","updatePayload","pdf","mountNode","_events$change","callOnRender","onRender","_callee3","_context3","_callee4","_context4","StyleSheet","usePDF","pdfInstance","previousUrl","renderQueue","PDFDownloadLink","_ref4$fileName","_usePDF3","updateInstance","msSaveBlob","throwEnvironmentError","PDFViewer","innerRef","_usePDF2","BlobProvider","_usePDF","renderToStream","renderToString","renderToFile","futuraBt","CertificatePdf","completedDate","pdfStyles","heading","headingTitle1","headingTitle2","bodyText1","bodyText2","bodyText3","modulesBox","moduleText","completionBox","dirtyFormatStr","formatStr","formatterOptions","firstCharacter","longFormatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","ceoSignature","footer","footerSponsors","logo","AccordionHeader","AccordionButton","AccordionBody","module1Img","showFooter","module2Img","module3Img","module4Img","doneImg","trophy","slideAcross","translateX","marginX","keyframes","showUp","arrowsIn","CarouselContainer","Carousel","CarouselItem","rightArrow","bgImg","InformationBox","formatISO","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","hourOffset","minuteOffset","minute","subscribeNewsletter","Accept","isOverEighteen","upsertHealthyWorkplace","user","Module1","headerRef","section1Ref","section2Ref","section3Ref","section4Ref","section5Ref","section6Ref","section7Ref","section8Ref","section9Ref","section10Ref","QUIZ_1","Module2","QUIZ_2","warehouseMan","Module3","QUIZ_3","writingImg","Module4","QUIZ_4","ladyAtWork","FullPage","PageHeader","PageTitle","ModuleCard","background","clock","bikeImg","SvgPin","SvgEmail","SvgUser","SCHEMA","Yup","confirmEmail","isOver18","Registration","setUser","useForm","handleSubmit","noValidate","UserIconSvg","EmailIconSvg","ProgramFinish","subscribeStatus","setSubscribeStatus","App","showResumeModal","latestModule","hasUserFinished","ReactDOM","WorkplaceHubComponents","Hub_Flipper","Hub_InteractiveTable","aria-expanded","aria-controls","Hub_InteractiveTraining","Hub_ThreeCircles","threeCirclesData","Hub_QuickWins","activeQuickWin","setActiveQuickWin","Providers","getElementById"],"mappings":"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Q,QACR,MAAQ,QACR,KAAQ,MACR,KAAQ,QACR,MAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,QACR,MAAQ,QACR,KAAQ,QACR,MAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,QACR,KAAQ,MACR,KAAQ,QACR,KAAQ,MACR,KAAQ,QACR,KAAQ,KACR,MAAQ,QACR,MAAQ,QACR,KAAQ,KACR,KAAQ,MACR,MAAQ,QACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,UACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,MAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,MACR,KAAQ,QACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,UACR,KAAQ,QACR,KAAQ,QACR,KAAQ,MACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,QACR,KAAQ,KACR,KAAQ,MACR,KAAQ,KACR,KAA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,EACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,IACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA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B,CAC5C,IAAIkC,EAAejP,GAAS/qD,EA3OZ,KA2OiCklB,EAAM6f,UAEnDmtB,EAAoD,IAA9ClyD,EAAKi5D,kBAAkBjjB,GAAM8jB,aAAqB3lE,EAAIA,EAAI,EACpEsoB,EAAO2tC,OAAO8H,EAAK,EAAG8H,GACtB7lE,IAGF,OAAOA,EAGT,IAo6dI8lE,GAAe,CAClBl5B,WAr6dkB,CAClB,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,GACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,IACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,IACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,GACA,GACA,IACA,EACA,GACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,IACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,IACA,IACA,EACA,IACA,EACA,GACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,GACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,GACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,IACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,IACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,GACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,IACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,IACA,EACA,EACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,IACA,EACA,IACA,EACA,IACA,IACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,EACA,EACA,EACA,IACA,IACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,IACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,IACA,EACA,EACA,GACA,IA0wEDm5B,UAvwEiB,EACjB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GA+pDAC,KA7pDY,CACZ,GAEA,CACC,kBAED,CACC,sBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,kBAED,CACC,kBAED,CACC,qBACA,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,sBAED,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,kBAED,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,GAEA,CACC,kBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,CACC,sBAED,CACC,sBAED,CACC,qBACA,kBAED,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,GAEA,CACC,qBACA,kBAED,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,GAEA,CACC,sBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,GAEA,CACC,kBAED,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,GAEA,CACC,sBAED,GAEA,CACC,qBACA,kBAED,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,GAEA,GAEA,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,GAEA,GAEA,GAEA,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,GAEA,GAEA,CACC,qBACA,kBAED,CACC,qBACA,kBAED,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,GAEA,GAEA,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,sBAED,GAEA,CACC,sBAED,CACC,kBAED,CACC,wBA+lFEC,GAAU,CACbC,WAvlFkB,CAClB,IACA,MACA,IACA,KACA,IACA,KACA,MACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,IACA,QACA,QACA,OACA,KACA,IACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,MACA,KACA,IACA,KACA,IACA,KACA,QAkjFAC,eAhjFsB,CACtB,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,KAAQ,CACP,KACA,MAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,OAED,MAAS,CACR,MACA,QA83EDv5B,WA33EgB,CAChB,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,EACA,GACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,EACA,EACA,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,GACA,IAqODm5B,UAlOe,EACf,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GA4KAC,KA1KU,CACV,GAEA,CACC,kBAED,CACC,uBAED,CACC,kBAED,CACC,oBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,GAEA,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,kBAED,CACC,mBAED,CACC,kBAED,CACC,uBAED,CACC,kBAED,CACC,kBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,6BAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,oBAED,CACC,kBAED,CACC,kBAED,CACC,mBAED,CACC,oCAED,CACC,oBAED,CACC,oBAED,CACC,qBAcEI,GACC,EADDA,GAIC,EAJDA,GAKC,GALDA,GAMI,GANJA,GAOG,GAPHA,GAQC,IARDA,GAcE,KAdFA,GAkBK,MAlBLA,GAoBE,MApBFA,GAqBE,GAAK,GAMPC,GAAY,CACdC,MAAO,EACPC,kBAAmB,EACnBC,MAAO,EACPC,MAAO,EACPC,OAAQ,GACRC,WAAY,GACZC,QAAS,GACTC,WAAY,IACZC,QAAS,IACTC,UAAW,IACXC,YAAa,KACbC,OAAQ,KACRC,WAAY,KACZC,QAAS,KACTC,KAAM,MACNC,IAAK,OAEHC,GA3CC,EA2CgClB,GAAgBA,GA1ChD,EASU,KACE,KAiCbmB,GAAenB,GAAiBA,GAChCoB,GAAwBpB,GA/BnB,MAgCLqB,GAAgB,CAClBC,QAAS,CACPC,YAAY,EACZC,OAAQ,EACRC,QAAS,OACTC,QAASzB,GAAUW,YACnBe,SAAU,WACVC,SAAU,gBAEZ9uB,WAAY,CACVyuB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUW,YACnBe,SAAU,WACVC,SAAU,gBAEZ5vB,QAAS,CACPuvB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUU,UACnBgB,SAAU,WACVC,SAAU,gBAEZluB,SAAU,CACR6tB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUQ,WACnBkB,SAAU,WACVC,SAAU,gBAEZnuB,SAAU,CACR8tB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUW,YACnBe,SAAU,WACVC,SAAU,gBAEZrrB,MAAO,CACLgrB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUM,WACnBoB,SAAU,WACVC,SAAU,gBAEZxpB,MAAO,CACLmpB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUa,WACnBa,SAAU,WACVC,SAAU,gBAEZtpB,OAAQ,CACNipB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUa,WACnBa,SAAU,WACVC,SAAU,aAEZntB,QAAS,CACP8sB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUa,WACnBa,SAAU,WACVC,SAAU,aAEZjsB,UAAW,CACT4rB,YAAY,EACZC,OAAQ,KACRC,QAAS,OACTC,QAASzB,GAAUM,WACnBoB,SAAU,YACVC,SAAU,gBAWZrtB,MAAO,CACLgtB,YAAY,EACZC,OAAQ,KACRC,QAAS,QACTC,QAASzB,GAAUE,kBACnBwB,SAAU,YACVC,SAAU,iBAIVC,GAAuB,CAEzB,KAAQ,CAAC,KAAQ,MACjB,KAAQ,CAAC,KAAQ,MACjB,KAAQ,CAAC,KAAQ,MACjB,KAAQ,CAAC,KAAQ,MACjB,KAAQ,CAAC,KAAQ,OA63HfC,GAz3HS,CACZ,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,EACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,EACA,GACA,EACA,GACA,EACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,EACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,EACA,IACA,EACA,GACA,EACA,GACA,EACA,GACA,EACA,IACA,EACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,EACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,EACA,GACA,EACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,EACA,EACA,GACA,EACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,EACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IA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A,GACA,GACA,IACA,EACA,GACA,EACA,GACA,IACA,GACA,GACA,EACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,GACA,IACA,EACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,EACA,IACA,EACA,GACA,GACA,IACA,GACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,EACA,IACA,EACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,EACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,EACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,EACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,EACA,IACA,GACA,IACA,GACA,EACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,GACA,EACA,GACA,EACA,IACA,IACA,EACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GAOD,SAASC,GAAkC9rE,EAAG4Y,GAAkB,IAAIC,EAAI,GAAsB,oBAAX3X,QAAgD,MAAtBlB,EAAEkB,OAAOC,UAAmB,CAAE,GAAIqI,MAAMsP,QAAQ9Y,KAAO6Y,EAEpK,SAAuC7Y,EAAG+Y,GAAU,IAAK/Y,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO+rE,GAAoB/rE,EAAG+Y,GAAS,IAAIE,EAAIza,OAAOK,UAAUqa,SAAS9Z,KAAKY,GAAG+I,MAAM,GAAI,GAAc,WAANkQ,GAAkBjZ,EAAEP,cAAawZ,EAAIjZ,EAAEP,YAAYqE,MAAM,GAAU,QAANmV,GAAqB,QAANA,EAAa,OAAOzP,MAAMxF,KAAKhE,GAAI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zC,MAAM8zC,OAAQgD,IAI5Cp3C,EAAQ+tF,QAAU2F,G,uVC6OdymE,EAAS,CACZpzF,WA5PgB,CAChB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAgOAqzF,iBA9NsB,CACtB,gBACA,QACA,cACA,QACA,uBACA,iBACA,UACA,iBACA,eACA,eACA,cACA,aACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,iBACA,aACA,OACA,eACA,QACA,SAwKAC,QAtKa,CACb,SACA,QACA,WACA,YACA,QACA,SACA,WACA,WACA,SACA,SACA,SACA,SACA,MACA,YACA,UACA,aACA,UACA,WACA,WACA,QACA,QACA,SACA,UACA,YACA,UACA,OACA,MACA,UACA,UACA,WACA,SACA,WACA,WACA,sBACA,QACA,QACA,UACA,UACA,QACA,WACA,QACA,YACA,QACA,SACA,cACA,WACA,WACA,WACA,YACA,QACA,SACA,WACA,UACA,aACA,WACA,MACA,WACA,WACA,KACA,OACA,MACA,QACA,eACA,WACA,aACA,WACA,SACA,WACA,OACA,WACA,eACA,OACA,WACA,SACA,SACA,aACA,SACA,aACA,WACA,cACA,UACA,UACA,UACA,QACA,UACA,qBACA,WACA,UACA,mBACA,YACA,YACA,SACA,aACA,SACA,uBACA,mBACA,aACA,oBACA,oBACA,aACA,UACA,yBACA,wBACA,kBACA,aACA,gBACA,kBACA,cACA,UACA,UACA,SACA,SACA,eACA,SACA,WACA,UACA,SACA,UACA,YACA,UACA,OACA,UACA,UACA,OACA,QACA,OACA,QACA,cACA,cACA,mBACA,UACA,cACA,YACA,UACA,gBACA,gBACA,UACA,YACA,uBACA,wBACA,MACA,YACA,eACA,cACA,OACA,SACA,QACA,WACA,cACA,yBACA,SACA,gBACA,SAcAC,IAZS,CACT,IACA,KACA,IACA,IACA,IACA,MAm/SG9rF,EAAW,IAAIvR,WAz+SR,CACV,EACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,EACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,EACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,GACA,EACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,EACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,EACA,IACA,GACA,IACA,IACA,EACA,IACA,EACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,EACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,EACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,GACA,GACA,IACA,IACA,IACA,EACA,EACA,GACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,EACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,EACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,EACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,EACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,EACA,GACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,EACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,GACA,GACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,EACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,EACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,EACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,EACA,IACA,GACA,EACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,EACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,EACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,EACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,EACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,EACA,GACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,IACA,GACA,EACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,GACA,GACA,GACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,GACA,IACA,IACA,EACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,GACA,IACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,IAUG2R,EAAO,IAAI,IAAJ,CAAgBJ,GAEvB+rF,EAAO5rJ,KAAK4rJ,MAAQ,SAAU3+I,GAChC,OAAOjN,KAAKykC,IAAIx3B,GAAKjN,KAAK0kC,KAGxBysF,EAAO,SAAclkH,GACvB,OAAO2+I,EAAK3+I,GAAK,EAAI,GAInB4+I,EAAgB16B,EAAKq6B,EAAOpzF,WAAWjmE,OAAS,GAChD25J,EAAiB36B,EAAKq6B,EAAOC,iBAAiBt5J,OAAS,GACvD45J,EAAc56B,EAAKq6B,EAAOE,QAAQv5J,OAAS,GAC3C65J,EAAW76B,EAAKq6B,EAAOG,IAAIx5J,OAAS,GAGpC85J,EAAiBH,EAAiBC,EAAcC,EAFlC,GAGdE,EAAkBH,EAAcC,EAHlB,GAIdG,EAAeH,EAJD,GAMdI,GAAiB,GAAKP,GAAiB,EACvCQ,GAAkB,GAAKP,GAAkB,EACzCQ,GAAe,GAAKP,GAAe,EACnCQ,GAAY,GAAKP,GAAY,EAE7BQ,EAAc,SAAq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AK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IA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CE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINgyN,IAAK,CACHnyC,IAAK,EACL7/K,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,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CrCD,EAAYvC,MAEb59N,EAAWmgO,EAAU/xT,OAAS,IAAM+xT,EAAY,GAE5CtB,WACsB/wT,IAApB6C,EAAMqvF,KACRrvF,EAAMqvF,GAAYkjE,EAChBi9J,EACA3vM,EACA4sM,EACAL,IAIcpsT,EAAMqvF,GAIxBmgO,EAAYxvT,EAAMqvF,IAGpBkgO,GAAWC,EAID,IAAI7wM,KAEX6wM,EAGHnyK,WAAW6uH,GAFX3vQ,IAMJ,OAAI6yT,GACF/xK,WAAW6uH,GACJ,IAAI1vQ,SAAQ,SAAUV,GAC3BwzT,EAAiBxzT,OAGnBowQ,IACOqjD,GAIX,OAAOjD,IA7ba,gC,gBCVtB5vT,EAAOC,QAAU,EAAjB,Q,oBCAA,UAGI,EAAO,QAAW,0BAAP,EAUN,WAs5JP,MAAO,CACLkjH,SAp2Ja,CACb,IACA,QACA,UACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,UACA,QACA,UACA,SACA,QACA,QACA,QACA,UACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,UACA,QACA,UACA,UACA,SACA,UACA,UACA,QACA,SACA,OACA,WACA,OACA,SACA,QACA,QACA,WACA,UACA,QACA,SACA,SACA,SACA,WACA,QACA,QACA,SACA,UACA,SACA,OACA,QACA,OACA,QACA,SACA,SACA,QACA,QACA,WACA,SACA,OACA,OACA,QACA,QACA,WACA,OACA,OACA,UACA,SACA,QACA,QACA,QACA,UACA,SACA,OACA,UACA,QACA,QACA,QACA,SACA,UACA,SACA,QACA,QACA,SACA,QACA,UACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,UACA,SACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,SACA,UACA,OACA,SACA,UACA,QACA,UACA,SACA,SACA,SACA,UACA,QACA,OACA,QACA,SACA,UACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,UACA,SACA,UACA,QACA,SACA,QACA,SACA,QACA,SACA,YACA,QACA,UACA,QACA,WACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,UACA,OACA,OACA,SACA,OACA,UACA,OACA,OACA,OACA,UACA,OACA,OACA,QACA,UACA,SACA,SACA,SACA,QACA,SACA,SACA,WACA,QACA,SACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,UACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,SACA,QACA,WACA,SACA,WACA,OACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,MACA,SACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,OACA,SACA,MACA,OACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,MACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,UACA,SACA,OACA,SACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,QACA,SACA,OACA,QACA,SACA,SACA,MACA,SACA,SACA,QACA,SACA,SACA,SACA,OACA,SACA,SACA,QACA,SACA,QACA,QACA,UACA,QACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,QACA,SACA,SACA,QACA,UACA,WACA,QACA,SACA,SACA,OACA,QACA,SACA,SACA,SACA,SACA,OACA,QACA,OACA,SACA,SACA,UACA,QACA,WACA,SACA,QACA,QACA,UACA,UACA,QACA,SACA,QACA,SACA,UACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,OACA,SACA,SACA,SACA,QACA,UACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,QACA,QACA,UACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,QACA,OACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,WACA,SACA,QACA,QACA,UACA,QACA,QACA,OACA,SACA,QACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,OACA,OACA,SACA,QACA,OACA,UACA,QACA,QACA,UACA,QACA,QACA,SACA,SACA,SACA,OACA,OACA,OACA,OACA,QACA,SACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,OACA,SACA,QACA,QACA,OACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,SACA,UACA,QACA,SACA,SACA,QACA,OACA,UACA,QACA,UACA,QACA,MACA,MACA,OACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,OACA,SACA,SACA,QACA,SACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,MACA,QACA,SACA,QACA,QACA,MACA,OACA,OACA,OACA,UACA,QACA,QACA,QACA,OACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,MACA,OACA,OACA,OACA,MACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,UACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,SACA,UACA,UACA,QACA,QACA,SACA,SACA,MACA,QACA,QACA,UACA,QACA,SACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,WACA,QACA,OACA,SACA,OACA,MACA,OACA,SACA,UACA,WACA,OACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,WACA,SACA,QACA,QACA,QACA,QACA,QACA,MACA,OACA,SACA,QACA,OACA,QACA,UACA,OACA,QACA,QACA,OACA,OACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,MACA,OACA,QACA,QACA,YACA,SACA,QACA,QACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,QACA,OACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,MACA,SACA,SACA,UACA,SACA,QACA,UACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,SACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,OACA,OACA,SACA,QACA,UACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,UACA,SACA,OACA,SACA,QACA,SACA,UACA,QACA,MACA,OACA,OACA,OACA,SACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,QACA,OACA,MACA,MACA,OACA,OACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,UACA,QACA,OACA,QACA,SACA,UACA,SACA,UACA,SACA,OACA,SACA,QACA,UACA,QACA,OACA,QACA,QACA,QACA,OACA,QACA,QACA,UACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,QACA,OACA,QACA,OACA,SACA,OACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,OACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,SACA,QACA,QACA,MACA,OACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,QACA,MACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,SACA,OACA,OACA,MACA,MACA,UACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,UACA,OACA,QACA,OACA,OACA,OACA,OACA,MACA,QACA,OACA,QACA,SACA,SACA,SACA,QACA,OACA,QACA,SACA,OACA,OACA,QACA,MACA,MACA,MACA,OACA,QACA,QACA,QACA,QACA,OACA,SACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,OACA,SACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,QACA,OACA,UACA,OACA,QACA,YACA,UACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,UACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,MACA,UACA,OACA,QACA,SACA,QACA,SACA,YACA,QACA,UACA,UACA,QACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,MACA,QACA,SACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,QACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,SACA,QACA,OACA,OACA,SACA,UACA,SACA,SACA,UACA,QACA,UACA,QACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,OACA,QACA,QACA,SACA,QACA,UACA,SACA,SACA,UACA,QACA,SACA,SACA,QACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,OACA,SACA,SACA,UACA,SACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,OACA,QACA,QACA,QACA,QACA,UACA,UACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,OACA,SACA,OACA,QACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,QACA,SACA,QACA,SACA,YACA,QACA,QACA,OACA,SACA,UACA,SACA,SACA,QACA,SACA,QACA,UACA,QACA,SACA,MACA,SACA,WACA,OACA,QACA,SACA,QACA,UACA,OACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,QACA,OACA,OACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SACA,QACA,UACA,UACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,UACA,UACA,UACA,OACA,QACA,SACA,OACA,QACA,QACA,UACA,UACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,SACA,QACA,SACA,OACA,SACA,UACA,SACA,OACA,UACA,SACA,SACA,SACA,SACA,SACA,QACA,SACA,UACA,QACA,SACA,OACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,UACA,UACA,OACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,OACA,MACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,OACA,OACA,QACA,OACA,MACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,QACA,SACA,QACA,SACA,OACA,MACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,OACA,QACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,OACA,SACA,UACA,SACA,UACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,UACA,QACA,OACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,QACA,MACA,MACA,MACA,OACA,SACA,QACA,OACA,SACA,SACA,SACA,QACA,SACA,OACA,OACA,QACA,QACA,SACA,OACA,QACA,QACA,OACA,MACA,OACA,OACA,MACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,MACA,MACA,OACA,QACA,QACA,QACA,OACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,SACA,OACA,MACA,MACA,OACA,OACA,QACA,SACA,SACA,SACA,QACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,OACA,QACA,QACA,OACA,SACA,QACA,QACA,SACA,OACA,SACA,SACA,SACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,MACA,OACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,OACA,QACA,QACA,OACA,QACA,MACA,OACA,OACA,OACA,SACA,QACA,OACA,UACA,SACA,QACA,OACA,SACA,SACA,QACA,OACA,MACA,MACA,SACA,QACA,QACA,UACA,WACA,WACA,UACA,QACA,QACA,UACA,QACA,OACA,QACA,MACA,QACA,OACA,OACA,SACA,OACA,SACA,OACA,OACA,QACA,MACA,MACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,OACA,SACA,SACA,SACA,QACA,UACA,SACA,UACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,UACA,UACA,QACA,QACA,OACA,QACA,MACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,UACA,SACA,QACA,QACA,OACA,QACA,SACA,QACA,OACA,QACA,SACA,SACA,SACA,QACA,SACA,QACA,OACA,SACA,OACA,SACA,OACA,MACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,QACA,SACA,QACA,UACA,OACA,MACA,QACA,QACA,OACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,OACA,OACA,QACA,UACA,SACA,QACA,OACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,QACA,SACA,OACA,MACA,SACA,QACA,QACA,OACA,OACA,OACA,OACA,UACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,UACA,QACA,OACA,SACA,SACA,QACA,QACA,SACA,SACA,OACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,UACA,SACA,QACA,QACA,QACA,MACA,QACA,SACA,OACA,SACA,QACA,OACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,OACA,QACA,SACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,QACA,SACA,QACA,OACA,OACA,MACA,QACA,SACA,SACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,MACA,MACA,OACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,SACA,WACA,QACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,OACA,SACA,OACA,SACA,QACA,SACA,SACA,OACA,WACA,OACA,QACA,UACA,SACA,QACA,QACA,SACA,QACA,WACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,UACA,UACA,SACA,OACA,OACA,OACA,QACA,SACA,QACA,QACA,OACA,QACA,UACA,QACA,SACA,OACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,OACA,SACA,UACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,MACA,OACA,UACA,OACA,QACA,SACA,QACA,QACA,SACA,SACA,UACA,MACA,OACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,UACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,SACA,SACA,SACA,QACA,QACA,QACA,UACA,QACA,SACA,QACA,OACA,UACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,UACA,OACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,OACA,SACA,SACA,QACA,OACA,OACA,QACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,QACA,SACA,UACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,MACA,MACA,SACA,SACA,UACA,UACA,SACA,QACA,QACA,SACA,UACA,SACA,OACA,OACA,MACA,QACA,OACA,SACA,MACA,QACA,OACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,OACA,OACA,OACA,QACA,OACA,MACA,OACA,OACA,OACA,QACA,SACA,OACA,OACA,SACA,QACA,MACA,MACA,MACA,OACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,QACA,OACA,OACA,QACA,MACA,MACA,QACA,OACA,MACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,OACA,MACA,MACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,SACA,UACA,SACA,OACA,SACA,OACA,QACA,QACA,OACA,OACA,MACA,OACA,SACA,SACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,WACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,UACA,UACA,UACA,OACA,QACA,MACA,OACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,UACA,QACA,SACA,QACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,OACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,UACA,QACA,QACA,QACA,OACA,QACA,UACA,WACA,SACA,OACA,MACA,OACA,QACA,QACA,MACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,OACA,SACA,SACA,OACA,UACA,SACA,QACA,MACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,QACA,UACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,SACA,QACA,SACA,YACA,WACA,QACA,QACA,SACA,QACA,OACA,MACA,QACA,QACA,QACA,SACA,QACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,MACA,QACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,OACA,OACA,SACA,OACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,UACA,OACA,QACA,OACA,QACA,SACA,OACA,QACA,SACA,OACA,MACA,OACA,OACA,QACA,QACA,QACA,QACA,MACA,OACA,QACA,WACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,OACA,WACA,SACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,UACA,OACA,SACA,QACA,UACA,QACA,OACA,OACA,OACA,QACA,SACA,SACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,QACA,SACA,QACA,UACA,UACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,QACA,OACA,SACA,UACA,QACA,QACA,QACA,SACA,SACA,UACA,UACA,QACA,QACA,QACA,OACA,UACA,QACA,SACA,UACA,QACA,OACA,MACA,OACA,MACA,SACA,OACA,OACA,QACA,OACA,MACA,QACA,YACA,QACA,QACA,QACA,SACA,OACA,UACA,QACA,SACA,SACA,SACA,UACA,UACA,SACA,SACA,SACA,OACA,SACA,OACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,QACA,SACA,WACA,SACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,MACA,MACA,UACA,QACA,SACA,OACA,OACA,OACA,OACA,MACA,MACA,SACA,QACA,QACA,QACA,QACA,UACA,OACA,QACA,SACA,QACA,SACA,OACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,OACA,SACA,WACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,UACA,OACA,OACA,QACA,QACA,OACA,UACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,OACA,SACA,WACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,OACA,MACA,QACA,QACA,UACA,SACA,SACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,WACA,QACA,OACA,OACA,SACA,OACA,SACA,QACA,OACA,QACA,SACA,OACA,QACA,SACA,SACA,QACA,MACA,OACA,SACA,QACA,QACA,OACA,OACA,MACA,OACA,QACA,QACA,OACA,SACA,QACA,QACA,SACA,QACA,SACA,OACA,OACA,QACA,SACA,SACA,WACA,SACA,UACA,QACA,QACA,OACA,SACA,QACA,SACA,OACA,YACA,SACA,UACA,QACA,QACA,QACA,QACA,OACA,QACA,UACA,QACA,OACA,OACA,SACA,MACA,MACA,OACA,QACA,QACA,SACA,OACA,OACA,SACA,QACA,QACA,OACA,OACA,QACA,QACA,QACA,UACA,MACA,QACA,SACA,OACA,QACA,SACA,QACA,SACA,UACA,QACA,WACA,OACA,SACA,OACA,OACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,MACA,OACA,UACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,OACA,OACA,SACA,QACA,QACA,SACA,QACA,SACA,WACA,QACA,SACA,UACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,UACA,UACA,OACA,QACA,OACA,QACA,OACA,OACA,SACA,SACA,UACA,UACA,SACA,OACA,SACA,QACA,QACA,QACA,SACA,QACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,MACA,SACA,SACA,QACA,OACA,SACA,QACA,UACA,QACA,SACA,UACA,SACA,MACA,MACA,QACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,QACA,SACA,QACA,SACA,SACA,SACA,UACA,QACA,SACA,UACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,QACA,UACA,QACA,QACA,OACA,SACA,UACA,QACA,UACA,QACA,SACA,SACA,QACA,QACA,SACA,UACA,SACA,QACA,QACA,SACA,MACA,OACA,QACA,QACA,OACA,SACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,OACA,SACA,WACA,QACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,QACA,OACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,OACA,SACA,SACA,SACA,QACA,QACA,SACA,OACA,OACA,OACA,MACA,OACA,QACA,SACA,UACA,UACA,QACA,SACA,QACA,SACA,UACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,SACA,UACA,QACA,SACA,UACA,SACA,SACA,QACA,OACA,OACA,QACA,QACA,QACA,UACA,SACA,SACA,QACA,UACA,SACA,SACA,QACA,OACA,UACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,MACA,QACA,SACA,QACA,OACA,UACA,QACA,OACA,QACA,UACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,QACA,OACA,OACA,MACA,QACA,QACA,QACA,OACA,SACA,SACA,OACA,QACA,OACA,QACA,SACA,SACA,QACA,OACA,QACA,UACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,SACA,UACA,SACA,UACA,OACA,OACA,OACA,MACA,OACA,QACA,SACA,OACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,OACA,QACA,SACA,SACA,QACA,SACA,QACA,SACA,UACA,SACA,QACA,UACA,UACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,SACA,SACA,MACA,MACA,OACA,SACA,SACA,QACA,SACA,QACA,QACA,SACA,UACA,QACA,OACA,QACA,SACA,SACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,OACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,OACA,SACA,OACA,QACA,QACA,QACA,QACA,QACA,WACA,MACA,SACA,SACA,SACA,SACA,UACA,SACA,QACA,SACA,SACA,UACA,QACA,SACA,UACA,QACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,QACA,SACA,QACA,UACA,UACA,MACA,MACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,QACA,OACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,SACA,OACA,UACA,QACA,SACA,SACA,SACA,MACA,QACA,QACA,OACA,QACA,QACA,SACA,UACA,OACA,MACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,SACA,OACA,QACA,QACA,SACA,QACA,QACA,UACA,UACA,WACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,OACA,SACA,UACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,UACA,QACA,UACA,SACA,SACA,UACA,SACA,OACA,SACA,OACA,SACA,SACA,WACA,UACA,UACA,SACA,UACA,QACA,MACA,OACA,OACA,MACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,MACA,OACA,QACA,OACA,QACA,QACA,OACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,SACA,QACA,UACA,OACA,OACA,QACA,QACA,QACA,QACA,UACA,UACA,UACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,MACA,QACA,QACA,SACA,MACA,OACA,QACA,QACA,QACA,SACA,QACA,MACA,QACA,OACA,QACA,SACA,SACA,UACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,OACA,QACA,SACA,OACA,SACA,SACA,UACA,QACA,QACA,SACA,QACA,UACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,UACA,QACA,SACA,QACA,QACA,SACA,OACA,MACA,QACA,SACA,SACA,QACA,QACA,SACA,OACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,OACA,OACA,QACA,SACA,SACA,QACA,SACA,OACA,QACA,OACA,SACA,QACA,OACA,OACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,UACA,QACA,OACA,SACA,QACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,SACA,OACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,OACA,MACA,OACA,SACA,OACA,MACA,QACA,QACA,SACA,QACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,UACA,QACA,OACA,SACA,OACA,OACA,UACA,QACA,QACA,QACA,QACA,QACA,OACA,QACA,SACA,UACA,QACA,QACA,QACA,SACA,UACA,OACA,OACA,OACA,OACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,OACA,SACA,QACA,OACA,OACA,OACA,MACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,OACA,SACA,QACA,QACA,SACA,OACA,OACA,QACA,SACA,SACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,SACA,OACA,QACA,OACA,SACA,OACA,OACA,OACA,MACA,OACA,QACA,SACA,SACA,OACA,QACA,OACA,SACA,OACA,OACA,SACA,QACA,QACA,QACA,SACA,UACA,OACA,MACA,QACA,QACA,SACA,SACA,SACA,QACA,OACA,SACA,QACA,QACA,OACA,UACA,UACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,QACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,QACA,SACA,SACA,QACA,OACA,QACA,SACA,SACA,OACA,QACA,OACA,UACA,OACA,SACA,OACA,OACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,UACA,SACA,QACA,SACA,QACA,OACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,SACA,UACA,SACA,SACA,QACA,QACA,OACA,MACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,QACA,OACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,QACA,SACA,MACA,OACA,OACA,UACA,WACA,QACA,QACA,QACA,SACA,OACA,QACA,SACA,QACA,QACA,UACA,SACA,QACA,SACA,SACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,OACA,OACA,SACA,OACA,MACA,OACA,SACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,QACA,SACA,QACA,UACA,OACA,OACA,QACA,QACA,SACA,QACA,UACA,SACA,UACA,UACA,QACA,QACA,QACA,SACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,OACA,QACA,SACA,SACA,SACA,QACA,SACA,SACA,QACA,SACA,OACA,SACA,UACA,QACA,UACA,UACA,OACA,OACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,QACA,OACA,QACA,OACA,QACA,UACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACA,UACA,OACA,QACA,QACA,QACA,QACA,QACA,WACA,QACA,OACA,OACA,QACA,OACA,QACA,SACA,MACA,OACA,QACA,QACA,QACA,SACA,SACA,OACA,OACA,OACA,QACA,MACA,OACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,UACA,SACA,QACA,QACA,QACA,SACA,SACA,OACA,QACA,QACA,SACA,OACA,OACA,QACA,SACA,SACA,UACA,UACA,QACA,UACA,WACA,QACA,QACA,SACA,QACA,UACA,UACA,SACA,QACA,QACA,SACA,SACA,SACA,UACA,SACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,SACA,SACA,QACA,QACA,SACA,QACA,QACA,OACA,MACA,MACA,QACA,QACA,OACA,MACA,OACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,QACA,UACA,QACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,SACA,QACA,UACA,SACA,OACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,SACA,OACA,OACA,SACA,QACA,OACA,SACA,OACA,QACA,QACA,QACA,OACA,UACA,MACA,MACA,OACA,QACA,SACA,QACA,SACA,SACA,OACA,QACA,QACA,OACA,QACA,SACA,SACA,SACA,UACA,SACA,QACA,QACA,OACA,SACA,QACA,SACA,QACA,OACA,QACA,OACA,QACA,QACA,SACA,OACA,UACA,SACA,OACA,QACA,OACA,QACA,OACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,UACA,SACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,QACA,OACA,QACA,QACA,QACA,QACA,OACA,OACA,SACA,SACA,QACA,QACA,UACA,QACA,QACA,QACA,QACA,OACA,WACA,QACA,QACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,QACA,SACA,OACA,QACA,UACA,QACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,SACA,SACA,UACA,SACA,SACA,UACA,QACA,SACA,QACA,QACA,QACA,YACA,QACA,QACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,OACA,SACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,SACA,QACA,UACA,OACA,OACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,SACA,SACA,SACA,UACA,SACA,SACA,UACA,SACA,SACA,QACA,QACA,SACA,QACA,SACA,QACA,SACA,QACA,SACA,SACA,UACA,SACA,QACA,OACA,QACA,OACA,OACA,SACA,UACA,OACA,SACA,QACA,QACA,QACA,QACA,SACA,QACA,OACA,QACA,SACA,QACA,QACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,SACA,QACA,QACA,QACA,SACA,OACA,MACA,QACA,OACA,SACA,QACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,MACA,UACA,SACA,QACA,QACA,QACA,QACA,OACA,QACA,OACA,OACA,MACA,OACA,UACA,SACA,QACA,OACA,QACA,QACA,OACA,MACA,QACA,QACA,OACA,OACA,OACA,SACA,MACA,OACA,OACA,SACA,OACA,OACA,QACA,QACA,MACA,MACA,MACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,UACA,OACA,QACA,QACA,MACA,OACA,QACA,OACA,MACA,OACA,OACA,QACA,QACA,SACA,MACA,OACA,MACA,SACA,UACA,QACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,MACA,MACA,OACA,QACA,OACA,QACA,QACA,QACA,MACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,UACA,OACA,OACA,SACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,OACA,QACA,OACA,SACA,QACA,OACA,QACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,QACA,OACA,OACA,OACA,QACA,SACA,QACA,QACA,OACA,OACA,OACA,QACA,QACA,SACA,QACA,MACA,MACA,QACA,OACA,MACA,MACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,OACA,QACA,OACA,QACA,OAEA,UACA,WACA,UACA,YACA,UACA,OACA,aACA,YACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,YACA,WACA,WACA,WACA,YACA,YACA,UACA,UACA,WACA,UACA,WACA,UACA,YACA,SACA,UACA,UACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,WACA,UACA,QACA,WACA,WACA,WACA,UACA,UACA,UACA,SACA,UACA,aACA,UACA,UACA,SACA,QACA,SACA,WACA,UACA,YACA,WACA,WACA,YACA,aACA,UACA,UACA,UACA,SACA,WACA,YACA,SACA,QACA,SACA,UACA,UACA,QACA,SACA,SACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,QACA,SACA,UACA,UACA,QACA,SACA,YACA,UACA,UACA,WACA,WACA,aACA,aACA,WACA,SACA,SACA,SACA,UACA,WACA,YACA,aACA,SACA,SACA,SACA,UACA,UACA,YACA,SACA,SACA,UACA,UACA,WACA,WACA,WACA,aACA,WACA,QACA,SACA,YACA,WACA,SACA,QACA,WACA,WACA,QACA,SACA,UACA,eACA,YACA,WACA,cACA,YACA,UACA,UACA,QACA,WACA,WACA,WACA,SACA,UACA,SACA,SACA,SACA,UACA,UACA,WACA,SACA,WACA,SACA,UACA,WACA,cACA,YACA,SACA,SACA,SACA,YACA,SACA,SACA,WACA,aACA,SACA,WACA,UACA,WACA,SACA,UACA,SACA,WACA,OACA,WACA,WACA,YACA,YACA,WACA,UACA,aACA,SACA,YACA,UACA,WACA,YACA,UACA,QACA,WACA,YACA,WACA,SACA,YACA,WACA,UACA,YACA,cACA,WACA,WACA,QACA,UACA,YACA,YACA,UACA,WACA,WACA,QACA,WACA,QACA,WACA,YACA,YACA,UACA,UACA,QACA,WACA,WACA,SACA,YACA,WACA,WACA,QACA,WACA,UACA,WACA,YACA,WACA,aACA,cACA,SACA,YACA,YACA,WACA,UACA,WACA,UACA,WACA,YACA,UACA,WACA,WACA,WACA,SACA,WACA,YACA,YACA,UACA,UACA,UACA,SACA,aACA,WACA,UACA,QACA,SACA,SACA,SACA,aACA,UACA,WACA,WACA,SACA,WACA,YACA,UACA,UACA,SACA,SACA,UACA,SACA,UACA,UACA,SACA,SACA,YACA,aACA,YACA,WACA,UACA,UACA,aACA,QACA,UACA,cACA,UACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,WACA,UACA,YACA,WACA,SACA,UACA,SACA,YACA,cACA,WACA,WACA,UACA,UACA,SACA,SACA,cACA,WACA,UACA,WACA,WACA,aACA,UACA,UACA,cACA,cACA,WACA,UACA,WACA,YACA,WACA,UACA,UACA,aACA,WACA,WACA,aACA,SACA,UACA,WACA,SACA,eACA,SACA,WACA,QACA,WACA,YACA,YACA,YACA,SACA,UACA,OACA,QACA,SACA,QACA,UACA,UACA,WACA,YACA,UACA,UACA,WACA,YACA,SACA,SACA,SACA,QACA,UACA,UACA,aACA,WACA,WACA,UACA,cACA,WACA,YACA,UACA,WACA,WACA,aACA,WACA,UACA,UACA,UACA,UACA,WACA,SACA,aACA,aACA,UACA,UACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,aACA,SACA,YACA,aACA,UACA,cACA,WACA,SACA,OACA,WACA,YACA,WACA,SACA,YACA,UACA,YACA,QACA,WACA,SACA,cACA,UACA,UACA,UACA,WACA,UACA,QACA,WACA,OACA,YACA,SACA,WACA,WACA,UACA,WACA,WACA,UACA,aACA,WACA,WACA,SACA,WACA,WACA,UACA,UACA,SACA,YACA,WACA,cACA,WACA,UACA,aACA,WACA,UACA,WACA,cACA,cACA,cACA,UACA,YACA,UACA,OACA,UACA,WACA,WACA,UACA,QACA,UACA,UACA,SACA,SACA,YACA,UACA,UACA,WACA,WACA,WACA,aACA,UACA,aACA,UACA,MACA,SACA,UACA,UACA,WACA,WACA,MACA,SACA,UACA,WACA,SACA,YACA,SACA,UACA,QAEA,IAuBAwsM,WApBgB,CAChB,cACA,eACA,iBACA,eACA,kBACA,UACA,WACA,U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ACPkqR,SACE,yEACF92S,QACE,gCACE,gBAAC45S,GAAD,KACE,uDACA,6CACA,sBAAIxqD,UAAU,aAAY,iDAC1B,uDAEF,2IAON,CACExiO,MAAO,YACPkqR,SACE,+EACF92S,QACE,gCACE,gBAAC45S,GAAD,KACE,uDACA,6CACA,8CACA,8CACA,sBAAIxqD,UAAU,aAAY,0DAE5B,mIAON,CACExiO,MAAO,wBACPkqR,SAAU,qCACV92S,QACE,gBAAC45S,GAAD,KACE,uHAIA,qIAIA,6GAGA,qGAON,CACEhtR,MAAO,YACPkqR,SAAU,wDACV92S,QACE,gCACE,gBAAC45S,GAAD,KACE,uDACA,6CACA,8CACA,uDAEF,2IAON,CACEhtR,MAAO,YACPkqR,SACE,uEACF92S,QACE,gCACE,gBAAC45S,GAAD,KACE,uDACA,6CACA,8CACA,8CACA,uDAEF,qIASV,CACEhtR,MAAO,UACPksR,KAAM,CACJ,CACElsR,MAAO,wBACPkqR,SAAU,qCACV92S,QACE,gBAAC45S,GAAD,KACE,yEACA,gEACA,4EACA,mEACA,+CACA,mDAMV,CACEhtR,MAAO,cACPksR,KAAM,CACJ,CACElsR,MAAO,YACPkqR,SACE,wHACF92S,QACE,gCACE,gBAAC45S,GAAD,KACE,4CACA,4CACA,sBAAIxqD,UAAU,aAAY,+CAC1B,6CAEF,8KAMN,CACExiO,MAAO,YACPkqR,SACE,kHACF92S,QACE,gCACE,gBAAC45S,GAAD,KACE,wDACA,sBAAIxqD,UAAU,aAAY,4DAC1B,yDACA,0DAEF,8KAMN,CACExiO,MAAO,wBACPkqR,SAAU,qCACV92S,QACE,gBAAC45S,GAAD,KACE,4IAIA,yJAIA,sHAIA,uIAIA,oIAON,CACEhtR,MAAO,YACPkqR,SAAU,oDACV92S,QACE,gBAAC45S,GAAD,KACE,mCACA,6CACA,qCACA,oCACA,qDAIN,CACEhtR,MAAO,YACPkqR,SACE,gFACF92S,QACE,gCACE,gBAAC45S,GAAD,KACE,iCACA,iCACA,iCACA,iCACA,kCACA,2CAEF,gLAQV,CACEhtR,MAAO,oBACPksR,KA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","file":"bundle.js","sourcesContent":["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;","function _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\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _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\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _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}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default 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}","export default function _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}","function _extends() {\n module.exports = _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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar _regeneratorRuntime = require('@babel/runtime/regenerator');\nvar _objectWithoutPropertiesLoose = require('@babel/runtime/helpers/objectWithoutPropertiesLoose');\nrequire('is-url');\nvar fetch = require('cross-fetch');\nvar fontkit = require('@react-pdf/fontkit');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);\nvar _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);\nvar _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);\nvar _objectWithoutPropertiesLoose__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutPropertiesLoose);\nvar fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch);\nvar fontkit__default = /*#__PURE__*/_interopDefaultLegacy(fontkit);\n\nvar FONT_WEIGHTS = {\n thin: 100,\n hairline: 100,\n ultralight: 200,\n extralight: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n demibold: 600,\n bold: 700,\n ultrabold: 800,\n extrabold: 800,\n heavy: 900,\n black: 900\n};\n\nvar fetchFont = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(src, options) {\n var response, buffer;\n return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch__default['default'](src, options);\n\n case 2:\n response = _context.sent;\n _context.next = 5;\n return response.buffer ? response.buffer() : response.arrayBuffer();\n\n case 5:\n buffer = _context.sent;\n return _context.abrupt(\"return\", buffer.constructor.name === 'Buffer' ? buffer : Buffer.from(buffer));\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function fetchFont(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar isDataUrl = function isDataUrl(dataUrl) {\n var header = dataUrl.split(',')[0];\n var hasDataPrefix = header.substring(0, 5) === 'data:';\n var hasBase64Prefix = header.split(';')[1] === 'base64';\n return hasDataPrefix && hasBase64Prefix;\n};\n\nvar resolveFontWeight = function resolveFontWeight(value) {\n return typeof value === 'string' ? FONT_WEIGHTS[value] : value;\n};\n\nvar sortByFontWeight = function sortByFontWeight(a, b) {\n return a.fontWeight - b.fontWeight;\n};\n\nvar FontSource = /*#__PURE__*/function () {\n function FontSource(src, fontFamily, fontStyle, fontWeight, options) {\n this.src = src;\n this.fontFamily = fontFamily;\n this.fontStyle = fontStyle || 'normal';\n this.fontWeight = fontWeight || 400;\n this.data = null;\n this.loading = false;\n this.options = options;\n }\n\n var _proto = FontSource.prototype;\n\n _proto.load = /*#__PURE__*/function () {\n var _load = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {\n var _this = this;\n\n var postscriptName, _this$options, headers, body, _this$options$method, method, data;\n\n return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n this.loading = true;\n postscriptName = this.options.postscriptName;\n\n if (!isDataUrl(this.src)) {\n _context2.next = 6;\n break;\n }\n\n this.data = fontkit__default['default'].create(Buffer.from(this.src.split(',')[1], 'base64'), postscriptName);\n _context2.next = 17;\n break;\n\n case 6:\n\n _this$options = this.options, headers = _this$options.headers, body = _this$options.body, _this$options$method = _this$options.method, method = _this$options$method === void 0 ? 'GET' : _this$options$method;\n _context2.next = 10;\n return fetchFont(this.src, {\n method: method,\n body: body,\n headers: headers\n });\n\n case 10:\n data = _context2.sent;\n this.data = fontkit__default['default'].create(data, postscriptName);\n _context2.next = 17;\n break;\n\n case 14:\n _context2.next = 16;\n return new Promise(function (resolve, reject) {\n return fontkit__default['default'].open(_this.src, postscriptName, function (err, data) {\n return err ? reject(err) : resolve(data);\n });\n });\n\n case 16:\n this.data = _context2.sent;\n\n case 17:\n this.loading = false;\n\n case 18:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function load() {\n return _load.apply(this, arguments);\n }\n\n return load;\n }();\n\n return FontSource;\n}();\n\nvar Font = /*#__PURE__*/function () {\n Font.create = function create(family) {\n return new Font(family);\n };\n\n function Font(family) {\n this.family = family;\n this.sources = [];\n }\n\n var _proto2 = Font.prototype;\n\n _proto2.register = function register(_ref2) {\n var src = _ref2.src,\n fontWeight = _ref2.fontWeight,\n fontStyle = _ref2.fontStyle,\n options = _objectWithoutPropertiesLoose__default['default'](_ref2, [\"src\", \"fontWeight\", \"fontStyle\"]);\n\n var numericFontWeight = resolveFontWeight(fontWeight);\n this.sources.push(new FontSource(src, this.family, fontStyle, numericFontWeight, options));\n };\n\n _proto2.resolve = function resolve(descriptor) {\n var _descriptor$fontWeigh = descriptor.fontWeight,\n fontWeight = _descriptor$fontWeigh === void 0 ? 400 : _descriptor$fontWeigh,\n _descriptor$fontStyle = descriptor.fontStyle,\n fontStyle = _descriptor$fontStyle === void 0 ? 'normal' : _descriptor$fontStyle;\n var styleSources = this.sources.filter(function (s) {\n return s.fontStyle === fontStyle;\n }); // Weight resolution. https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#Fallback_weights\n\n var exactFit = styleSources.find(function (s) {\n return s.fontWeight === fontWeight;\n });\n if (exactFit) return exactFit;\n var res;\n\n if (fontWeight >= 400 && fontWeight <= 500) {\n var leftOffset = styleSources.filter(function (s) {\n return s.fontWeight <= fontWeight;\n });\n var rightOffset = styleSources.filter(function (s) {\n return s.fontWeight > 500;\n });\n var fit = styleSources.filter(function (s) {\n return s.fontWeight >= fontWeight && s.fontWeight < 500;\n });\n res = fit[0] || leftOffset[leftOffset.length - 1] || rightOffset[0];\n }\n\n var lt = styleSources.filter(function (s) {\n return s.fontWeight < fontWeight;\n }).sort(sortByFontWeight);\n var gt = styleSources.filter(function (s) {\n return s.fontWeight > fontWeight;\n }).sort(sortByFontWeight);\n\n if (fontWeight < 400) {\n res = lt[lt.length - 1] || gt[0];\n }\n\n if (fontWeight > 500) {\n res = gt[0] || lt[lt.length - 1];\n }\n\n if (!res) {\n throw new Error(\"Could not resolve font for \" + this.family + \", fontWeight \" + fontWeight);\n }\n\n return res;\n };\n\n return Font;\n}();\n\nvar standard = ['Courier', 'Courier-Bold', 'Courier-Oblique', 'Helvetica', 'Helvetica-Bold', 'Helvetica-Oblique', 'Times-Roman', 'Times-Bold', 'Times-Italic'];\n\nfunction FontStore() {\n var _this = this;\n\n var fonts = {};\n var emojiSource = null;\n var hyphenationCallback = null;\n\n this.register = function (data) {\n var family = data.family;\n\n if (!fonts[family]) {\n fonts[family] = Font.create(family);\n } // Bulk loading\n\n\n if (data.fonts) {\n for (var i = 0; i < data.fonts.length; i += 1) {\n fonts[family].register(_extends__default['default']({\n family: family\n }, data.fonts[i]));\n }\n } else {\n fonts[family].register(data);\n }\n };\n\n this.registerEmojiSource = function (_ref) {\n var url = _ref.url,\n _ref$format = _ref.format,\n format = _ref$format === void 0 ? 'png' : _ref$format;\n emojiSource = {\n url: url,\n format: format\n };\n };\n\n this.registerHyphenationCallback = function (callback) {\n hyphenationCallback = callback;\n };\n\n this.getFont = function (descriptor) {\n var fontFamily = descriptor.fontFamily;\n var isStandard = standard.includes(fontFamily);\n if (isStandard) return null;\n\n if (!fonts[fontFamily]) {\n throw new Error(\"Font family not registered: \" + fontFamily + \". Please register it calling Font.register() method.\");\n }\n\n return fonts[fontFamily].resolve(descriptor);\n };\n\n this.load = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(descriptor) {\n var fontFamily, isStandard, f;\n return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n fontFamily = descriptor.fontFamily;\n isStandard = standard.includes(fontFamily);\n\n if (!isStandard) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 4:\n f = _this.getFont(descriptor); // We cache the font to avoid fetching it many times\n\n if (!(!f.data && !f.loading)) {\n _context.next = 8;\n break;\n }\n\n _context.next = 8;\n return f.load();\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }();\n\n this.reset = function () {\n var keys = Object.keys(fonts);\n\n for (var i = 0; i < keys.length; i += 1) {\n var key = keys[i];\n fonts[key].data = null;\n }\n };\n\n this.clear = function () {\n fonts = {};\n };\n\n this.getRegisteredFonts = function () {\n return fonts;\n };\n\n this.getEmojiSource = function () {\n return emojiSource;\n };\n\n this.getHyphenationCallback = function () {\n return hyphenationCallback;\n };\n\n this.getRegisteredFontFamilies = function () {\n return Object.keys(fonts);\n };\n}\n\nexports.default = FontStore;\n//# sourceMappingURL=index.browser.js.map\n","export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\n var desc = {};\n Object.keys(descriptor).forEach(function (key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function (desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n}","export default function _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}","import r from 'restructure';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport _applyDecoratedDescriptor from '@babel/runtime/helpers/applyDecoratedDescriptor';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport { PropertyDescriptor, resolveLength } from 'restructure/src/utils';\nimport isEqual from 'deep-equal';\nimport unicode from '@react-pdf/unicode-properties';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport UnicodeTrie from 'unicode-trie';\nimport StateMachine from 'dfa';\nimport cloneDeep from 'clone';\nimport inflate from 'tiny-inflate';\n\nvar fontkit = {};\nfontkit.logErrors = false;\nvar formats = [];\n\nfontkit.registerFormat = function (format) {\n formats.push(format);\n};\n\nfontkit.openSync = function (filename, postscriptName) {\n {\n throw new Error('fontkit.openSync unavailable for browser build');\n }\n};\n\nfontkit.open = function (filename, postscriptName, callback) {\n {\n throw new Error('fontkit.open unavailable for browser build');\n }\n};\n\nfontkit.create = function (buffer, postscriptName) {\n for (var i = 0; i < formats.length; i++) {\n var format = formats[i];\n\n if (format.probe(buffer)) {\n var font = new format(new r.DecodeStream(buffer));\n\n if (postscriptName) {\n return font.getFont(postscriptName);\n }\n\n return font;\n }\n }\n\n throw new Error('Unknown font format');\n};\n\nfontkit.defaultLanguage = 'en';\n\nfontkit.setDefaultLanguage = function (lang) {\n if (lang === void 0) {\n lang = 'en';\n }\n\n fontkit.defaultLanguage = lang;\n};\n\n/**\n * This decorator caches the results of a getter or method such that\n * the results are lazily computed once, and then cached.\n * @private\n */\nfunction cache(target, key, descriptor) {\n if (descriptor.get) {\n var get = descriptor.get;\n\n descriptor.get = function () {\n var value = get.call(this);\n Object.defineProperty(this, key, {\n value: value\n });\n return value;\n };\n } else if (typeof descriptor.value === 'function') {\n var fn = descriptor.value;\n return {\n get: function get() {\n var cache = new Map();\n\n function memoized() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var key = args.length > 0 ? args[0] : 'value';\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n\n var result = fn.apply(this, args);\n cache.set(key, result);\n return result;\n }\n Object.defineProperty(this, key, {\n value: memoized\n });\n return memoized;\n }\n };\n }\n}\n\nvar SubHeader = new r.Struct({\n firstCode: r.uint16,\n entryCount: r.uint16,\n idDelta: r.int16,\n idRangeOffset: r.uint16\n});\nvar CmapGroup = new r.Struct({\n startCharCode: r.uint32,\n endCharCode: r.uint32,\n glyphID: r.uint32\n});\nvar UnicodeValueRange = new r.Struct({\n startUnicodeValue: r.uint24,\n additionalCount: r.uint8\n});\nvar UVSMapping = new r.Struct({\n unicodeValue: r.uint24,\n glyphID: r.uint16\n});\nvar DefaultUVS = new r.Array(UnicodeValueRange, r.uint32);\nvar NonDefaultUVS = new r.Array(UVSMapping, r.uint32);\nvar VarSelectorRecord = new r.Struct({\n varSelector: r.uint24,\n defaultUVS: new r.Pointer(r.uint32, DefaultUVS, {\n type: 'parent'\n }),\n nonDefaultUVS: new r.Pointer(r.uint32, NonDefaultUVS, {\n type: 'parent'\n })\n});\nvar CmapSubtable = new r.VersionedStruct(r.uint16, {\n 0: {\n // Byte encoding\n length: r.uint16,\n // Total table length in bytes (set to 262 for format 0)\n language: r.uint16,\n // Language code for this encoding subtable, or zero if language-independent\n codeMap: new r.LazyArray(r.uint8, 256)\n },\n 2: {\n // High-byte mapping (CJK)\n length: r.uint16,\n language: r.uint16,\n subHeaderKeys: new r.Array(r.uint16, 256),\n subHeaderCount: function subHeaderCount(t) {\n return Math.max.apply(Math, t.subHeaderKeys);\n },\n subHeaders: new r.LazyArray(SubHeader, 'subHeaderCount'),\n glyphIndexArray: new r.LazyArray(r.uint16, 'subHeaderCount')\n },\n 4: {\n // Segment mapping to delta values\n length: r.uint16,\n // Total table length in bytes\n language: r.uint16,\n // Language code\n segCountX2: r.uint16,\n segCount: function segCount(t) {\n return t.segCountX2 >> 1;\n },\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16,\n endCode: new r.LazyArray(r.uint16, 'segCount'),\n reservedPad: new r.Reserved(r.uint16),\n // This value should be zero\n startCode: new r.LazyArray(r.uint16, 'segCount'),\n idDelta: new r.LazyArray(r.int16, 'segCount'),\n idRangeOffset: new r.LazyArray(r.uint16, 'segCount'),\n glyphIndexArray: new r.LazyArray(r.uint16, function (t) {\n return (t.length - t._currentOffset) / 2;\n })\n },\n 6: {\n // Trimmed table\n length: r.uint16,\n language: r.uint16,\n firstCode: r.uint16,\n entryCount: r.uint16,\n glyphIndices: new r.LazyArray(r.uint16, 'entryCount')\n },\n 8: {\n // mixed 16-bit and 32-bit coverage\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint16,\n is32: new r.LazyArray(r.uint8, 8192),\n nGroups: r.uint32,\n groups: new r.LazyArray(CmapGroup, 'nGroups')\n },\n 10: {\n // Trimmed Array\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint32,\n firstCode: r.uint32,\n entryCount: r.uint32,\n glyphIndices: new r.LazyArray(r.uint16, 'numChars')\n },\n 12: {\n // Segmented coverage\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint32,\n nGroups: r.uint32,\n groups: new r.LazyArray(CmapGroup, 'nGroups')\n },\n 13: {\n // Many-to-one range mappings (same as 12 except for group.startGlyphID)\n reserved: new r.Reserved(r.uint16),\n length: r.uint32,\n language: r.uint32,\n nGroups: r.uint32,\n groups: new r.LazyArray(CmapGroup, 'nGroups')\n },\n 14: {\n // Unicode Variation Sequences\n length: r.uint32,\n numRecords: r.uint32,\n varSelectors: new r.LazyArray(VarSelectorRecord, 'numRecords')\n }\n});\nvar CmapEntry = new r.Struct({\n platformID: r.uint16,\n // Platform identifier\n encodingID: r.uint16,\n // Platform-specific encoding identifier\n table: new r.Pointer(r.uint32, CmapSubtable, {\n type: 'parent',\n lazy: true\n })\n}); // character to glyph mapping\n\nvar cmap = new r.Struct({\n version: r.uint16,\n numSubtables: r.uint16,\n tables: new r.Array(CmapEntry, 'numSubtables')\n});\n\nvar head = new r.Struct({\n version: r.int32,\n // 0x00010000 (version 1.0)\n revision: r.int32,\n // set by font manufacturer\n checkSumAdjustment: r.uint32,\n magicNumber: r.uint32,\n // set to 0x5F0F3CF5\n flags: r.uint16,\n unitsPerEm: r.uint16,\n // range from 64 to 16384\n created: new r.Array(r.int32, 2),\n modified: new r.Array(r.int32, 2),\n xMin: r.int16,\n // for all glyph bounding boxes\n yMin: r.int16,\n // for all glyph bounding boxes\n xMax: r.int16,\n // for all glyph bounding boxes\n yMax: r.int16,\n // for all glyph bounding boxes\n macStyle: new r.Bitfield(r.uint16, ['bold', 'italic', 'underline', 'outline', 'shadow', 'condensed', 'extended']),\n lowestRecPPEM: r.uint16,\n // smallest readable size in pixels\n fontDirectionHint: r.int16,\n indexToLocFormat: r.int16,\n // 0 for short offsets, 1 for long\n glyphDataFormat: r.int16 // 0 for current format\n\n});\n\nvar hhea = new r.Struct({\n version: r.int32,\n ascent: r.int16,\n // Distance from baseline of highest ascender\n descent: r.int16,\n // Distance from baseline of lowest descender\n lineGap: r.int16,\n // Typographic line gap\n advanceWidthMax: r.uint16,\n // Maximum advance width value in 'hmtx' table\n minLeftSideBearing: r.int16,\n // Maximum advance width value in 'hmtx' table\n minRightSideBearing: r.int16,\n // Minimum right sidebearing value\n xMaxExtent: r.int16,\n caretSlopeRise: r.int16,\n // Used to calculate the slope of the cursor (rise/run); 1 for vertical\n caretSlopeRun: r.int16,\n // 0 for vertical\n caretOffset: r.int16,\n // Set to 0 for non-slanted fonts\n reserved: new r.Reserved(r.int16, 4),\n metricDataFormat: r.int16,\n // 0 for current format\n numberOfMetrics: r.uint16 // Number of advance widths in 'hmtx' table\n\n});\n\nvar HmtxEntry = new r.Struct({\n advance: r.uint16,\n bearing: r.int16\n});\nvar hmtx = new r.Struct({\n metrics: new r.LazyArray(HmtxEntry, function (t) {\n return t.parent.hhea.numberOfMetrics;\n }),\n bearings: new r.LazyArray(r.int16, function (t) {\n return t.parent.maxp.numGlyphs - t.parent.hhea.numberOfMetrics;\n })\n});\n\nvar maxp = new r.Struct({\n version: r.int32,\n numGlyphs: r.uint16,\n // The number of glyphs in the font\n maxPoints: r.uint16,\n // Maximum points in a non-composite glyph\n maxContours: r.uint16,\n // Maximum contours in a non-composite glyph\n maxComponentPoints: r.uint16,\n // Maximum points in a composite glyph\n maxComponentContours: r.uint16,\n // Maximum contours in a composite glyph\n maxZones: r.uint16,\n // 1 if instructions do not use the twilight zone, 2 otherwise\n maxTwilightPoints: r.uint16,\n // Maximum points used in Z0\n maxStorage: r.uint16,\n // Number of Storage Area locations\n maxFunctionDefs: r.uint16,\n // Number of FDEFs\n maxInstructionDefs: r.uint16,\n // Number of IDEFs\n maxStackElements: r.uint16,\n // Maximum stack depth\n maxSizeOfInstructions: r.uint16,\n // Maximum byte count for glyph instructions\n maxComponentElements: r.uint16,\n // Maximum number of components referenced at “top level” for any composite glyph\n maxComponentDepth: r.uint16 // Maximum levels of recursion; 1 for simple components\n\n});\n\n/**\n * Gets an encoding name from platform, encoding, and language ids.\n * Returned encoding names can be used in iconv-lite to decode text.\n */\nfunction getEncoding(platformID, encodingID, languageID) {\n if (languageID === void 0) {\n languageID = 0;\n }\n\n if (platformID === 1 && MAC_LANGUAGE_ENCODINGS[languageID]) {\n return MAC_LANGUAGE_ENCODINGS[languageID];\n }\n\n return ENCODINGS[platformID][encodingID];\n} // Map of platform ids to encoding ids.\n\nvar ENCODINGS = [// unicode\n['utf16be', 'utf16be', 'utf16be', 'utf16be', 'utf16be', 'utf16be'], // macintosh\n// Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/\n// 0\tRoman 17\tMalayalam\n// 1\tJapanese\t 18\tSinhalese\n// 2\tTraditional Chinese\t 19\tBurmese\n// 3\tKorean\t 20\tKhmer\n// 4\tArabic\t 21\tThai\n// 5\tHebrew\t 22\tLaotian\n// 6\tGreek\t 23\tGeorgian\n// 7\tRussian\t 24\tArmenian\n// 8\tRSymbol\t 25\tSimplified Chinese\n// 9\tDevanagari\t 26\tTibetan\n// 10\tGurmukhi\t 27\tMongolian\n// 11\tGujarati\t 28\tGeez\n// 12\tOriya\t 29\tSlavic\n// 13\tBengali\t 30\tVietnamese\n// 14\tTamil\t 31\tSindhi\n// 15\tTelugu\t 32\t(Uninterpreted)\n// 16\tKannada\n['macroman', 'shift-jis', 'big5', 'euc-kr', 'iso-8859-6', 'iso-8859-8', 'macgreek', 'maccyrillic', 'symbol', 'Devanagari', 'Gurmukhi', 'Gujarati', 'Oriya', 'Bengali', 'Tamil', 'Telugu', 'Kannada', 'Malayalam', 'Sinhalese', 'Burmese', 'Khmer', 'macthai', 'Laotian', 'Georgian', 'Armenian', 'gb-2312-80', 'Tibetan', 'Mongolian', 'Geez', 'maccenteuro', 'Vietnamese', 'Sindhi'], // ISO (deprecated)\n['ascii'], // windows\n// Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx\n['symbol', 'utf16be', 'shift-jis', 'gb18030', 'big5', 'wansung', 'johab', null, null, null, 'utf16be']]; // Overrides for Mac scripts by language id.\n// See http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/Readme.txt\n\nvar MAC_LANGUAGE_ENCODINGS = {\n 15: 'maciceland',\n 17: 'macturkish',\n 18: 'maccroatian',\n 24: 'maccenteuro',\n 25: 'maccenteuro',\n 26: 'maccenteuro',\n 27: 'maccenteuro',\n 28: 'maccenteuro',\n 30: 'maciceland',\n 37: 'macromania',\n 38: 'maccenteuro',\n 39: 'maccenteuro',\n 40: 'maccenteuro',\n 143: 'macinuit',\n // Unsupported by iconv-lite\n 146: 'macgaelic' // Unsupported by iconv-lite\n\n}; // Map of platform ids to BCP-47 language codes.\n\nvar LANGUAGES = [// unicode\n[], {\n // macintosh\n 0: 'en',\n 30: 'fo',\n 60: 'ks',\n 90: 'rw',\n 1: 'fr',\n 31: 'fa',\n 61: 'ku',\n 91: 'rn',\n 2: 'de',\n 32: 'ru',\n 62: 'sd',\n 92: 'ny',\n 3: 'it',\n 33: 'zh',\n 63: 'bo',\n 93: 'mg',\n 4: 'nl',\n 34: 'nl-BE',\n 64: 'ne',\n 94: 'eo',\n 5: 'sv',\n 35: 'ga',\n 65: 'sa',\n 128: 'cy',\n 6: 'es',\n 36: 'sq',\n 66: 'mr',\n 129: 'eu',\n 7: 'da',\n 37: 'ro',\n 67: 'bn',\n 130: 'ca',\n 8: 'pt',\n 38: 'cz',\n 68: 'as',\n 131: 'la',\n 9: 'no',\n 39: 'sk',\n 69: 'gu',\n 132: 'qu',\n 10: 'he',\n 40: 'si',\n 70: 'pa',\n 133: 'gn',\n 11: 'ja',\n 41: 'yi',\n 71: 'or',\n 134: 'ay',\n 12: 'ar',\n 42: 'sr',\n 72: 'ml',\n 135: 'tt',\n 13: 'fi',\n 43: 'mk',\n 73: 'kn',\n 136: 'ug',\n 14: 'el',\n 44: 'bg',\n 74: 'ta',\n 137: 'dz',\n 15: 'is',\n 45: 'uk',\n 75: 'te',\n 138: 'jv',\n 16: 'mt',\n 46: 'be',\n 76: 'si',\n 139: 'su',\n 17: 'tr',\n 47: 'uz',\n 77: 'my',\n 140: 'gl',\n 18: 'hr',\n 48: 'kk',\n 78: 'km',\n 141: 'af',\n 19: 'zh-Hant',\n 49: 'az-Cyrl',\n 79: 'lo',\n 142: 'br',\n 20: 'ur',\n 50: 'az-Arab',\n 80: 'vi',\n 143: 'iu',\n 21: 'hi',\n 51: 'hy',\n 81: 'id',\n 144: 'gd',\n 22: 'th',\n 52: 'ka',\n 82: 'tl',\n 145: 'gv',\n 23: 'ko',\n 53: 'mo',\n 83: 'ms',\n 146: 'ga',\n 24: 'lt',\n 54: 'ky',\n 84: 'ms-Arab',\n 147: 'to',\n 25: 'pl',\n 55: 'tg',\n 85: 'am',\n 148: 'el-polyton',\n 26: 'hu',\n 56: 'tk',\n 86: 'ti',\n 149: 'kl',\n 27: 'es',\n 57: 'mn-CN',\n 87: 'om',\n 150: 'az',\n 28: 'lv',\n 58: 'mn',\n 88: 'so',\n 151: 'nn',\n 29: 'se',\n 59: 'ps',\n 89: 'sw'\n}, // ISO (deprecated)\n[], {\n // windows \n 0x0436: 'af',\n 0x4009: 'en-IN',\n 0x0487: 'rw',\n 0x0432: 'tn',\n 0x041C: 'sq',\n 0x1809: 'en-IE',\n 0x0441: 'sw',\n 0x045B: 'si',\n 0x0484: 'gsw',\n 0x2009: 'en-JM',\n 0x0457: 'kok',\n 0x041B: 'sk',\n 0x045E: 'am',\n 0x4409: 'en-MY',\n 0x0412: 'ko',\n 0x0424: 'sl',\n 0x1401: 'ar-DZ',\n 0x1409: 'en-NZ',\n 0x0440: 'ky',\n 0x2C0A: 'es-AR',\n 0x3C01: 'ar-BH',\n 0x3409: 'en-PH',\n 0x0454: 'lo',\n 0x400A: 'es-BO',\n 0x0C01: 'ar',\n 0x4809: 'en-SG',\n 0x0426: 'lv',\n 0x340A: 'es-CL',\n 0x0801: 'ar-IQ',\n 0x1C09: 'en-ZA',\n 0x0427: 'lt',\n 0x240A: 'es-CO',\n 0x2C01: 'ar-JO',\n 0x2C09: 'en-TT',\n 0x082E: 'dsb',\n 0x140A: 'es-CR',\n 0x3401: 'ar-KW',\n 0x0809: 'en-GB',\n 0x046E: 'lb',\n 0x1C0A: 'es-DO',\n 0x3001: 'ar-LB',\n 0x0409: 'en',\n 0x042F: 'mk',\n 0x300A: 'es-EC',\n 0x1001: 'ar-LY',\n 0x3009: 'en-ZW',\n 0x083E: 'ms-BN',\n 0x440A: 'es-SV',\n 0x1801: 'ary',\n 0x0425: 'et',\n 0x043E: 'ms',\n 0x100A: 'es-GT',\n 0x2001: 'ar-OM',\n 0x0438: 'fo',\n 0x044C: 'ml',\n 0x480A: 'es-HN',\n 0x4001: 'ar-QA',\n 0x0464: 'fil',\n 0x043A: 'mt',\n 0x080A: 'es-MX',\n 0x0401: 'ar-SA',\n 0x040B: 'fi',\n 0x0481: 'mi',\n 0x4C0A: 'es-NI',\n 0x2801: 'ar-SY',\n 0x080C: 'fr-BE',\n 0x047A: 'arn',\n 0x180A: 'es-PA',\n 0x1C01: 'aeb',\n 0x0C0C: 'fr-CA',\n 0x044E: 'mr',\n 0x3C0A: 'es-PY',\n 0x3801: 'ar-AE',\n 0x040C: 'fr',\n 0x047C: 'moh',\n 0x280A: 'es-PE',\n 0x2401: 'ar-YE',\n 0x140C: 'fr-LU',\n 0x0450: 'mn',\n 0x500A: 'es-PR',\n 0x042B: 'hy',\n 0x180C: 'fr-MC',\n 0x0850: 'mn-CN',\n 0x0C0A: 'es',\n 0x044D: 'as',\n 0x100C: 'fr-CH',\n 0x0461: 'ne',\n 0x040A: 'es',\n 0x082C: 'az-Cyrl',\n 0x0462: 'fy',\n 0x0414: 'nb',\n 0x540A: 'es-US',\n 0x042C: 'az',\n 0x0456: 'gl',\n 0x0814: 'nn',\n 0x380A: 'es-UY',\n 0x046D: 'ba',\n 0x0437: 'ka',\n 0x0482: 'oc',\n 0x200A: 'es-VE',\n 0x042D: 'eu',\n 0x0C07: 'de-AT',\n 0x0448: 'or',\n 0x081D: 'sv-FI',\n 0x0423: 'be',\n 0x0407: 'de',\n 0x0463: 'ps',\n 0x041D: 'sv',\n 0x0845: 'bn',\n 0x1407: 'de-LI',\n 0x0415: 'pl',\n 0x045A: 'syr',\n 0x0445: 'bn-IN',\n 0x1007: 'de-LU',\n 0x0416: 'pt',\n 0x0428: 'tg',\n 0x201A: 'bs-Cyrl',\n 0x0807: 'de-CH',\n 0x0816: 'pt-PT',\n 0x085F: 'tzm',\n 0x141A: 'bs',\n 0x0408: 'el',\n 0x0446: 'pa',\n 0x0449: 'ta',\n 0x047E: 'br',\n 0x046F: 'kl',\n 0x046B: 'qu-BO',\n 0x0444: 'tt',\n 0x0402: 'bg',\n 0x0447: 'gu',\n 0x086B: 'qu-EC',\n 0x044A: 'te',\n 0x0403: 'ca',\n 0x0468: 'ha',\n 0x0C6B: 'qu',\n 0x041E: 'th',\n 0x0C04: 'zh-HK',\n 0x040D: 'he',\n 0x0418: 'ro',\n 0x0451: 'bo',\n 0x1404: 'zh-MO',\n 0x0439: 'hi',\n 0x0417: 'rm',\n 0x041F: 'tr',\n 0x0804: 'zh',\n 0x040E: 'hu',\n 0x0419: 'ru',\n 0x0442: 'tk',\n 0x1004: 'zh-SG',\n 0x040F: 'is',\n 0x243B: 'smn',\n 0x0480: 'ug',\n 0x0404: 'zh-TW',\n 0x0470: 'ig',\n 0x103B: 'smj-NO',\n 0x0422: 'uk',\n 0x0483: 'co',\n 0x0421: 'id',\n 0x143B: 'smj',\n 0x042E: 'hsb',\n 0x041A: 'hr',\n 0x045D: 'iu',\n 0x0C3B: 'se-FI',\n 0x0420: 'ur',\n 0x101A: 'hr-BA',\n 0x085D: 'iu-Latn',\n 0x043B: 'se',\n 0x0843: 'uz-Cyrl',\n 0x0405: 'cs',\n 0x083C: 'ga',\n 0x083B: 'se-SE',\n 0x0443: 'uz',\n 0x0406: 'da',\n 0x0434: 'xh',\n 0x203B: 'sms',\n 0x042A: 'vi',\n 0x048C: 'prs',\n 0x0435: 'zu',\n 0x183B: 'sma-NO',\n 0x0452: 'cy',\n 0x0465: 'dv',\n 0x0410: 'it',\n 0x1C3B: 'sms',\n 0x0488: 'wo',\n 0x0813: 'nl-BE',\n 0x0810: 'it-CH',\n 0x044F: 'sa',\n 0x0485: 'sah',\n 0x0413: 'nl',\n 0x0411: 'ja',\n 0x1C1A: 'sr-Cyrl-BA',\n 0x0478: 'ii',\n 0x0C09: 'en-AU',\n 0x044B: 'kn',\n 0x0C1A: 'sr',\n 0x046A: 'yo',\n 0x2809: 'en-BZ',\n 0x043F: 'kk',\n 0x181A: 'sr-Latn-BA',\n 0x1009: 'en-CA',\n 0x0453: 'km',\n 0x081A: 'sr-Latn',\n 0x2409: 'en-029',\n 0x0486: 'quc',\n 0x046C: 'nso'\n}];\n\nfunction _createForOfIteratorHelperLoose$s(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$s(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$s(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$s(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$s(o, minLen); }\n\nfunction _arrayLikeToArray$s(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar NameRecord = new r.Struct({\n platformID: r.uint16,\n encodingID: r.uint16,\n languageID: r.uint16,\n nameID: r.uint16,\n length: r.uint16,\n string: new r.Pointer(r.uint16, new r.String('length', function (t) {\n return getEncoding(t.platformID, t.encodingID, t.languageID);\n }), {\n type: 'parent',\n relativeTo: 'parent.stringOffset',\n allowNull: false\n })\n});\nvar LangTagRecord = new r.Struct({\n length: r.uint16,\n tag: new r.Pointer(r.uint16, new r.String('length', 'utf16be'), {\n type: 'parent',\n relativeTo: 'stringOffset'\n })\n});\nvar NameTable = new r.VersionedStruct(r.uint16, {\n 0: {\n count: r.uint16,\n stringOffset: r.uint16,\n records: new r.Array(NameRecord, 'count')\n },\n 1: {\n count: r.uint16,\n stringOffset: r.uint16,\n records: new r.Array(NameRecord, 'count'),\n langTagCount: r.uint16,\n langTags: new r.Array(LangTagRecord, 'langTagCount')\n }\n});\nvar NAMES = ['copyright', 'fontFamily', 'fontSubfamily', 'uniqueSubfamily', 'fullName', 'version', 'postscriptName', // Note: A font may have only one PostScript name and that name must be ASCII.\n'trademark', 'manufacturer', 'designer', 'description', 'vendorURL', 'designerURL', 'license', 'licenseURL', null, // reserved\n'preferredFamily', 'preferredSubfamily', 'compatibleFull', 'sampleText', 'postscriptCIDFontName', 'wwsFamilyName', 'wwsSubfamilyName'];\n\nNameTable.process = function (stream) {\n var records = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose$s(this.records), _step; !(_step = _iterator()).done;) {\n var record = _step.value;\n // find out what language this is for\n var language = LANGUAGES[record.platformID][record.languageID];\n\n if (language == null && this.langTags != null && record.languageID >= 0x8000) {\n language = this.langTags[record.languageID - 0x8000].tag;\n }\n\n if (language == null) {\n language = record.platformID + '-' + record.languageID;\n } // if the nameID is >= 256, it is a font feature record (AAT)\n\n\n var key = record.nameID >= 256 ? 'fontFeatures' : NAMES[record.nameID] || record.nameID;\n\n if (records[key] == null) {\n records[key] = {};\n }\n\n var obj = records[key];\n\n if (record.nameID >= 256) {\n obj = obj[record.nameID] || (obj[record.nameID] = {});\n }\n\n if (typeof record.string === 'string' || typeof obj[language] !== 'string') {\n obj[language] = record.string;\n }\n }\n\n this.records = records;\n};\n\nNameTable.preEncode = function () {\n if (Array.isArray(this.records)) return;\n this.version = 0;\n var records = [];\n\n for (var key in this.records) {\n var val = this.records[key];\n if (key === 'fontFeatures') continue;\n records.push({\n platformID: 3,\n encodingID: 1,\n languageID: 0x409,\n nameID: NAMES.indexOf(key),\n length: Buffer.byteLength(val.en, 'utf16le'),\n string: val.en\n });\n\n if (key === 'postscriptName') {\n records.push({\n platformID: 1,\n encodingID: 0,\n languageID: 0,\n nameID: NAMES.indexOf(key),\n length: val.en.length,\n string: val.en\n });\n }\n }\n\n this.records = records;\n this.count = records.length;\n this.stringOffset = NameTable.size(this, null, false);\n};\n\nvar OS2 = new r.VersionedStruct(r.uint16, {\n header: {\n xAvgCharWidth: r.int16,\n // average weighted advance width of lower case letters and space\n usWeightClass: r.uint16,\n // visual weight of stroke in glyphs\n usWidthClass: r.uint16,\n // relative change from the normal aspect ratio (width to height ratio)\n fsType: new r.Bitfield(r.uint16, [// Indicates font embedding licensing rights\n null, 'noEmbedding', 'viewOnly', 'editable', null, null, null, null, 'noSubsetting', 'bitmapOnly']),\n ySubscriptXSize: r.int16,\n // recommended horizontal size in pixels for subscripts\n ySubscriptYSize: r.int16,\n // recommended vertical size in pixels for subscripts\n ySubscriptXOffset: r.int16,\n // recommended horizontal offset for subscripts\n ySubscriptYOffset: r.int16,\n // recommended vertical offset form the baseline for subscripts\n ySuperscriptXSize: r.int16,\n // recommended horizontal size in pixels for superscripts\n ySuperscriptYSize: r.int16,\n // recommended vertical size in pixels for superscripts\n ySuperscriptXOffset: r.int16,\n // recommended horizontal offset for superscripts\n ySuperscriptYOffset: r.int16,\n // recommended vertical offset from the baseline for superscripts\n yStrikeoutSize: r.int16,\n // width of the strikeout stroke\n yStrikeoutPosition: r.int16,\n // position of the strikeout stroke relative to the baseline\n sFamilyClass: r.int16,\n // classification of font-family design\n panose: new r.Array(r.uint8, 10),\n // describe the visual characteristics of a given typeface\n ulCharRange: new r.Array(r.uint32, 4),\n vendorID: new r.String(4),\n // four character identifier for the font vendor\n fsSelection: new r.Bitfield(r.uint16, [// bit field containing information about the font\n 'italic', 'underscore', 'negative', 'outlined', 'strikeout', 'bold', 'regular', 'useTypoMetrics', 'wws', 'oblique']),\n usFirstCharIndex: r.uint16,\n // The minimum Unicode index in this font\n usLastCharIndex: r.uint16 // The maximum Unicode index in this font\n\n },\n // The Apple version of this table ends here, but the Microsoft one continues on...\n 0: {},\n 1: {\n typoAscender: r.int16,\n typoDescender: r.int16,\n typoLineGap: r.int16,\n winAscent: r.uint16,\n winDescent: r.uint16,\n codePageRange: new r.Array(r.uint32, 2)\n },\n 2: {\n // these should be common with version 1 somehow\n typoAscender: r.int16,\n typoDescender: r.int16,\n typoLineGap: r.int16,\n winAscent: r.uint16,\n winDescent: r.uint16,\n codePageRange: new r.Array(r.uint32, 2),\n xHeight: r.int16,\n capHeight: r.int16,\n defaultChar: r.uint16,\n breakChar: r.uint16,\n maxContent: r.uint16\n },\n 5: {\n typoAscender: r.int16,\n typoDescender: r.int16,\n typoLineGap: r.int16,\n winAscent: r.uint16,\n winDescent: r.uint16,\n codePageRange: new r.Array(r.uint32, 2),\n xHeight: r.int16,\n capHeight: r.int16,\n defaultChar: r.uint16,\n breakChar: r.uint16,\n maxContent: r.uint16,\n usLowerOpticalPointSize: r.uint16,\n usUpperOpticalPointSize: r.uint16\n }\n});\nvar versions = OS2.versions;\nversions[3] = versions[4] = versions[2];\n\nvar post = new r.VersionedStruct(r.fixed32, {\n header: {\n // these fields exist at the top of all versions\n italicAngle: r.fixed32,\n // Italic angle in counter-clockwise degrees from the vertical.\n underlinePosition: r.int16,\n // Suggested distance of the top of the underline from the baseline\n underlineThickness: r.int16,\n // Suggested values for the underline thickness\n isFixedPitch: r.uint32,\n // Whether the font is monospaced\n minMemType42: r.uint32,\n // Minimum memory usage when a TrueType font is downloaded as a Type 42 font\n maxMemType42: r.uint32,\n // Maximum memory usage when a TrueType font is downloaded as a Type 42 font\n minMemType1: r.uint32,\n // Minimum memory usage when a TrueType font is downloaded as a Type 1 font\n maxMemType1: r.uint32 // Maximum memory usage when a TrueType font is downloaded as a Type 1 font\n\n },\n 1: {},\n // version 1 has no additional fields\n 2: {\n numberOfGlyphs: r.uint16,\n glyphNameIndex: new r.Array(r.uint16, 'numberOfGlyphs'),\n names: new r.Array(new r.String(r.uint8))\n },\n 2.5: {\n numberOfGlyphs: r.uint16,\n offsets: new r.Array(r.uint8, 'numberOfGlyphs')\n },\n 3: {},\n // version 3 has no additional fields\n 4: {\n map: new r.Array(r.uint32, function (t) {\n return t.parent.maxp.numGlyphs;\n })\n }\n});\n\nvar cvt = new r.Struct({\n controlValues: new r.Array(r.int16)\n});\n\n// These instructions are known as the font program. The main use of this table\n// is for the definition of functions that are used in many different glyph programs.\n\nvar fpgm = new r.Struct({\n instructions: new r.Array(r.uint8)\n});\n\nvar loca = new r.VersionedStruct('head.indexToLocFormat', {\n 0: {\n offsets: new r.Array(r.uint16)\n },\n 1: {\n offsets: new r.Array(r.uint32)\n }\n});\n\nloca.process = function () {\n if (this.version === 0) {\n for (var i = 0; i < this.offsets.length; i++) {\n this.offsets[i] <<= 1;\n }\n }\n};\n\nloca.preEncode = function () {\n if (this.version === 0) {\n for (var i = 0; i < this.offsets.length; i++) {\n this.offsets[i] >>>= 1;\n }\n }\n};\n\nvar prep = new r.Struct({\n controlValueProgram: new r.Array(r.uint8)\n});\n\nvar glyf = new r.Array(new r.Buffer());\n\nfunction _createForOfIteratorHelperLoose$r(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$r(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$r(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$r(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$r(o, minLen); }\n\nfunction _arrayLikeToArray$r(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar CFFIndex = /*#__PURE__*/function () {\n function CFFIndex(type) {\n this.type = type;\n }\n\n var _proto = CFFIndex.prototype;\n\n _proto.getCFFVersion = function getCFFVersion(ctx) {\n while (ctx && !ctx.hdrSize) {\n ctx = ctx.parent;\n }\n\n return ctx ? ctx.version : -1;\n };\n\n _proto.decode = function decode(stream, parent) {\n var version = this.getCFFVersion(parent);\n var count = version >= 2 ? stream.readUInt32BE() : stream.readUInt16BE();\n\n if (count === 0) {\n return [];\n }\n\n var offSize = stream.readUInt8();\n var offsetType;\n\n if (offSize === 1) {\n offsetType = r.uint8;\n } else if (offSize === 2) {\n offsetType = r.uint16;\n } else if (offSize === 3) {\n offsetType = r.uint24;\n } else if (offSize === 4) {\n offsetType = r.uint32;\n } else {\n throw new Error(\"Bad offset size in CFFIndex: \" + offSize + \" \" + stream.pos);\n }\n\n var ret = [];\n var startPos = stream.pos + (count + 1) * offSize - 1;\n var start = offsetType.decode(stream);\n\n for (var i = 0; i < count; i++) {\n var end = offsetType.decode(stream);\n\n if (this.type != null) {\n var pos = stream.pos;\n stream.pos = startPos + start;\n parent.length = end - start;\n ret.push(this.type.decode(stream, parent));\n stream.pos = pos;\n } else {\n ret.push({\n offset: startPos + start,\n length: end - start\n });\n }\n\n start = end;\n }\n\n stream.pos = startPos + start;\n return ret;\n };\n\n _proto.size = function size(arr, parent) {\n var size = 2;\n\n if (arr.length === 0) {\n return size;\n }\n\n var type = this.type || new r.Buffer(); // find maximum offset to detminine offset type\n\n var offset = 1;\n\n for (var i = 0; i < arr.length; i++) {\n var item = arr[i];\n offset += type.size(item, parent);\n }\n\n var offsetType;\n\n if (offset <= 0xff) {\n offsetType = r.uint8;\n } else if (offset <= 0xffff) {\n offsetType = r.uint16;\n } else if (offset <= 0xffffff) {\n offsetType = r.uint24;\n } else if (offset <= 0xffffffff) {\n offsetType = r.uint32;\n } else {\n throw new Error(\"Bad offset in CFFIndex\");\n }\n\n size += 1 + offsetType.size() * (arr.length + 1);\n size += offset - 1;\n return size;\n };\n\n _proto.encode = function encode(stream, arr, parent) {\n stream.writeUInt16BE(arr.length);\n\n if (arr.length === 0) {\n return;\n }\n\n var type = this.type || new r.Buffer(); // find maximum offset to detminine offset type\n\n var sizes = [];\n var offset = 1;\n\n for (var _iterator = _createForOfIteratorHelperLoose$r(arr), _step; !(_step = _iterator()).done;) {\n var item = _step.value;\n var s = type.size(item, parent);\n sizes.push(s);\n offset += s;\n }\n\n var offsetType;\n\n if (offset <= 0xff) {\n offsetType = r.uint8;\n } else if (offset <= 0xffff) {\n offsetType = r.uint16;\n } else if (offset <= 0xffffff) {\n offsetType = r.uint24;\n } else if (offset <= 0xffffffff) {\n offsetType = r.uint32;\n } else {\n throw new Error(\"Bad offset in CFFIndex\");\n } // write offset size\n\n\n stream.writeUInt8(offsetType.size()); // write elements\n\n offset = 1;\n offsetType.encode(stream, offset);\n\n for (var _i = 0, _sizes = sizes; _i < _sizes.length; _i++) {\n var size = _sizes[_i];\n offset += size;\n offsetType.encode(stream, offset);\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$r(arr), _step2; !(_step2 = _iterator2()).done;) {\n var _item = _step2.value;\n type.encode(stream, _item, parent);\n }\n\n return;\n };\n\n return CFFIndex;\n}();\n\nvar FLOAT_EOF = 0xf;\nvar FLOAT_LOOKUP = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\nvar FLOAT_ENCODE_LOOKUP = {\n '.': 10,\n 'E': 11,\n 'E-': 12,\n '-': 14\n};\n\nvar CFFOperand = /*#__PURE__*/function () {\n function CFFOperand() {}\n\n CFFOperand.decode = function decode(stream, value) {\n if (32 <= value && value <= 246) {\n return value - 139;\n }\n\n if (247 <= value && value <= 250) {\n return (value - 247) * 256 + stream.readUInt8() + 108;\n }\n\n if (251 <= value && value <= 254) {\n return -(value - 251) * 256 - stream.readUInt8() - 108;\n }\n\n if (value === 28) {\n return stream.readInt16BE();\n }\n\n if (value === 29) {\n return stream.readInt32BE();\n }\n\n if (value === 30) {\n var str = '';\n\n while (true) {\n var b = stream.readUInt8();\n var n1 = b >> 4;\n\n if (n1 === FLOAT_EOF) {\n break;\n }\n\n str += FLOAT_LOOKUP[n1];\n var n2 = b & 15;\n\n if (n2 === FLOAT_EOF) {\n break;\n }\n\n str += FLOAT_LOOKUP[n2];\n }\n\n return parseFloat(str);\n }\n\n return null;\n };\n\n CFFOperand.size = function size(value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, set to 32768\n if (value.forceLarge) {\n value = 32768;\n }\n\n if ((value | 0) !== value) {\n // floating point\n var str = '' + value;\n return 1 + Math.ceil((str.length + 1) / 2);\n } else if (-107 <= value && value <= 107) {\n return 1;\n } else if (108 <= value && value <= 1131 || -1131 <= value && value <= -108) {\n return 2;\n } else if (-32768 <= value && value <= 32767) {\n return 3;\n } else {\n return 5;\n }\n };\n\n CFFOperand.encode = function encode(stream, value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, save the old value and set to 32768\n var val = Number(value);\n\n if (value.forceLarge) {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n } else if ((val | 0) !== val) {\n // floating point\n stream.writeUInt8(30);\n var str = '' + val;\n\n for (var i = 0; i < str.length; i += 2) {\n var c1 = str[i];\n var n1 = FLOAT_ENCODE_LOOKUP[c1] || +c1;\n\n if (i === str.length - 1) {\n var n2 = FLOAT_EOF;\n } else {\n var c2 = str[i + 1];\n var n2 = FLOAT_ENCODE_LOOKUP[c2] || +c2;\n }\n\n stream.writeUInt8(n1 << 4 | n2 & 15);\n }\n\n if (n2 !== FLOAT_EOF) {\n return stream.writeUInt8(FLOAT_EOF << 4);\n }\n } else if (-107 <= val && val <= 107) {\n return stream.writeUInt8(val + 139);\n } else if (108 <= val && val <= 1131) {\n val -= 108;\n stream.writeUInt8((val >> 8) + 247);\n return stream.writeUInt8(val & 0xff);\n } else if (-1131 <= val && val <= -108) {\n val = -val - 108;\n stream.writeUInt8((val >> 8) + 251);\n return stream.writeUInt8(val & 0xff);\n } else if (-32768 <= val && val <= 32767) {\n stream.writeUInt8(28);\n return stream.writeInt16BE(val);\n } else {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n }\n };\n\n return CFFOperand;\n}();\n\nfunction _createForOfIteratorHelperLoose$q(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$q(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$q(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$q(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$q(o, minLen); }\n\nfunction _arrayLikeToArray$q(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar CFFDict = /*#__PURE__*/function () {\n function CFFDict(ops) {\n if (ops === void 0) {\n ops = [];\n }\n\n this.ops = ops;\n this.fields = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose$q(ops), _step; !(_step = _iterator()).done;) {\n var field = _step.value;\n var key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];\n this.fields[key] = field;\n }\n }\n\n var _proto = CFFDict.prototype;\n\n _proto.decodeOperands = function decodeOperands(type, stream, ret, operands) {\n var _this = this;\n\n if (Array.isArray(type)) {\n return operands.map(function (op, i) {\n return _this.decodeOperands(type[i], stream, ret, [op]);\n });\n } else if (type.decode != null) {\n return type.decode(stream, ret, operands);\n } else {\n switch (type) {\n case 'number':\n case 'offset':\n case 'sid':\n return operands[0];\n\n case 'boolean':\n return !!operands[0];\n\n default:\n return operands;\n }\n }\n };\n\n _proto.encodeOperands = function encodeOperands(type, stream, ctx, operands) {\n var _this2 = this;\n\n if (Array.isArray(type)) {\n return operands.map(function (op, i) {\n return _this2.encodeOperands(type[i], stream, ctx, op)[0];\n });\n } else if (type.encode != null) {\n return type.encode(stream, operands, ctx);\n } else if (typeof operands === 'number') {\n return [operands];\n } else if (typeof operands === 'boolean') {\n return [+operands];\n } else if (Array.isArray(operands)) {\n return operands;\n } else {\n return [operands];\n }\n };\n\n _proto.decode = function decode(stream, parent) {\n var end = stream.pos + parent.length;\n var ret = {};\n var operands = []; // define hidden properties\n\n Object.defineProperties(ret, {\n parent: {\n value: parent\n },\n _startOffset: {\n value: stream.pos\n }\n }); // fill in defaults\n\n for (var key in this.fields) {\n var field = this.fields[key];\n ret[field[1]] = field[3];\n }\n\n while (stream.pos < end) {\n var b = stream.readUInt8();\n\n if (b < 28) {\n if (b === 12) {\n b = b << 8 | stream.readUInt8();\n }\n\n var _field = this.fields[b];\n\n if (!_field) {\n throw new Error(\"Unknown operator \" + b);\n }\n\n var val = this.decodeOperands(_field[2], stream, ret, operands);\n\n if (val != null) {\n if (val instanceof PropertyDescriptor) {\n Object.defineProperty(ret, _field[1], val);\n } else {\n ret[_field[1]] = val;\n }\n }\n\n operands = [];\n } else {\n operands.push(CFFOperand.decode(stream, b));\n }\n }\n\n return ret;\n };\n\n _proto.size = function size(dict, parent, includePointers) {\n if (includePointers === void 0) {\n includePointers = true;\n }\n\n var ctx = {\n parent: parent,\n val: dict,\n pointerSize: 0,\n startOffset: parent.startOffset || 0\n };\n var len = 0;\n\n for (var k in this.fields) {\n var field = this.fields[k];\n var val = dict[field[1]];\n\n if (val == null || isEqual(val, field[3])) {\n continue;\n }\n\n var operands = this.encodeOperands(field[2], null, ctx, val);\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$q(operands), _step2; !(_step2 = _iterator2()).done;) {\n var op = _step2.value;\n len += CFFOperand.size(op);\n }\n\n var key = Array.isArray(field[0]) ? field[0] : [field[0]];\n len += key.length;\n }\n\n if (includePointers) {\n len += ctx.pointerSize;\n }\n\n return len;\n };\n\n _proto.encode = function encode(stream, dict, parent) {\n var ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent,\n val: dict,\n pointerSize: 0\n };\n ctx.pointerOffset = stream.pos + this.size(dict, ctx, false);\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$q(this.ops), _step3; !(_step3 = _iterator3()).done;) {\n var field = _step3.value;\n var val = dict[field[1]];\n\n if (val == null || isEqual(val, field[3])) {\n continue;\n }\n\n var operands = this.encodeOperands(field[2], stream, ctx, val);\n\n for (var _iterator4 = _createForOfIteratorHelperLoose$q(operands), _step4; !(_step4 = _iterator4()).done;) {\n var op = _step4.value;\n CFFOperand.encode(stream, op);\n }\n\n var key = Array.isArray(field[0]) ? field[0] : [field[0]];\n\n for (var _iterator5 = _createForOfIteratorHelperLoose$q(key), _step5; !(_step5 = _iterator5()).done;) {\n var _op = _step5.value;\n stream.writeUInt8(_op);\n }\n }\n\n var i = 0;\n\n while (i < ctx.pointers.length) {\n var ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n\n return;\n };\n\n return CFFDict;\n}();\n\nvar CFFPointer = /*#__PURE__*/function (_r$Pointer) {\n _inheritsLoose(CFFPointer, _r$Pointer);\n\n function CFFPointer(type, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.type == null) {\n options.type = 'global';\n }\n\n return _r$Pointer.call(this, null, type, options) || this;\n }\n\n var _proto = CFFPointer.prototype;\n\n _proto.decode = function decode(stream, parent, operands) {\n this.offsetType = {\n decode: function decode() {\n return operands[0];\n }\n };\n return _r$Pointer.prototype.decode.call(this, stream, parent, operands);\n };\n\n _proto.encode = function encode(stream, value, ctx) {\n if (!stream) {\n // compute the size (so ctx.pointerSize is correct)\n this.offsetType = {\n size: function size() {\n return 0;\n }\n };\n this.size(value, ctx);\n return [new Ptr(0)];\n }\n\n var ptr = null;\n this.offsetType = {\n encode: function encode(stream, val) {\n return ptr = val;\n }\n };\n\n _r$Pointer.prototype.encode.call(this, stream, value, ctx);\n\n return [new Ptr(ptr)];\n };\n\n return CFFPointer;\n}(r.Pointer);\n\nvar Ptr = /*#__PURE__*/function () {\n function Ptr(val) {\n this.val = val;\n this.forceLarge = true;\n }\n\n var _proto2 = Ptr.prototype;\n\n _proto2.valueOf = function valueOf() {\n return this.val;\n };\n\n return Ptr;\n}();\n\nvar CFFBlendOp = /*#__PURE__*/function () {\n function CFFBlendOp() {}\n\n CFFBlendOp.decode = function decode(stream, parent, operands) {\n var numBlends = operands.pop(); // TODO: actually blend. For now just consume the deltas\n // since we don't use any of the values anyway.\n\n while (operands.length > numBlends) {\n operands.pop();\n }\n };\n\n return CFFBlendOp;\n}();\n\nvar CFFPrivateDict = new CFFDict([// key name type default\n[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'number', 0.039625], [[12, 10], 'BlueShift', 'number', 7], [[12, 11], 'BlueFuzz', 'number', 1], [10, 'StdHW', 'number', null], [11, 'StdVW', 'number', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'boolean', false], [[12, 17], 'LanguageGroup', 'number', 0], [[12, 18], 'ExpansionFactor', 'number', 0.06], [[12, 19], 'initialRandomSeed', 'number', 0], [20, 'defaultWidthX', 'number', 0], [21, 'nominalWidthX', 'number', 0], [22, 'vsindex', 'number', 0], [23, 'blend', CFFBlendOp, null], [19, 'Subrs', new CFFPointer(new CFFIndex(), {\n type: 'local'\n}), null]]);\n\n// Automatically generated from Appendix A of the CFF specification; do\n// not edit. Length should be 391.\nvar standardStrings = [\".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\", \"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\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"quoteleft\", \"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\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\", \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\", \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\", \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\", \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"];\n\nvar StandardEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', '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', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', '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', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls'];\nvar ExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\n\nvar ISOAdobeCharset = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', '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', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', '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', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron'];\nvar ExpertCharset = ['.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\nvar ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior'];\n\n// Scripts and Languages #\n//########################\n\nvar LangSysTable = new r.Struct({\n reserved: new r.Reserved(r.uint16),\n reqFeatureIndex: r.uint16,\n featureCount: r.uint16,\n featureIndexes: new r.Array(r.uint16, 'featureCount')\n});\nvar LangSysRecord = new r.Struct({\n tag: new r.String(4),\n langSys: new r.Pointer(r.uint16, LangSysTable, {\n type: 'parent'\n })\n});\nvar Script = new r.Struct({\n defaultLangSys: new r.Pointer(r.uint16, LangSysTable),\n count: r.uint16,\n langSysRecords: new r.Array(LangSysRecord, 'count')\n});\nvar ScriptRecord = new r.Struct({\n tag: new r.String(4),\n script: new r.Pointer(r.uint16, Script, {\n type: 'parent'\n })\n});\nvar ScriptList = new r.Array(ScriptRecord, r.uint16); //#######################\n// Features and Lookups #\n//#######################\n\nvar Feature = new r.Struct({\n featureParams: r.uint16,\n // pointer\n lookupCount: r.uint16,\n lookupListIndexes: new r.Array(r.uint16, 'lookupCount')\n});\nvar FeatureRecord = new r.Struct({\n tag: new r.String(4),\n feature: new r.Pointer(r.uint16, Feature, {\n type: 'parent'\n })\n});\nvar FeatureList = new r.Array(FeatureRecord, r.uint16);\nvar LookupFlags = new r.Struct({\n markAttachmentType: r.uint8,\n flags: new r.Bitfield(r.uint8, ['rightToLeft', 'ignoreBaseGlyphs', 'ignoreLigatures', 'ignoreMarks', 'useMarkFilteringSet'])\n});\nfunction LookupList(SubTable) {\n var Lookup = new r.Struct({\n lookupType: r.uint16,\n flags: LookupFlags,\n subTableCount: r.uint16,\n subTables: new r.Array(new r.Pointer(r.uint16, SubTable), 'subTableCount'),\n markFilteringSet: new r.Optional(r.uint16, function (t) {\n return t.flags.flags.useMarkFilteringSet;\n })\n });\n return new r.LazyArray(new r.Pointer(r.uint16, Lookup), r.uint16);\n} //#################\n// Coverage Table #\n//#################\n\nvar RangeRecord = new r.Struct({\n start: r.uint16,\n end: r.uint16,\n startCoverageIndex: r.uint16\n});\nvar Coverage = new r.VersionedStruct(r.uint16, {\n 1: {\n glyphCount: r.uint16,\n glyphs: new r.Array(r.uint16, 'glyphCount')\n },\n 2: {\n rangeCount: r.uint16,\n rangeRecords: new r.Array(RangeRecord, 'rangeCount')\n }\n}); //#########################\n// Class Definition Table #\n//#########################\n\nvar ClassRangeRecord = new r.Struct({\n start: r.uint16,\n end: r.uint16,\n class: r.uint16\n});\nvar ClassDef = new r.VersionedStruct(r.uint16, {\n 1: {\n // Class array\n startGlyph: r.uint16,\n glyphCount: r.uint16,\n classValueArray: new r.Array(r.uint16, 'glyphCount')\n },\n 2: {\n // Class ranges\n classRangeCount: r.uint16,\n classRangeRecord: new r.Array(ClassRangeRecord, 'classRangeCount')\n }\n}); //###############\n// Device Table #\n//###############\n\nvar Device = new r.Struct({\n a: r.uint16,\n // startSize for hinting Device, outerIndex for VariationIndex\n b: r.uint16,\n // endSize for Device, innerIndex for VariationIndex\n deltaFormat: r.uint16\n}); //#############################################\n// Contextual Substitution/Positioning Tables #\n//#############################################\n\nvar LookupRecord = new r.Struct({\n sequenceIndex: r.uint16,\n lookupListIndex: r.uint16\n});\nvar Rule = new r.Struct({\n glyphCount: r.uint16,\n lookupCount: r.uint16,\n input: new r.Array(r.uint16, function (t) {\n return t.glyphCount - 1;\n }),\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\nvar RuleSet = new r.Array(new r.Pointer(r.uint16, Rule), r.uint16);\nvar ClassRule = new r.Struct({\n glyphCount: r.uint16,\n lookupCount: r.uint16,\n classes: new r.Array(r.uint16, function (t) {\n return t.glyphCount - 1;\n }),\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\nvar ClassSet = new r.Array(new r.Pointer(r.uint16, ClassRule), r.uint16);\nvar Context = new r.VersionedStruct(r.uint16, {\n 1: {\n // Simple context\n coverage: new r.Pointer(r.uint16, Coverage),\n ruleSetCount: r.uint16,\n ruleSets: new r.Array(new r.Pointer(r.uint16, RuleSet), 'ruleSetCount')\n },\n 2: {\n // Class-based context\n coverage: new r.Pointer(r.uint16, Coverage),\n classDef: new r.Pointer(r.uint16, ClassDef),\n classSetCnt: r.uint16,\n classSet: new r.Array(new r.Pointer(r.uint16, ClassSet), 'classSetCnt')\n },\n 3: {\n glyphCount: r.uint16,\n lookupCount: r.uint16,\n coverages: new r.Array(new r.Pointer(r.uint16, Coverage), 'glyphCount'),\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n }\n}); //######################################################\n// Chaining Contextual Substitution/Positioning Tables #\n//######################################################\n\nvar ChainRule = new r.Struct({\n backtrackGlyphCount: r.uint16,\n backtrack: new r.Array(r.uint16, 'backtrackGlyphCount'),\n inputGlyphCount: r.uint16,\n input: new r.Array(r.uint16, function (t) {\n return t.inputGlyphCount - 1;\n }),\n lookaheadGlyphCount: r.uint16,\n lookahead: new r.Array(r.uint16, 'lookaheadGlyphCount'),\n lookupCount: r.uint16,\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n});\nvar ChainRuleSet = new r.Array(new r.Pointer(r.uint16, ChainRule), r.uint16);\nvar ChainingContext = new r.VersionedStruct(r.uint16, {\n 1: {\n // Simple context glyph substitution\n coverage: new r.Pointer(r.uint16, Coverage),\n chainCount: r.uint16,\n chainRuleSets: new r.Array(new r.Pointer(r.uint16, ChainRuleSet), 'chainCount')\n },\n 2: {\n // Class-based chaining context\n coverage: new r.Pointer(r.uint16, Coverage),\n backtrackClassDef: new r.Pointer(r.uint16, ClassDef),\n inputClassDef: new r.Pointer(r.uint16, ClassDef),\n lookaheadClassDef: new r.Pointer(r.uint16, ClassDef),\n chainCount: r.uint16,\n chainClassSet: new r.Array(new r.Pointer(r.uint16, ChainRuleSet), 'chainCount')\n },\n 3: {\n // Coverage-based chaining context\n backtrackGlyphCount: r.uint16,\n backtrackCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'backtrackGlyphCount'),\n inputGlyphCount: r.uint16,\n inputCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'inputGlyphCount'),\n lookaheadGlyphCount: r.uint16,\n lookaheadCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'lookaheadGlyphCount'),\n lookupCount: r.uint16,\n lookupRecords: new r.Array(LookupRecord, 'lookupCount')\n }\n});\n\nvar _;\n/*******************\n * Variation Store *\n *******************/\n\nvar F2DOT14 = new r.Fixed(16, 'BE', 14);\nvar RegionAxisCoordinates = new r.Struct({\n startCoord: F2DOT14,\n peakCoord: F2DOT14,\n endCoord: F2DOT14\n});\nvar VariationRegionList = new r.Struct({\n axisCount: r.uint16,\n regionCount: r.uint16,\n variationRegions: new r.Array(new r.Array(RegionAxisCoordinates, 'axisCount'), 'regionCount')\n});\nvar DeltaSet = new r.Struct({\n shortDeltas: new r.Array(r.int16, function (t) {\n return t.parent.shortDeltaCount;\n }),\n regionDeltas: new r.Array(r.int8, function (t) {\n return t.parent.regionIndexCount - t.parent.shortDeltaCount;\n }),\n deltas: function deltas(t) {\n return t.shortDeltas.concat(t.regionDeltas);\n }\n});\nvar ItemVariationData = new r.Struct({\n itemCount: r.uint16,\n shortDeltaCount: r.uint16,\n regionIndexCount: r.uint16,\n regionIndexes: new r.Array(r.uint16, 'regionIndexCount'),\n deltaSets: new r.Array(DeltaSet, 'itemCount')\n});\nvar ItemVariationStore = new r.Struct({\n format: r.uint16,\n variationRegionList: new r.Pointer(r.uint32, VariationRegionList),\n variationDataCount: r.uint16,\n itemVariationData: new r.Array(new r.Pointer(r.uint32, ItemVariationData), 'variationDataCount')\n});\n/**********************\n * Feature Variations *\n **********************/\n\nvar ConditionTable = new r.VersionedStruct(r.uint16, {\n 1: (_ = {\n axisIndex: r.uint16\n }, _[\"axisIndex\"] = r.uint16, _.filterRangeMinValue = F2DOT14, _.filterRangeMaxValue = F2DOT14, _)\n});\nvar ConditionSet = new r.Struct({\n conditionCount: r.uint16,\n conditionTable: new r.Array(new r.Pointer(r.uint32, ConditionTable), 'conditionCount')\n});\nvar FeatureTableSubstitutionRecord = new r.Struct({\n featureIndex: r.uint16,\n alternateFeatureTable: new r.Pointer(r.uint32, Feature, {\n type: 'parent'\n })\n});\nvar FeatureTableSubstitution = new r.Struct({\n version: r.fixed32,\n substitutionCount: r.uint16,\n substitutions: new r.Array(FeatureTableSubstitutionRecord, 'substitutionCount')\n});\nvar FeatureVariationRecord = new r.Struct({\n conditionSet: new r.Pointer(r.uint32, ConditionSet, {\n type: 'parent'\n }),\n featureTableSubstitution: new r.Pointer(r.uint32, FeatureTableSubstitution, {\n type: 'parent'\n })\n});\nvar FeatureVariations = new r.Struct({\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n featureVariationRecordCount: r.uint32,\n featureVariationRecords: new r.Array(FeatureVariationRecord, 'featureVariationRecordCount')\n});\n\n// otherwise delegates to the provided type.\n\nvar PredefinedOp = /*#__PURE__*/function () {\n function PredefinedOp(predefinedOps, type) {\n this.predefinedOps = predefinedOps;\n this.type = type;\n }\n\n var _proto = PredefinedOp.prototype;\n\n _proto.decode = function decode(stream, parent, operands) {\n if (this.predefinedOps[operands[0]]) {\n return this.predefinedOps[operands[0]];\n }\n\n return this.type.decode(stream, parent, operands);\n };\n\n _proto.size = function size(value, ctx) {\n return this.type.size(value, ctx);\n };\n\n _proto.encode = function encode(stream, value, ctx) {\n var index = this.predefinedOps.indexOf(value);\n\n if (index !== -1) {\n return index;\n }\n\n return this.type.encode(stream, value, ctx);\n };\n\n return PredefinedOp;\n}();\n\nvar CFFEncodingVersion = /*#__PURE__*/function (_r$Number) {\n _inheritsLoose(CFFEncodingVersion, _r$Number);\n\n function CFFEncodingVersion() {\n return _r$Number.call(this, 'UInt8') || this;\n }\n\n var _proto2 = CFFEncodingVersion.prototype;\n\n _proto2.decode = function decode(stream) {\n return r.uint8.decode(stream) & 0x7f;\n };\n\n return CFFEncodingVersion;\n}(r.Number);\n\nvar Range1 = new r.Struct({\n first: r.uint16,\n nLeft: r.uint8\n});\nvar Range2 = new r.Struct({\n first: r.uint16,\n nLeft: r.uint16\n});\nvar CFFCustomEncoding = new r.VersionedStruct(new CFFEncodingVersion(), {\n 0: {\n nCodes: r.uint8,\n codes: new r.Array(r.uint8, 'nCodes')\n },\n 1: {\n nRanges: r.uint8,\n ranges: new r.Array(Range1, 'nRanges')\n } // TODO: supplement?\n\n});\nvar CFFEncoding = new PredefinedOp([StandardEncoding, ExpertEncoding], new CFFPointer(CFFCustomEncoding, {\n lazy: true\n})); // Decodes an array of ranges until the total\n// length is equal to the provided length.\n\nvar RangeArray = /*#__PURE__*/function (_r$Array) {\n _inheritsLoose(RangeArray, _r$Array);\n\n function RangeArray() {\n return _r$Array.apply(this, arguments) || this;\n }\n\n var _proto3 = RangeArray.prototype;\n\n _proto3.decode = function decode(stream, parent) {\n var length = resolveLength(this.length, stream, parent);\n var count = 0;\n var res = [];\n\n while (count < length) {\n var range = this.type.decode(stream, parent);\n range.offset = count;\n count += range.nLeft + 1;\n res.push(range);\n }\n\n return res;\n };\n\n return RangeArray;\n}(r.Array);\n\nvar CFFCustomCharset = new r.VersionedStruct(r.uint8, {\n 0: {\n glyphs: new r.Array(r.uint16, function (t) {\n return t.parent.CharStrings.length - 1;\n })\n },\n 1: {\n ranges: new RangeArray(Range1, function (t) {\n return t.parent.CharStrings.length - 1;\n })\n },\n 2: {\n ranges: new RangeArray(Range2, function (t) {\n return t.parent.CharStrings.length - 1;\n })\n }\n});\nvar CFFCharset = new PredefinedOp([ISOAdobeCharset, ExpertCharset, ExpertSubsetCharset], new CFFPointer(CFFCustomCharset, {\n lazy: true\n}));\nvar FDRange3 = new r.Struct({\n first: r.uint16,\n fd: r.uint8\n});\nvar FDRange4 = new r.Struct({\n first: r.uint32,\n fd: r.uint16\n});\nvar FDSelect = new r.VersionedStruct(r.uint8, {\n 0: {\n fds: new r.Array(r.uint8, function (t) {\n return t.parent.CharStrings.length;\n })\n },\n 3: {\n nRanges: r.uint16,\n ranges: new r.Array(FDRange3, 'nRanges'),\n sentinel: r.uint16\n },\n 4: {\n nRanges: r.uint32,\n ranges: new r.Array(FDRange4, 'nRanges'),\n sentinel: r.uint32\n }\n});\nvar ptr = new CFFPointer(CFFPrivateDict);\n\nvar CFFPrivateOp = /*#__PURE__*/function () {\n function CFFPrivateOp() {}\n\n var _proto4 = CFFPrivateOp.prototype;\n\n _proto4.decode = function decode(stream, parent, operands) {\n parent.length = operands[0];\n return ptr.decode(stream, parent, [operands[1]]);\n };\n\n _proto4.size = function size(dict, ctx) {\n return [CFFPrivateDict.size(dict, ctx, false), ptr.size(dict, ctx)[0]];\n };\n\n _proto4.encode = function encode(stream, dict, ctx) {\n return [CFFPrivateDict.size(dict, ctx, false), ptr.encode(stream, dict, ctx)[0]];\n };\n\n return CFFPrivateOp;\n}();\n\nvar FontDict = new CFFDict([// key name type(s) default\n[18, 'Private', new CFFPrivateOp(), null], [[12, 38], 'FontName', 'sid', null], [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]], [[12, 5], 'PaintType', 'number', 0]]);\nvar CFFTopDict = new CFFDict([// key name type(s) default\n[[12, 30], 'ROS', ['sid', 'sid', 'number'], null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'boolean', false], [[12, 2], 'ItalicAngle', 'number', 0], [[12, 3], 'UnderlinePosition', 'number', -100], [[12, 4], 'UnderlineThickness', 'number', 50], [[12, 5], 'PaintType', 'number', 0], [[12, 6], 'CharstringType', 'number', 2], [[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'number', null], [5, 'FontBBox', 'array', [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'number', 0], [14, 'XUID', 'array', null], [15, 'charset', CFFCharset, ISOAdobeCharset], [16, 'Encoding', CFFEncoding, StandardEncoding], [17, 'CharStrings', new CFFPointer(new CFFIndex()), null], [18, 'Private', new CFFPrivateOp(), null], [[12, 20], 'SyntheticBase', 'number', null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], // CID font specific\n[[12, 31], 'CIDFontVersion', 'number', 0], [[12, 32], 'CIDFontRevision', 'number', 0], [[12, 33], 'CIDFontType', 'number', 0], [[12, 34], 'CIDCount', 'number', 8720], [[12, 35], 'UIDBase', 'number', null], [[12, 37], 'FDSelect', new CFFPointer(FDSelect), null], [[12, 36], 'FDArray', new CFFPointer(new CFFIndex(FontDict)), null], [[12, 38], 'FontName', 'sid', null]]);\nvar VariationStore = new r.Struct({\n length: r.uint16,\n itemVariationStore: ItemVariationStore\n});\nvar CFF2TopDict = new CFFDict([[[12, 7], 'FontMatrix', 'array', [0.001, 0, 0, 0.001, 0, 0]], [17, 'CharStrings', new CFFPointer(new CFFIndex()), null], [[12, 37], 'FDSelect', new CFFPointer(FDSelect), null], [[12, 36], 'FDArray', new CFFPointer(new CFFIndex(FontDict)), null], [24, 'vstore', new CFFPointer(VariationStore), null], [25, 'maxstack', 'number', 193]]);\nvar CFFTop = new r.VersionedStruct(r.fixed16, {\n 1: {\n hdrSize: r.uint8,\n offSize: r.uint8,\n nameIndex: new CFFIndex(new r.String('length')),\n topDictIndex: new CFFIndex(CFFTopDict),\n stringIndex: new CFFIndex(new r.String('length')),\n globalSubrIndex: new CFFIndex()\n },\n 2: {\n hdrSize: r.uint8,\n length: r.uint16,\n topDict: CFF2TopDict,\n globalSubrIndex: new CFFIndex()\n }\n});\n\nvar CFFFont = /*#__PURE__*/function () {\n function CFFFont(stream) {\n this.stream = stream;\n this.decode();\n }\n\n CFFFont.decode = function decode(stream) {\n return new CFFFont(stream);\n };\n\n var _proto = CFFFont.prototype;\n\n _proto.decode = function decode() {\n this.stream.pos;\n var top = CFFTop.decode(this.stream);\n\n for (var key in top) {\n var val = top[key];\n this[key] = val;\n }\n\n if (this.version < 2) {\n if (this.topDictIndex.length !== 1) {\n throw new Error(\"Only a single font is allowed in CFF\");\n }\n\n this.topDict = this.topDictIndex[0];\n }\n\n this.isCIDFont = this.topDict.ROS != null;\n return this;\n };\n\n _proto.string = function string(sid) {\n if (this.version >= 2) {\n return null;\n }\n\n if (sid < standardStrings.length) {\n return standardStrings[sid];\n }\n\n return this.stringIndex[sid - standardStrings.length];\n };\n\n _proto.getCharString = function getCharString(glyph) {\n this.stream.pos = this.topDict.CharStrings[glyph].offset;\n return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);\n };\n\n _proto.getGlyphName = function getGlyphName(gid) {\n // CFF2 glyph names are in the post table.\n if (this.version >= 2) {\n return null;\n } // CID-keyed fonts don't have glyph names\n\n\n if (this.isCIDFont) {\n return null;\n }\n\n var charset = this.topDict.charset;\n\n if (Array.isArray(charset)) {\n return charset[gid];\n }\n\n if (gid === 0) {\n return '.notdef';\n }\n\n gid -= 1;\n\n switch (charset.version) {\n case 0:\n return this.string(charset.glyphs[gid]);\n\n case 1:\n case 2:\n for (var i = 0; i < charset.ranges.length; i++) {\n var range = charset.ranges[i];\n\n if (range.offset <= gid && gid <= range.offset + range.nLeft) {\n return this.string(range.first + (gid - range.offset));\n }\n }\n\n break;\n }\n\n return null;\n };\n\n _proto.fdForGlyph = function fdForGlyph(gid) {\n if (!this.topDict.FDSelect) {\n return null;\n }\n\n switch (this.topDict.FDSelect.version) {\n case 0:\n return this.topDict.FDSelect.fds[gid];\n\n case 3:\n case 4:\n var ranges = this.topDict.FDSelect.ranges;\n var low = 0;\n var high = ranges.length - 1;\n\n while (low <= high) {\n var mid = low + high >> 1;\n\n if (gid < ranges[mid].first) {\n high = mid - 1;\n } else if (mid < high && gid >= ranges[mid + 1].first) {\n low = mid + 1;\n } else {\n return ranges[mid].fd;\n }\n }\n\n default:\n throw new Error(\"Unknown FDSelect version: \" + this.topDict.FDSelect.version);\n }\n };\n\n _proto.privateDictForGlyph = function privateDictForGlyph(gid) {\n if (this.topDict.FDSelect) {\n var fd = this.fdForGlyph(gid);\n\n if (this.topDict.FDArray[fd]) {\n return this.topDict.FDArray[fd].Private;\n }\n\n return null;\n }\n\n if (this.version < 2) {\n return this.topDict.Private;\n }\n\n return this.topDict.FDArray[0].Private;\n };\n\n _createClass(CFFFont, [{\n key: \"postscriptName\",\n get: function get() {\n if (this.version < 2) {\n return this.nameIndex[0];\n }\n\n return null;\n }\n }, {\n key: \"fullName\",\n get: function get() {\n return this.string(this.topDict.FullName);\n }\n }, {\n key: \"familyName\",\n get: function get() {\n return this.string(this.topDict.FamilyName);\n }\n }]);\n\n return CFFFont;\n}();\n\nvar VerticalOrigin = new r.Struct({\n glyphIndex: r.uint16,\n vertOriginY: r.int16\n});\nvar VORG = new r.Struct({\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n defaultVertOriginY: r.int16,\n numVertOriginYMetrics: r.uint16,\n metrics: new r.Array(VerticalOrigin, 'numVertOriginYMetrics')\n});\n\nvar BigMetrics = new r.Struct({\n height: r.uint8,\n width: r.uint8,\n horiBearingX: r.int8,\n horiBearingY: r.int8,\n horiAdvance: r.uint8,\n vertBearingX: r.int8,\n vertBearingY: r.int8,\n vertAdvance: r.uint8\n});\nvar SmallMetrics = new r.Struct({\n height: r.uint8,\n width: r.uint8,\n bearingX: r.int8,\n bearingY: r.int8,\n advance: r.uint8\n});\nvar EBDTComponent = new r.Struct({\n glyph: r.uint16,\n xOffset: r.int8,\n yOffset: r.int8\n});\n\nvar ByteAligned = function ByteAligned() {};\n\nvar BitAligned = function BitAligned() {};\n\nnew r.VersionedStruct('version', {\n 1: {\n metrics: SmallMetrics,\n data: ByteAligned\n },\n 2: {\n metrics: SmallMetrics,\n data: BitAligned\n },\n // format 3 is deprecated\n // format 4 is not supported by Microsoft\n 5: {\n data: BitAligned\n },\n 6: {\n metrics: BigMetrics,\n data: ByteAligned\n },\n 7: {\n metrics: BigMetrics,\n data: BitAligned\n },\n 8: {\n metrics: SmallMetrics,\n pad: new r.Reserved(r.uint8),\n numComponents: r.uint16,\n components: new r.Array(EBDTComponent, 'numComponents')\n },\n 9: {\n metrics: BigMetrics,\n pad: new r.Reserved(r.uint8),\n numComponents: r.uint16,\n components: new r.Array(EBDTComponent, 'numComponents')\n },\n 17: {\n metrics: SmallMetrics,\n dataLen: r.uint32,\n data: new r.Buffer('dataLen')\n },\n 18: {\n metrics: BigMetrics,\n dataLen: r.uint32,\n data: new r.Buffer('dataLen')\n },\n 19: {\n dataLen: r.uint32,\n data: new r.Buffer('dataLen')\n }\n});\n\nvar SBitLineMetrics = new r.Struct({\n ascender: r.int8,\n descender: r.int8,\n widthMax: r.uint8,\n caretSlopeNumerator: r.int8,\n caretSlopeDenominator: r.int8,\n caretOffset: r.int8,\n minOriginSB: r.int8,\n minAdvanceSB: r.int8,\n maxBeforeBL: r.int8,\n minAfterBL: r.int8,\n pad: new r.Reserved(r.int8, 2)\n});\nvar CodeOffsetPair = new r.Struct({\n glyphCode: r.uint16,\n offset: r.uint16\n});\nvar IndexSubtable = new r.VersionedStruct(r.uint16, {\n header: {\n imageFormat: r.uint16,\n imageDataOffset: r.uint32\n },\n 1: {\n offsetArray: new r.Array(r.uint32, function (t) {\n return t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1;\n })\n },\n 2: {\n imageSize: r.uint32,\n bigMetrics: BigMetrics\n },\n 3: {\n offsetArray: new r.Array(r.uint16, function (t) {\n return t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1;\n })\n },\n 4: {\n numGlyphs: r.uint32,\n glyphArray: new r.Array(CodeOffsetPair, function (t) {\n return t.numGlyphs + 1;\n })\n },\n 5: {\n imageSize: r.uint32,\n bigMetrics: BigMetrics,\n numGlyphs: r.uint32,\n glyphCodeArray: new r.Array(r.uint16, 'numGlyphs')\n }\n});\nvar IndexSubtableArray = new r.Struct({\n firstGlyphIndex: r.uint16,\n lastGlyphIndex: r.uint16,\n subtable: new r.Pointer(r.uint32, IndexSubtable)\n});\nvar BitmapSizeTable = new r.Struct({\n indexSubTableArray: new r.Pointer(r.uint32, new r.Array(IndexSubtableArray, 1), {\n type: 'parent'\n }),\n indexTablesSize: r.uint32,\n numberOfIndexSubTables: r.uint32,\n colorRef: r.uint32,\n hori: SBitLineMetrics,\n vert: SBitLineMetrics,\n startGlyphIndex: r.uint16,\n endGlyphIndex: r.uint16,\n ppemX: r.uint8,\n ppemY: r.uint8,\n bitDepth: r.uint8,\n flags: new r.Bitfield(r.uint8, ['horizontal', 'vertical'])\n});\nvar EBLC = new r.Struct({\n version: r.uint32,\n // 0x00020000\n numSizes: r.uint32,\n sizes: new r.Array(BitmapSizeTable, 'numSizes')\n});\n\nvar ImageTable = new r.Struct({\n ppem: r.uint16,\n resolution: r.uint16,\n imageOffsets: new r.Array(new r.Pointer(r.uint32, 'void'), function (t) {\n return t.parent.parent.maxp.numGlyphs + 1;\n })\n}); // This is the Apple sbix table, used by the \"Apple Color Emoji\" font.\n// It includes several image tables with images for each bitmap glyph\n// of several different sizes.\n\nvar sbix = new r.Struct({\n version: r.uint16,\n flags: new r.Bitfield(r.uint16, ['renderOutlines']),\n numImgTables: r.uint32,\n imageTables: new r.Array(new r.Pointer(r.uint32, ImageTable), 'numImgTables')\n});\n\nvar LayerRecord = new r.Struct({\n gid: r.uint16,\n // Glyph ID of layer glyph (must be in z-order from bottom to top).\n paletteIndex: r.uint16 // Index value to use in the appropriate palette. This value must\n\n}); // be less than numPaletteEntries in the CPAL table, except for\n// the special case noted below. Each palette entry is 16 bits.\n// A palette index of 0xFFFF is a special case indicating that\n// the text foreground color should be used.\n\nvar BaseGlyphRecord = new r.Struct({\n gid: r.uint16,\n // Glyph ID of reference glyph. This glyph is for reference only\n // and is not rendered for color.\n firstLayerIndex: r.uint16,\n // Index (from beginning of the Layer Records) to the layer record.\n // There will be numLayers consecutive entries for this base glyph.\n numLayers: r.uint16\n});\nvar COLR = new r.Struct({\n version: r.uint16,\n numBaseGlyphRecords: r.uint16,\n baseGlyphRecord: new r.Pointer(r.uint32, new r.Array(BaseGlyphRecord, 'numBaseGlyphRecords')),\n layerRecords: new r.Pointer(r.uint32, new r.Array(LayerRecord, 'numLayerRecords'), {\n lazy: true\n }),\n numLayerRecords: r.uint16\n});\n\nvar ColorRecord = new r.Struct({\n blue: r.uint8,\n green: r.uint8,\n red: r.uint8,\n alpha: r.uint8\n});\nvar CPAL = new r.VersionedStruct(r.uint16, {\n header: {\n numPaletteEntries: r.uint16,\n numPalettes: r.uint16,\n numColorRecords: r.uint16,\n colorRecords: new r.Pointer(r.uint32, new r.Array(ColorRecord, 'numColorRecords')),\n colorRecordIndices: new r.Array(r.uint16, 'numPalettes')\n },\n 0: {},\n 1: {\n offsetPaletteTypeArray: new r.Pointer(r.uint32, new r.Array(r.uint32, 'numPalettes')),\n offsetPaletteLabelArray: new r.Pointer(r.uint32, new r.Array(r.uint16, 'numPalettes')),\n offsetPaletteEntryLabelArray: new r.Pointer(r.uint32, new r.Array(r.uint16, 'numPaletteEntries'))\n }\n});\n\nvar BaseCoord = new r.VersionedStruct(r.uint16, {\n 1: {\n // Design units only\n coordinate: r.int16 // X or Y value, in design units\n\n },\n 2: {\n // Design units plus contour point\n coordinate: r.int16,\n // X or Y value, in design units\n referenceGlyph: r.uint16,\n // GlyphID of control glyph\n baseCoordPoint: r.uint16 // Index of contour point on the referenceGlyph\n\n },\n 3: {\n // Design units plus Device table\n coordinate: r.int16,\n // X or Y value, in design units\n deviceTable: new r.Pointer(r.uint16, Device) // Device table for X or Y value\n\n }\n});\nvar BaseValues = new r.Struct({\n defaultIndex: r.uint16,\n // Index of default baseline for this script-same index in the BaseTagList\n baseCoordCount: r.uint16,\n baseCoords: new r.Array(new r.Pointer(r.uint16, BaseCoord), 'baseCoordCount')\n});\nvar FeatMinMaxRecord = new r.Struct({\n tag: new r.String(4),\n // 4-byte feature identification tag-must match FeatureTag in FeatureList\n minCoord: new r.Pointer(r.uint16, BaseCoord, {\n type: 'parent'\n }),\n // May be NULL\n maxCoord: new r.Pointer(r.uint16, BaseCoord, {\n type: 'parent'\n }) // May be NULL\n\n});\nvar MinMax = new r.Struct({\n minCoord: new r.Pointer(r.uint16, BaseCoord),\n // May be NULL\n maxCoord: new r.Pointer(r.uint16, BaseCoord),\n // May be NULL\n featMinMaxCount: r.uint16,\n // May be 0\n featMinMaxRecords: new r.Array(FeatMinMaxRecord, 'featMinMaxCount') // In alphabetical order\n\n});\nvar BaseLangSysRecord = new r.Struct({\n tag: new r.String(4),\n // 4-byte language system identification tag\n minMax: new r.Pointer(r.uint16, MinMax, {\n type: 'parent'\n })\n});\nvar BaseScript = new r.Struct({\n baseValues: new r.Pointer(r.uint16, BaseValues),\n // May be NULL\n defaultMinMax: new r.Pointer(r.uint16, MinMax),\n // May be NULL\n baseLangSysCount: r.uint16,\n // May be 0\n baseLangSysRecords: new r.Array(BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag\n\n});\nvar BaseScriptRecord = new r.Struct({\n tag: new r.String(4),\n // 4-byte script identification tag\n script: new r.Pointer(r.uint16, BaseScript, {\n type: 'parent'\n })\n});\nvar BaseScriptList = new r.Array(BaseScriptRecord, r.uint16); // Array of 4-byte baseline identification tags-must be in alphabetical order\n\nvar BaseTagList = new r.Array(new r.String(4), r.uint16);\nvar Axis$1 = new r.Struct({\n baseTagList: new r.Pointer(r.uint16, BaseTagList),\n // May be NULL\n baseScriptList: new r.Pointer(r.uint16, BaseScriptList)\n});\nvar BASE = new r.VersionedStruct(r.uint32, {\n header: {\n horizAxis: new r.Pointer(r.uint16, Axis$1),\n // May be NULL\n vertAxis: new r.Pointer(r.uint16, Axis$1) // May be NULL\n\n },\n 0x00010000: {},\n 0x00010001: {\n itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)\n }\n});\n\nvar AttachPoint = new r.Array(r.uint16, r.uint16);\nvar AttachList = new r.Struct({\n coverage: new r.Pointer(r.uint16, Coverage),\n glyphCount: r.uint16,\n attachPoints: new r.Array(new r.Pointer(r.uint16, AttachPoint), 'glyphCount')\n});\nvar CaretValue = new r.VersionedStruct(r.uint16, {\n 1: {\n // Design units only\n coordinate: r.int16\n },\n 2: {\n // Contour point\n caretValuePoint: r.uint16\n },\n 3: {\n // Design units plus Device table\n coordinate: r.int16,\n deviceTable: new r.Pointer(r.uint16, Device)\n }\n});\nvar LigGlyph = new r.Array(new r.Pointer(r.uint16, CaretValue), r.uint16);\nvar LigCaretList = new r.Struct({\n coverage: new r.Pointer(r.uint16, Coverage),\n ligGlyphCount: r.uint16,\n ligGlyphs: new r.Array(new r.Pointer(r.uint16, LigGlyph), 'ligGlyphCount')\n});\nvar MarkGlyphSetsDef = new r.Struct({\n markSetTableFormat: r.uint16,\n markSetCount: r.uint16,\n coverage: new r.Array(new r.Pointer(r.uint32, Coverage), 'markSetCount')\n});\nvar GDEF = new r.VersionedStruct(r.uint32, {\n header: {\n glyphClassDef: new r.Pointer(r.uint16, ClassDef),\n attachList: new r.Pointer(r.uint16, AttachList),\n ligCaretList: new r.Pointer(r.uint16, LigCaretList),\n markAttachClassDef: new r.Pointer(r.uint16, ClassDef)\n },\n 0x00010000: {},\n 0x00010002: {\n markGlyphSetsDef: new r.Pointer(r.uint16, MarkGlyphSetsDef)\n },\n 0x00010003: {\n markGlyphSetsDef: new r.Pointer(r.uint16, MarkGlyphSetsDef),\n itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore)\n }\n});\n\nvar ValueFormat = new r.Bitfield(r.uint16, ['xPlacement', 'yPlacement', 'xAdvance', 'yAdvance', 'xPlaDevice', 'yPlaDevice', 'xAdvDevice', 'yAdvDevice']);\nvar types = {\n xPlacement: r.int16,\n yPlacement: r.int16,\n xAdvance: r.int16,\n yAdvance: r.int16,\n xPlaDevice: new r.Pointer(r.uint16, Device, {\n type: 'global',\n relativeTo: 'rel'\n }),\n yPlaDevice: new r.Pointer(r.uint16, Device, {\n type: 'global',\n relativeTo: 'rel'\n }),\n xAdvDevice: new r.Pointer(r.uint16, Device, {\n type: 'global',\n relativeTo: 'rel'\n }),\n yAdvDevice: new r.Pointer(r.uint16, Device, {\n type: 'global',\n relativeTo: 'rel'\n })\n};\n\nvar ValueRecord = /*#__PURE__*/function () {\n function ValueRecord(key) {\n if (key === void 0) {\n key = 'valueFormat';\n }\n\n this.key = key;\n }\n\n var _proto = ValueRecord.prototype;\n\n _proto.buildStruct = function buildStruct(parent) {\n var struct = parent;\n\n while (!struct[this.key] && struct.parent) {\n struct = struct.parent;\n }\n\n if (!struct[this.key]) return;\n var fields = {};\n\n fields.rel = function () {\n return struct._startOffset;\n };\n\n var format = struct[this.key];\n\n for (var key in format) {\n if (format[key]) {\n fields[key] = types[key];\n }\n }\n\n return new r.Struct(fields);\n };\n\n _proto.size = function size(val, ctx) {\n return this.buildStruct(ctx).size(val, ctx);\n };\n\n _proto.decode = function decode(stream, parent) {\n var res = this.buildStruct(parent).decode(stream, parent);\n delete res.rel;\n return res;\n };\n\n return ValueRecord;\n}();\n\nvar PairValueRecord = new r.Struct({\n secondGlyph: r.uint16,\n value1: new ValueRecord('valueFormat1'),\n value2: new ValueRecord('valueFormat2')\n});\nvar PairSet = new r.Array(PairValueRecord, r.uint16);\nvar Class2Record = new r.Struct({\n value1: new ValueRecord('valueFormat1'),\n value2: new ValueRecord('valueFormat2')\n});\nvar Anchor = new r.VersionedStruct(r.uint16, {\n 1: {\n // Design units only\n xCoordinate: r.int16,\n yCoordinate: r.int16\n },\n 2: {\n // Design units plus contour point\n xCoordinate: r.int16,\n yCoordinate: r.int16,\n anchorPoint: r.uint16\n },\n 3: {\n // Design units plus Device tables\n xCoordinate: r.int16,\n yCoordinate: r.int16,\n xDeviceTable: new r.Pointer(r.uint16, Device),\n yDeviceTable: new r.Pointer(r.uint16, Device)\n }\n});\nvar EntryExitRecord = new r.Struct({\n entryAnchor: new r.Pointer(r.uint16, Anchor, {\n type: 'parent'\n }),\n exitAnchor: new r.Pointer(r.uint16, Anchor, {\n type: 'parent'\n })\n});\nvar MarkRecord = new r.Struct({\n class: r.uint16,\n markAnchor: new r.Pointer(r.uint16, Anchor, {\n type: 'parent'\n })\n});\nvar MarkArray = new r.Array(MarkRecord, r.uint16);\nvar BaseRecord = new r.Array(new r.Pointer(r.uint16, Anchor), function (t) {\n return t.parent.classCount;\n});\nvar BaseArray = new r.Array(BaseRecord, r.uint16);\nvar ComponentRecord = new r.Array(new r.Pointer(r.uint16, Anchor), function (t) {\n return t.parent.parent.classCount;\n});\nvar LigatureAttach = new r.Array(ComponentRecord, r.uint16);\nvar LigatureArray = new r.Array(new r.Pointer(r.uint16, LigatureAttach), r.uint16);\nvar GPOSLookup = new r.VersionedStruct('lookupType', {\n 1: new r.VersionedStruct(r.uint16, {\n // Single Adjustment\n 1: {\n // Single positioning value\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat: ValueFormat,\n value: new ValueRecord()\n },\n 2: {\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat: ValueFormat,\n valueCount: r.uint16,\n values: new r.LazyArray(new ValueRecord(), 'valueCount')\n }\n }),\n 2: new r.VersionedStruct(r.uint16, {\n // Pair Adjustment Positioning\n 1: {\n // Adjustments for glyph pairs\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat1: ValueFormat,\n valueFormat2: ValueFormat,\n pairSetCount: r.uint16,\n pairSets: new r.LazyArray(new r.Pointer(r.uint16, PairSet), 'pairSetCount')\n },\n 2: {\n // Class pair adjustment\n coverage: new r.Pointer(r.uint16, Coverage),\n valueFormat1: ValueFormat,\n valueFormat2: ValueFormat,\n classDef1: new r.Pointer(r.uint16, ClassDef),\n classDef2: new r.Pointer(r.uint16, ClassDef),\n class1Count: r.uint16,\n class2Count: r.uint16,\n classRecords: new r.LazyArray(new r.LazyArray(Class2Record, 'class2Count'), 'class1Count')\n }\n }),\n 3: {\n // Cursive Attachment Positioning\n format: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n entryExitCount: r.uint16,\n entryExitRecords: new r.Array(EntryExitRecord, 'entryExitCount')\n },\n 4: {\n // MarkToBase Attachment Positioning\n format: r.uint16,\n markCoverage: new r.Pointer(r.uint16, Coverage),\n baseCoverage: new r.Pointer(r.uint16, Coverage),\n classCount: r.uint16,\n markArray: new r.Pointer(r.uint16, MarkArray),\n baseArray: new r.Pointer(r.uint16, BaseArray)\n },\n 5: {\n // MarkToLigature Attachment Positioning\n format: r.uint16,\n markCoverage: new r.Pointer(r.uint16, Coverage),\n ligatureCoverage: new r.Pointer(r.uint16, Coverage),\n classCount: r.uint16,\n markArray: new r.Pointer(r.uint16, MarkArray),\n ligatureArray: new r.Pointer(r.uint16, LigatureArray)\n },\n 6: {\n // MarkToMark Attachment Positioning\n format: r.uint16,\n mark1Coverage: new r.Pointer(r.uint16, Coverage),\n mark2Coverage: new r.Pointer(r.uint16, Coverage),\n classCount: r.uint16,\n mark1Array: new r.Pointer(r.uint16, MarkArray),\n mark2Array: new r.Pointer(r.uint16, BaseArray)\n },\n 7: Context,\n // Contextual positioning\n 8: ChainingContext,\n // Chaining contextual positioning\n 9: {\n // Extension Positioning\n posFormat: r.uint16,\n lookupType: r.uint16,\n // cannot also be 9\n extension: new r.Pointer(r.uint32, undefined)\n }\n}); // Fix circular reference\n\nGPOSLookup.versions[9].extension.type = GPOSLookup;\nvar GPOS = new r.VersionedStruct(r.uint32, {\n header: {\n scriptList: new r.Pointer(r.uint16, ScriptList),\n featureList: new r.Pointer(r.uint16, FeatureList),\n lookupList: new r.Pointer(r.uint16, new LookupList(GPOSLookup))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new r.Pointer(r.uint32, FeatureVariations)\n }\n}); // export GPOSLookup for JSTF table\n\nvar Sequence = new r.Array(r.uint16, r.uint16);\nvar AlternateSet = Sequence;\nvar Ligature = new r.Struct({\n glyph: r.uint16,\n compCount: r.uint16,\n components: new r.Array(r.uint16, function (t) {\n return t.compCount - 1;\n })\n});\nvar LigatureSet = new r.Array(new r.Pointer(r.uint16, Ligature), r.uint16);\nvar GSUBLookup = new r.VersionedStruct('lookupType', {\n 1: new r.VersionedStruct(r.uint16, {\n // Single Substitution\n 1: {\n coverage: new r.Pointer(r.uint16, Coverage),\n deltaGlyphID: r.int16\n },\n 2: {\n coverage: new r.Pointer(r.uint16, Coverage),\n glyphCount: r.uint16,\n substitute: new r.LazyArray(r.uint16, 'glyphCount')\n }\n }),\n 2: {\n // Multiple Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n count: r.uint16,\n sequences: new r.LazyArray(new r.Pointer(r.uint16, Sequence), 'count')\n },\n 3: {\n // Alternate Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n count: r.uint16,\n alternateSet: new r.LazyArray(new r.Pointer(r.uint16, AlternateSet), 'count')\n },\n 4: {\n // Ligature Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n count: r.uint16,\n ligatureSets: new r.LazyArray(new r.Pointer(r.uint16, LigatureSet), 'count')\n },\n 5: Context,\n // Contextual Substitution\n 6: ChainingContext,\n // Chaining Contextual Substitution\n 7: {\n // Extension Substitution\n substFormat: r.uint16,\n lookupType: r.uint16,\n // cannot also be 7\n extension: new r.Pointer(r.uint32, undefined)\n },\n 8: {\n // Reverse Chaining Contextual Single Substitution\n substFormat: r.uint16,\n coverage: new r.Pointer(r.uint16, Coverage),\n backtrackCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'backtrackGlyphCount'),\n lookaheadGlyphCount: r.uint16,\n lookaheadCoverage: new r.Array(new r.Pointer(r.uint16, Coverage), 'lookaheadGlyphCount'),\n glyphCount: r.uint16,\n substitutes: new r.Array(r.uint16, 'glyphCount')\n }\n}); // Fix circular reference\n\nGSUBLookup.versions[7].extension.type = GSUBLookup;\nvar GSUB = new r.VersionedStruct(r.uint32, {\n header: {\n scriptList: new r.Pointer(r.uint16, ScriptList),\n featureList: new r.Pointer(r.uint16, FeatureList),\n lookupList: new r.Pointer(r.uint16, new LookupList(GSUBLookup))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new r.Pointer(r.uint32, FeatureVariations)\n }\n});\n\nvar JstfGSUBModList = new r.Array(r.uint16, r.uint16);\nvar JstfPriority = new r.Struct({\n shrinkageEnableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageDisableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageEnableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageDisableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n shrinkageJstfMax: new r.Pointer(r.uint16, new LookupList(GPOSLookup)),\n extensionEnableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionDisableGSUB: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionEnableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionDisableGPOS: new r.Pointer(r.uint16, JstfGSUBModList),\n extensionJstfMax: new r.Pointer(r.uint16, new LookupList(GPOSLookup))\n});\nvar JstfLangSys = new r.Array(new r.Pointer(r.uint16, JstfPriority), r.uint16);\nvar JstfLangSysRecord = new r.Struct({\n tag: new r.String(4),\n jstfLangSys: new r.Pointer(r.uint16, JstfLangSys)\n});\nvar JstfScript = new r.Struct({\n extenderGlyphs: new r.Pointer(r.uint16, new r.Array(r.uint16, r.uint16)),\n // array of glyphs to extend line length\n defaultLangSys: new r.Pointer(r.uint16, JstfLangSys),\n langSysCount: r.uint16,\n langSysRecords: new r.Array(JstfLangSysRecord, 'langSysCount')\n});\nvar JstfScriptRecord = new r.Struct({\n tag: new r.String(4),\n script: new r.Pointer(r.uint16, JstfScript, {\n type: 'parent'\n })\n});\nvar JSTF = new r.Struct({\n version: r.uint32,\n // should be 0x00010000\n scriptCount: r.uint16,\n scriptList: new r.Array(JstfScriptRecord, 'scriptCount')\n});\n\nvar VariableSizeNumber = /*#__PURE__*/function () {\n function VariableSizeNumber(size) {\n this._size = size;\n }\n\n var _proto = VariableSizeNumber.prototype;\n\n _proto.decode = function decode(stream, parent) {\n switch (this.size(0, parent)) {\n case 1:\n return stream.readUInt8();\n\n case 2:\n return stream.readUInt16BE();\n\n case 3:\n return stream.readUInt24BE();\n\n case 4:\n return stream.readUInt32BE();\n }\n };\n\n _proto.size = function size(val, parent) {\n return resolveLength(this._size, null, parent);\n };\n\n return VariableSizeNumber;\n}();\n\nvar MapDataEntry = new r.Struct({\n entry: new VariableSizeNumber(function (t) {\n return ((t.parent.entryFormat & 0x0030) >> 4) + 1;\n }),\n outerIndex: function outerIndex(t) {\n return t.entry >> (t.parent.entryFormat & 0x000F) + 1;\n },\n innerIndex: function innerIndex(t) {\n return t.entry & (1 << (t.parent.entryFormat & 0x000F) + 1) - 1;\n }\n});\nvar DeltaSetIndexMap = new r.Struct({\n entryFormat: r.uint16,\n mapCount: r.uint16,\n mapData: new r.Array(MapDataEntry, 'mapCount')\n});\nvar HVAR = new r.Struct({\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n itemVariationStore: new r.Pointer(r.uint32, ItemVariationStore),\n advanceWidthMapping: new r.Pointer(r.uint32, DeltaSetIndexMap),\n LSBMapping: new r.Pointer(r.uint32, DeltaSetIndexMap),\n RSBMapping: new r.Pointer(r.uint32, DeltaSetIndexMap)\n});\n\nvar Signature = new r.Struct({\n format: r.uint32,\n length: r.uint32,\n offset: r.uint32\n});\nvar SignatureBlock = new r.Struct({\n reserved: new r.Reserved(r.uint16, 2),\n cbSignature: r.uint32,\n // Length (in bytes) of the PKCS#7 packet in pbSignature\n signature: new r.Buffer('cbSignature')\n});\nvar DSIG = new r.Struct({\n ulVersion: r.uint32,\n // Version number of the DSIG table (0x00000001)\n usNumSigs: r.uint16,\n // Number of signatures in the table\n usFlag: r.uint16,\n // Permission flags\n signatures: new r.Array(Signature, 'usNumSigs'),\n signatureBlocks: new r.Array(SignatureBlock, 'usNumSigs')\n});\n\nvar GaspRange = new r.Struct({\n rangeMaxPPEM: r.uint16,\n // Upper limit of range, in ppem\n rangeGaspBehavior: new r.Bitfield(r.uint16, [// Flags describing desired rasterizer behavior\n 'grayscale', 'gridfit', 'symmetricSmoothing', 'symmetricGridfit' // only in version 1, for ClearType\n ])\n});\nvar gasp = new r.Struct({\n version: r.uint16,\n // set to 0\n numRanges: r.uint16,\n gaspRanges: new r.Array(GaspRange, 'numRanges') // Sorted by ppem\n\n});\n\nvar DeviceRecord = new r.Struct({\n pixelSize: r.uint8,\n maximumWidth: r.uint8,\n widths: new r.Array(r.uint8, function (t) {\n return t.parent.parent.maxp.numGlyphs;\n })\n}); // The Horizontal Device Metrics table stores integer advance widths scaled to particular pixel sizes\n\nvar hdmx = new r.Struct({\n version: r.uint16,\n numRecords: r.int16,\n sizeDeviceRecord: r.int32,\n records: new r.Array(DeviceRecord, 'numRecords')\n});\n\nvar KernPair = new r.Struct({\n left: r.uint16,\n right: r.uint16,\n value: r.int16\n});\nvar ClassTable$1 = new r.Struct({\n firstGlyph: r.uint16,\n nGlyphs: r.uint16,\n offsets: new r.Array(r.uint16, 'nGlyphs'),\n max: function max(t) {\n return t.offsets.length && Math.max.apply(Math, t.offsets);\n }\n});\nvar Kern2Array = new r.Struct({\n off: function off(t) {\n return t._startOffset - t.parent.parent._startOffset;\n },\n len: function len(t) {\n return ((t.parent.leftTable.max - t.off) / t.parent.rowWidth + 1) * (t.parent.rowWidth / 2);\n },\n values: new r.LazyArray(r.int16, 'len')\n});\nvar KernSubtable = new r.VersionedStruct('format', {\n 0: {\n nPairs: r.uint16,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16,\n pairs: new r.Array(KernPair, 'nPairs')\n },\n 2: {\n rowWidth: r.uint16,\n leftTable: new r.Pointer(r.uint16, ClassTable$1, {\n type: 'parent'\n }),\n rightTable: new r.Pointer(r.uint16, ClassTable$1, {\n type: 'parent'\n }),\n array: new r.Pointer(r.uint16, Kern2Array, {\n type: 'parent'\n })\n },\n 3: {\n glyphCount: r.uint16,\n kernValueCount: r.uint8,\n leftClassCount: r.uint8,\n rightClassCount: r.uint8,\n flags: r.uint8,\n kernValue: new r.Array(r.int16, 'kernValueCount'),\n leftClass: new r.Array(r.uint8, 'glyphCount'),\n rightClass: new r.Array(r.uint8, 'glyphCount'),\n kernIndex: new r.Array(r.uint8, function (t) {\n return t.leftClassCount * t.rightClassCount;\n })\n }\n});\nvar KernTable = new r.VersionedStruct('version', {\n 0: {\n // Microsoft uses this format\n subVersion: r.uint16,\n // Microsoft has an extra sub-table version number\n length: r.uint16,\n // Length of the subtable, in bytes\n format: r.uint8,\n // Format of subtable\n coverage: new r.Bitfield(r.uint8, ['horizontal', // 1 if table has horizontal data, 0 if vertical\n 'minimum', // If set to 1, the table has minimum values. If set to 0, the table has kerning values.\n 'crossStream', // If set to 1, kerning is perpendicular to the flow of the text\n 'override' // If set to 1 the value in this table replaces the accumulated value\n ]),\n subtable: KernSubtable,\n padding: new r.Reserved(r.uint8, function (t) {\n return t.length - t._currentOffset;\n })\n },\n 1: {\n // Apple uses this format\n length: r.uint32,\n coverage: new r.Bitfield(r.uint8, [null, null, null, null, null, 'variation', // Set if table has variation kerning values\n 'crossStream', // Set if table has cross-stream kerning values\n 'vertical' // Set if table has vertical kerning values\n ]),\n format: r.uint8,\n tupleIndex: r.uint16,\n subtable: KernSubtable,\n padding: new r.Reserved(r.uint8, function (t) {\n return t.length - t._currentOffset;\n })\n }\n});\nvar kern = new r.VersionedStruct(r.uint16, {\n 0: {\n // Microsoft Version\n nTables: r.uint16,\n tables: new r.Array(KernTable, 'nTables')\n },\n 1: {\n // Apple Version\n reserved: new r.Reserved(r.uint16),\n // the other half of the version number\n nTables: r.uint32,\n tables: new r.Array(KernTable, 'nTables')\n }\n});\n\n// Records the ppem for each glyph at which the scaling becomes linear again,\n// despite instructions effecting the advance width\n\nvar LTSH = new r.Struct({\n version: r.uint16,\n numGlyphs: r.uint16,\n yPels: new r.Array(r.uint8, 'numGlyphs')\n});\n\n// NOTE: The PCLT table is strongly discouraged for OpenType fonts with TrueType outlines\n\nvar PCLT = new r.Struct({\n version: r.uint16,\n fontNumber: r.uint32,\n pitch: r.uint16,\n xHeight: r.uint16,\n style: r.uint16,\n typeFamily: r.uint16,\n capHeight: r.uint16,\n symbolSet: r.uint16,\n typeface: new r.String(16),\n characterComplement: new r.String(8),\n fileName: new r.String(6),\n strokeWeight: new r.String(1),\n widthType: new r.String(1),\n serifStyle: r.uint8,\n reserved: new r.Reserved(r.uint8)\n});\n\n// sizes. This is needed in order to match font metrics on Windows.\n\nvar Ratio = new r.Struct({\n bCharSet: r.uint8,\n // Character set\n xRatio: r.uint8,\n // Value to use for x-Ratio\n yStartRatio: r.uint8,\n // Starting y-Ratio value\n yEndRatio: r.uint8 // Ending y-Ratio value\n\n});\nvar vTable = new r.Struct({\n yPelHeight: r.uint16,\n // yPelHeight to which values apply\n yMax: r.int16,\n // Maximum value (in pels) for this yPelHeight\n yMin: r.int16 // Minimum value (in pels) for this yPelHeight\n\n});\nvar VdmxGroup = new r.Struct({\n recs: r.uint16,\n // Number of height records in this group\n startsz: r.uint8,\n // Starting yPelHeight\n endsz: r.uint8,\n // Ending yPelHeight\n entries: new r.Array(vTable, 'recs') // The VDMX records\n\n});\nvar VDMX = new r.Struct({\n version: r.uint16,\n // Version number (0 or 1)\n numRecs: r.uint16,\n // Number of VDMX groups present\n numRatios: r.uint16,\n // Number of aspect ratio groupings\n ratioRanges: new r.Array(Ratio, 'numRatios'),\n // Ratio ranges\n offsets: new r.Array(r.uint16, 'numRatios'),\n // Offset to the VDMX group for this ratio range\n groups: new r.Array(VdmxGroup, 'numRecs') // The actual VDMX groupings\n\n});\n\nvar vhea = new r.Struct({\n version: r.uint16,\n // Version number of the Vertical Header Table\n ascent: r.int16,\n // The vertical typographic ascender for this font\n descent: r.int16,\n // The vertical typographic descender for this font\n lineGap: r.int16,\n // The vertical typographic line gap for this font\n advanceHeightMax: r.int16,\n // The maximum advance height measurement found in the font\n minTopSideBearing: r.int16,\n // The minimum top side bearing measurement found in the font\n minBottomSideBearing: r.int16,\n // The minimum bottom side bearing measurement found in the font\n yMaxExtent: r.int16,\n caretSlopeRise: r.int16,\n // Caret slope (rise/run)\n caretSlopeRun: r.int16,\n caretOffset: r.int16,\n // Set value equal to 0 for nonslanted fonts\n reserved: new r.Reserved(r.int16, 4),\n metricDataFormat: r.int16,\n // Set to 0\n numberOfMetrics: r.uint16 // Number of advance heights in the Vertical Metrics table\n\n});\n\nvar VmtxEntry = new r.Struct({\n advance: r.uint16,\n // The advance height of the glyph\n bearing: r.int16 // The top sidebearing of the glyph\n\n}); // Vertical Metrics Table\n\nvar vmtx = new r.Struct({\n metrics: new r.LazyArray(VmtxEntry, function (t) {\n return t.parent.vhea.numberOfMetrics;\n }),\n bearings: new r.LazyArray(r.int16, function (t) {\n return t.parent.maxp.numGlyphs - t.parent.vhea.numberOfMetrics;\n })\n});\n\nvar shortFrac$1 = new r.Fixed(16, 'BE', 14);\nvar Correspondence = new r.Struct({\n fromCoord: shortFrac$1,\n toCoord: shortFrac$1\n});\nvar Segment = new r.Struct({\n pairCount: r.uint16,\n correspondence: new r.Array(Correspondence, 'pairCount')\n});\nvar avar = new r.Struct({\n version: r.fixed32,\n axisCount: r.uint32,\n segment: new r.Array(Segment, 'axisCount')\n});\n\nvar UnboundedArrayAccessor = /*#__PURE__*/function () {\n function UnboundedArrayAccessor(type, stream, parent) {\n this.type = type;\n this.stream = stream;\n this.parent = parent;\n this.base = this.stream.pos;\n this._items = [];\n }\n\n var _proto = UnboundedArrayAccessor.prototype;\n\n _proto.getItem = function getItem(index) {\n if (this._items[index] == null) {\n var pos = this.stream.pos;\n this.stream.pos = this.base + this.type.size(null, this.parent) * index;\n this._items[index] = this.type.decode(this.stream, this.parent);\n this.stream.pos = pos;\n }\n\n return this._items[index];\n };\n\n _proto.inspect = function inspect() {\n return \"[UnboundedArray \" + this.type.constructor.name + \"]\";\n };\n\n return UnboundedArrayAccessor;\n}();\n\nvar UnboundedArray = /*#__PURE__*/function (_r$Array) {\n _inheritsLoose(UnboundedArray, _r$Array);\n\n function UnboundedArray(type) {\n return _r$Array.call(this, type, 0) || this;\n }\n\n var _proto2 = UnboundedArray.prototype;\n\n _proto2.decode = function decode(stream, parent) {\n return new UnboundedArrayAccessor(this.type, stream, parent);\n };\n\n return UnboundedArray;\n}(r.Array);\nvar LookupTable = function LookupTable(ValueType) {\n if (ValueType === void 0) {\n ValueType = r.uint16;\n }\n\n // Helper class that makes internal structures invisible to pointers\n var Shadow = /*#__PURE__*/function () {\n function Shadow(type) {\n this.type = type;\n }\n\n var _proto3 = Shadow.prototype;\n\n _proto3.decode = function decode(stream, ctx) {\n ctx = ctx.parent.parent;\n return this.type.decode(stream, ctx);\n };\n\n _proto3.size = function size(val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.size(val, ctx);\n };\n\n _proto3.encode = function encode(stream, val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.encode(stream, val, ctx);\n };\n\n return Shadow;\n }();\n\n ValueType = new Shadow(ValueType);\n var BinarySearchHeader = new r.Struct({\n unitSize: r.uint16,\n nUnits: r.uint16,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16\n });\n var LookupSegmentSingle = new r.Struct({\n lastGlyph: r.uint16,\n firstGlyph: r.uint16,\n value: ValueType\n });\n var LookupSegmentArray = new r.Struct({\n lastGlyph: r.uint16,\n firstGlyph: r.uint16,\n values: new r.Pointer(r.uint16, new r.Array(ValueType, function (t) {\n return t.lastGlyph - t.firstGlyph + 1;\n }), {\n type: 'parent'\n })\n });\n var LookupSingle = new r.Struct({\n glyph: r.uint16,\n value: ValueType\n });\n return new r.VersionedStruct(r.uint16, {\n 0: {\n values: new UnboundedArray(ValueType) // length == number of glyphs maybe?\n\n },\n 2: {\n binarySearchHeader: BinarySearchHeader,\n segments: new r.Array(LookupSegmentSingle, function (t) {\n return t.binarySearchHeader.nUnits;\n })\n },\n 4: {\n binarySearchHeader: BinarySearchHeader,\n segments: new r.Array(LookupSegmentArray, function (t) {\n return t.binarySearchHeader.nUnits;\n })\n },\n 6: {\n binarySearchHeader: BinarySearchHeader,\n segments: new r.Array(LookupSingle, function (t) {\n return t.binarySearchHeader.nUnits;\n })\n },\n 8: {\n firstGlyph: r.uint16,\n count: r.uint16,\n values: new r.Array(ValueType, 'count')\n }\n });\n};\nfunction StateTable(entryData, lookupType) {\n if (entryData === void 0) {\n entryData = {};\n }\n\n if (lookupType === void 0) {\n lookupType = r.uint16;\n }\n\n var entry = Object.assign({\n newState: r.uint16,\n flags: r.uint16\n }, entryData);\n var Entry = new r.Struct(entry);\n var StateArray = new UnboundedArray(new r.Array(r.uint16, function (t) {\n return t.nClasses;\n }));\n var StateHeader = new r.Struct({\n nClasses: r.uint32,\n classTable: new r.Pointer(r.uint32, new LookupTable(lookupType)),\n stateArray: new r.Pointer(r.uint32, StateArray),\n entryTable: new r.Pointer(r.uint32, new UnboundedArray(Entry))\n });\n return StateHeader;\n} // This is the old version of the StateTable structure\n\nfunction StateTable1(entryData, lookupType) {\n if (entryData === void 0) {\n entryData = {};\n }\n\n if (lookupType === void 0) {\n lookupType = r.uint16;\n }\n\n var ClassLookupTable = new r.Struct({\n version: function version() {\n return 8;\n },\n // simulate LookupTable\n firstGlyph: r.uint16,\n values: new r.Array(r.uint8, r.uint16)\n });\n var entry = Object.assign({\n newStateOffset: r.uint16,\n // convert offset to stateArray index\n newState: function newState(t) {\n return (t.newStateOffset - (t.parent.stateArray.base - t.parent._startOffset)) / t.parent.nClasses;\n },\n flags: r.uint16\n }, entryData);\n var Entry = new r.Struct(entry);\n var StateArray = new UnboundedArray(new r.Array(r.uint8, function (t) {\n return t.nClasses;\n }));\n var StateHeader1 = new r.Struct({\n nClasses: r.uint16,\n classTable: new r.Pointer(r.uint16, ClassLookupTable),\n stateArray: new r.Pointer(r.uint16, StateArray),\n entryTable: new r.Pointer(r.uint16, new UnboundedArray(Entry))\n });\n return StateHeader1;\n}\n\nvar BslnSubtable = new r.VersionedStruct('format', {\n 0: {\n // Distance-based, no mapping\n deltas: new r.Array(r.int16, 32)\n },\n 1: {\n // Distance-based, with mapping\n deltas: new r.Array(r.int16, 32),\n mappingData: new LookupTable(r.uint16)\n },\n 2: {\n // Control point-based, no mapping\n standardGlyph: r.uint16,\n controlPoints: new r.Array(r.uint16, 32)\n },\n 3: {\n // Control point-based, with mapping\n standardGlyph: r.uint16,\n controlPoints: new r.Array(r.uint16, 32),\n mappingData: new LookupTable(r.uint16)\n }\n});\nvar bsln = new r.Struct({\n version: r.fixed32,\n format: r.uint16,\n defaultBaseline: r.uint16,\n subtable: BslnSubtable\n});\n\nvar Setting = new r.Struct({\n setting: r.uint16,\n nameIndex: r.int16,\n name: function name(t) {\n return t.parent.parent.parent.name.records.fontFeatures[t.nameIndex];\n }\n});\nvar FeatureName = new r.Struct({\n feature: r.uint16,\n nSettings: r.uint16,\n settingTable: new r.Pointer(r.uint32, new r.Array(Setting, 'nSettings'), {\n type: 'parent'\n }),\n featureFlags: new r.Bitfield(r.uint8, [null, null, null, null, null, null, 'hasDefault', 'exclusive']),\n defaultSetting: r.uint8,\n nameIndex: r.int16,\n name: function name(t) {\n return t.parent.parent.name.records.fontFeatures[t.nameIndex];\n }\n});\nvar feat = new r.Struct({\n version: r.fixed32,\n featureNameCount: r.uint16,\n reserved1: new r.Reserved(r.uint16),\n reserved2: new r.Reserved(r.uint32),\n featureNames: new r.Array(FeatureName, 'featureNameCount')\n});\n\nvar Axis = new r.Struct({\n axisTag: new r.String(4),\n minValue: r.fixed32,\n defaultValue: r.fixed32,\n maxValue: r.fixed32,\n flags: r.uint16,\n nameID: r.uint16,\n name: function name(t) {\n return t.parent.parent.name.records.fontFeatures[t.nameID];\n }\n});\nvar Instance = new r.Struct({\n nameID: r.uint16,\n name: function name(t) {\n return t.parent.parent.name.records.fontFeatures[t.nameID];\n },\n flags: r.uint16,\n coord: new r.Array(r.fixed32, function (t) {\n return t.parent.axisCount;\n }),\n postscriptNameID: new r.Optional(r.uint16, function (t) {\n return t.parent.instanceSize - t._currentOffset > 0;\n })\n});\nvar fvar = new r.Struct({\n version: r.fixed32,\n offsetToData: r.uint16,\n countSizePairs: r.uint16,\n axisCount: r.uint16,\n axisSize: r.uint16,\n instanceCount: r.uint16,\n instanceSize: r.uint16,\n axis: new r.Array(Axis, 'axisCount'),\n instance: new r.Array(Instance, 'instanceCount')\n});\n\nvar shortFrac = new r.Fixed(16, 'BE', 14);\n\nvar Offset = /*#__PURE__*/function () {\n function Offset() {}\n\n Offset.decode = function decode(stream, parent) {\n // In short format, offsets are multiplied by 2.\n // This doesn't seem to be documented by Apple, but it\n // is implemented this way in Freetype.\n return parent.flags ? stream.readUInt32BE() : stream.readUInt16BE() * 2;\n };\n\n return Offset;\n}();\n\nvar gvar = new r.Struct({\n version: r.uint16,\n reserved: new r.Reserved(r.uint16),\n axisCount: r.uint16,\n globalCoordCount: r.uint16,\n globalCoords: new r.Pointer(r.uint32, new r.Array(new r.Array(shortFrac, 'axisCount'), 'globalCoordCount')),\n glyphCount: r.uint16,\n flags: r.uint16,\n offsetToData: r.uint32,\n offsets: new r.Array(new r.Pointer(Offset, 'void', {\n relativeTo: 'offsetToData',\n allowNull: false\n }), function (t) {\n return t.glyphCount + 1;\n })\n});\n\nvar ClassTable = new r.Struct({\n length: r.uint16,\n coverage: r.uint16,\n subFeatureFlags: r.uint32,\n stateTable: new StateTable1()\n});\nvar WidthDeltaRecord = new r.Struct({\n justClass: r.uint32,\n beforeGrowLimit: r.fixed32,\n beforeShrinkLimit: r.fixed32,\n afterGrowLimit: r.fixed32,\n afterShrinkLimit: r.fixed32,\n growFlags: r.uint16,\n shrinkFlags: r.uint16\n});\nvar WidthDeltaCluster = new r.Array(WidthDeltaRecord, r.uint32);\nvar ActionData = new r.VersionedStruct('actionType', {\n 0: {\n // Decomposition action\n lowerLimit: r.fixed32,\n upperLimit: r.fixed32,\n order: r.uint16,\n glyphs: new r.Array(r.uint16, r.uint16)\n },\n 1: {\n // Unconditional add glyph action\n addGlyph: r.uint16\n },\n 2: {\n // Conditional add glyph action\n substThreshold: r.fixed32,\n addGlyph: r.uint16,\n substGlyph: r.uint16\n },\n 3: {},\n // Stretch glyph action (no data, not supported by CoreText)\n 4: {\n // Ductile glyph action (not supported by CoreText)\n variationAxis: r.uint32,\n minimumLimit: r.fixed32,\n noStretchValue: r.fixed32,\n maximumLimit: r.fixed32\n },\n 5: {\n // Repeated add glyph action\n flags: r.uint16,\n glyph: r.uint16\n }\n});\nvar Action = new r.Struct({\n actionClass: r.uint16,\n actionType: r.uint16,\n actionLength: r.uint32,\n actionData: ActionData,\n padding: new r.Reserved(r.uint8, function (t) {\n return t.actionLength - t._currentOffset;\n })\n});\nvar PostcompensationAction = new r.Array(Action, r.uint32);\nvar PostCompensationTable = new r.Struct({\n lookupTable: new LookupTable(new r.Pointer(r.uint16, PostcompensationAction))\n});\nvar JustificationTable = new r.Struct({\n classTable: new r.Pointer(r.uint16, ClassTable, {\n type: 'parent'\n }),\n wdcOffset: r.uint16,\n postCompensationTable: new r.Pointer(r.uint16, PostCompensationTable, {\n type: 'parent'\n }),\n widthDeltaClusters: new LookupTable(new r.Pointer(r.uint16, WidthDeltaCluster, {\n type: 'parent',\n relativeTo: 'wdcOffset'\n }))\n});\nvar just = new r.Struct({\n version: r.uint32,\n format: r.uint16,\n horizontal: new r.Pointer(r.uint16, JustificationTable),\n vertical: new r.Pointer(r.uint16, JustificationTable)\n});\n\nvar LigatureData = {\n action: r.uint16\n};\nvar ContextualData = {\n markIndex: r.uint16,\n currentIndex: r.uint16\n};\nvar InsertionData = {\n currentInsertIndex: r.uint16,\n markedInsertIndex: r.uint16\n};\nvar SubstitutionTable = new r.Struct({\n items: new UnboundedArray(new r.Pointer(r.uint32, new LookupTable()))\n});\nvar SubtableData = new r.VersionedStruct('type', {\n 0: {\n // Indic Rearrangement Subtable\n stateTable: new StateTable()\n },\n 1: {\n // Contextual Glyph Substitution Subtable\n stateTable: new StateTable(ContextualData),\n substitutionTable: new r.Pointer(r.uint32, SubstitutionTable)\n },\n 2: {\n // Ligature subtable\n stateTable: new StateTable(LigatureData),\n ligatureActions: new r.Pointer(r.uint32, new UnboundedArray(r.uint32)),\n components: new r.Pointer(r.uint32, new UnboundedArray(r.uint16)),\n ligatureList: new r.Pointer(r.uint32, new UnboundedArray(r.uint16))\n },\n 4: {\n // Non-contextual Glyph Substitution Subtable\n lookupTable: new LookupTable()\n },\n 5: {\n // Glyph Insertion Subtable\n stateTable: new StateTable(InsertionData),\n insertionActions: new r.Pointer(r.uint32, new UnboundedArray(r.uint16))\n }\n});\nvar Subtable = new r.Struct({\n length: r.uint32,\n coverage: r.uint24,\n type: r.uint8,\n subFeatureFlags: r.uint32,\n table: SubtableData,\n padding: new r.Reserved(r.uint8, function (t) {\n return t.length - t._currentOffset;\n })\n});\nvar FeatureEntry = new r.Struct({\n featureType: r.uint16,\n featureSetting: r.uint16,\n enableFlags: r.uint32,\n disableFlags: r.uint32\n});\nvar MorxChain = new r.Struct({\n defaultFlags: r.uint32,\n chainLength: r.uint32,\n nFeatureEntries: r.uint32,\n nSubtables: r.uint32,\n features: new r.Array(FeatureEntry, 'nFeatureEntries'),\n subtables: new r.Array(Subtable, 'nSubtables')\n});\nvar morx = new r.Struct({\n version: r.uint16,\n unused: new r.Reserved(r.uint16),\n nChains: r.uint32,\n chains: new r.Array(MorxChain, 'nChains')\n});\n\nvar OpticalBounds = new r.Struct({\n left: r.int16,\n top: r.int16,\n right: r.int16,\n bottom: r.int16\n});\nvar opbd = new r.Struct({\n version: r.fixed32,\n format: r.uint16,\n lookupTable: new LookupTable(OpticalBounds)\n});\n\nvar tables = {};\ntables.cmap = cmap;\ntables.head = head;\ntables.hhea = hhea;\ntables.hmtx = hmtx;\ntables.maxp = maxp;\ntables.name = NameTable;\ntables['OS/2'] = OS2;\ntables.post = post; // TrueType Outlines\ntables.fpgm = fpgm;\ntables.loca = loca;\ntables.prep = prep;\ntables['cvt '] = cvt;\ntables.glyf = glyf; // PostScript Outlines\ntables['CFF '] = CFFFont;\ntables['CFF2'] = CFFFont;\ntables.VORG = VORG; // Bitmap Glyphs\ntables.EBLC = EBLC;\ntables.CBLC = tables.EBLC;\ntables.sbix = sbix;\ntables.COLR = COLR;\ntables.CPAL = CPAL; // Advanced OpenType Tables\ntables.BASE = BASE;\ntables.GDEF = GDEF;\ntables.GPOS = GPOS;\ntables.GSUB = GSUB;\ntables.JSTF = JSTF; // OpenType variations tables\ntables.HVAR = HVAR; // Other OpenType Tables\ntables.DSIG = DSIG;\ntables.gasp = gasp;\ntables.hdmx = hdmx;\ntables.kern = kern;\ntables.LTSH = LTSH;\ntables.PCLT = PCLT;\ntables.VDMX = VDMX;\ntables.vhea = vhea;\ntables.vmtx = vmtx; // Apple Advanced Typography Tables\ntables.avar = avar;\ntables.bsln = bsln;\ntables.feat = feat;\ntables.fvar = fvar;\ntables.gvar = gvar;\ntables.just = just;\ntables.morx = morx;\ntables.opbd = opbd;\n\nfunction _createForOfIteratorHelperLoose$p(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$p(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$p(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$p(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$p(o, minLen); }\n\nfunction _arrayLikeToArray$p(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar TableEntry = new r.Struct({\n tag: new r.String(4),\n checkSum: r.uint32,\n offset: new r.Pointer(r.uint32, 'void', {\n type: 'global'\n }),\n length: r.uint32\n});\nvar Directory = new r.Struct({\n tag: new r.String(4),\n numTables: r.uint16,\n searchRange: r.uint16,\n entrySelector: r.uint16,\n rangeShift: r.uint16,\n tables: new r.Array(TableEntry, 'numTables')\n});\n\nDirectory.process = function () {\n var tables = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose$p(this.tables), _step; !(_step = _iterator()).done;) {\n var table = _step.value;\n tables[table.tag] = table;\n }\n\n this.tables = tables;\n};\n\nDirectory.preEncode = function (stream) {\n var tables$1 = [];\n\n for (var tag in this.tables) {\n var table = this.tables[tag];\n\n if (table) {\n tables$1.push({\n tag: tag,\n checkSum: 0,\n offset: new r.VoidPointer(tables[tag], table),\n length: tables[tag].size(table)\n });\n }\n }\n\n this.tag = 'true';\n this.numTables = tables$1.length;\n this.tables = tables$1;\n var maxExponentFor2 = Math.floor(Math.log(this.numTables) / Math.LN2);\n var maxPowerOf2 = Math.pow(2, maxExponentFor2);\n this.searchRange = maxPowerOf2 * 16;\n this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;\n this.rangeShift = this.numTables * 16 - this.searchRange;\n};\n\nfunction binarySearch(arr, cmp) {\n var min = 0;\n var max = arr.length - 1;\n\n while (min <= max) {\n var mid = min + max >> 1;\n var res = cmp(arr[mid]);\n\n if (res < 0) {\n max = mid - 1;\n } else if (res > 0) {\n min = mid + 1;\n } else {\n return mid;\n }\n }\n\n return -1;\n}\nfunction range(index, end) {\n var range = [];\n\n while (index < end) {\n range.push(index++);\n }\n\n return range;\n}\n\nvar _class$4;\n\nfunction _createForOfIteratorHelperLoose$o(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$o(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$o(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$o(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$o(o, minLen); }\n\nfunction _arrayLikeToArray$o(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\ntry {\n var iconv = require('iconv-lite');\n} catch (err) {}\n\nvar CmapProcessor = (_class$4 = /*#__PURE__*/function () {\n function CmapProcessor(cmapTable) {\n // Attempt to find a Unicode cmap first\n this.encoding = null;\n this.cmap = this.findSubtable(cmapTable, [// 32-bit subtables\n [3, 10], [0, 6], [0, 4], // 16-bit subtables\n [3, 1], [0, 3], [0, 2], [0, 1], [0, 0]]); // If not unicode cmap was found, and iconv-lite is installed,\n // take the first table with a supported encoding.\n\n if (!this.cmap && iconv) {\n for (var _iterator = _createForOfIteratorHelperLoose$o(cmapTable.tables), _step; !(_step = _iterator()).done;) {\n var cmap = _step.value;\n var encoding = getEncoding(cmap.platformID, cmap.encodingID, cmap.table.language - 1);\n\n if (iconv.encodingExists(encoding)) {\n this.cmap = cmap.table;\n this.encoding = encoding;\n }\n }\n }\n\n if (!this.cmap) {\n throw new Error(\"Could not find a supported cmap table\");\n }\n\n this.uvs = this.findSubtable(cmapTable, [[0, 5]]);\n\n if (this.uvs && this.uvs.version !== 14) {\n this.uvs = null;\n }\n }\n\n var _proto = CmapProcessor.prototype;\n\n _proto.findSubtable = function findSubtable(cmapTable, pairs) {\n for (var _iterator2 = _createForOfIteratorHelperLoose$o(pairs), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n platformID = _step2$value[0],\n encodingID = _step2$value[1];\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$o(cmapTable.tables), _step3; !(_step3 = _iterator3()).done;) {\n var cmap = _step3.value;\n\n if (cmap.platformID === platformID && cmap.encodingID === encodingID) {\n return cmap.table;\n }\n }\n }\n\n return null;\n };\n\n _proto.lookup = function lookup(codepoint, variationSelector) {\n // If there is no Unicode cmap in this font, we need to re-encode\n // the codepoint in the encoding that the cmap supports.\n if (this.encoding) {\n var buf = iconv.encode(String.fromCodePoint(codepoint), this.encoding);\n codepoint = 0;\n\n for (var i = 0; i < buf.length; i++) {\n codepoint = codepoint << 8 | buf[i];\n } // Otherwise, try to get a Unicode variation selector for this codepoint if one is provided.\n\n } else if (variationSelector) {\n var gid = this.getVariationSelector(codepoint, variationSelector);\n\n if (gid) {\n return gid;\n }\n }\n\n var cmap = this.cmap;\n\n switch (cmap.version) {\n case 0:\n return cmap.codeMap.get(codepoint) || 0;\n\n case 4:\n {\n var min = 0;\n var max = cmap.segCount - 1;\n\n while (min <= max) {\n var mid = min + max >> 1;\n\n if (codepoint < cmap.startCode.get(mid)) {\n max = mid - 1;\n } else if (codepoint > cmap.endCode.get(mid)) {\n min = mid + 1;\n } else {\n var rangeOffset = cmap.idRangeOffset.get(mid);\n\n var _gid = void 0;\n\n if (rangeOffset === 0) {\n _gid = codepoint + cmap.idDelta.get(mid);\n } else {\n var index = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);\n _gid = cmap.glyphIndexArray.get(index) || 0;\n\n if (_gid !== 0) {\n _gid += cmap.idDelta.get(mid);\n }\n }\n\n return _gid & 0xffff;\n }\n }\n\n return 0;\n }\n\n case 8:\n throw new Error('TODO: cmap format 8');\n\n case 6:\n case 10:\n return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;\n\n case 12:\n case 13:\n {\n var _min = 0;\n\n var _max = cmap.nGroups - 1;\n\n while (_min <= _max) {\n var _mid = _min + _max >> 1;\n\n var group = cmap.groups.get(_mid);\n\n if (codepoint < group.startCharCode) {\n _max = _mid - 1;\n } else if (codepoint > group.endCharCode) {\n _min = _mid + 1;\n } else {\n if (cmap.version === 12) {\n return group.glyphID + (codepoint - group.startCharCode);\n } else {\n return group.glyphID;\n }\n }\n }\n\n return 0;\n }\n\n case 14:\n throw new Error('TODO: cmap format 14');\n\n default:\n throw new Error(\"Unknown cmap format \" + cmap.version);\n }\n };\n\n _proto.getVariationSelector = function getVariationSelector(codepoint, variationSelector) {\n if (!this.uvs) {\n return 0;\n }\n\n var selectors = this.uvs.varSelectors.toArray();\n var i = binarySearch(selectors, function (x) {\n return variationSelector - x.varSelector;\n });\n var sel = selectors[i];\n\n if (i !== -1 && sel.defaultUVS) {\n i = binarySearch(sel.defaultUVS, function (x) {\n return codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? +1 : 0;\n });\n }\n\n if (i !== -1 && sel.nonDefaultUVS) {\n i = binarySearch(sel.nonDefaultUVS, function (x) {\n return codepoint - x.unicodeValue;\n });\n\n if (i !== -1) {\n return sel.nonDefaultUVS[i].glyphID;\n }\n }\n\n return 0;\n };\n\n _proto.getCharacterSet = function getCharacterSet() {\n var cmap = this.cmap;\n\n switch (cmap.version) {\n case 0:\n return range(0, cmap.codeMap.length);\n\n case 4:\n {\n var res = [];\n var endCodes = cmap.endCode.toArray();\n\n for (var i = 0; i < endCodes.length; i++) {\n var tail = endCodes[i] + 1;\n var start = cmap.startCode.get(i);\n res.push.apply(res, range(start, tail));\n }\n\n return res;\n }\n\n case 8:\n throw new Error('TODO: cmap format 8');\n\n case 6:\n case 10:\n return range(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);\n\n case 12:\n case 13:\n {\n var _res = [];\n\n for (var _iterator4 = _createForOfIteratorHelperLoose$o(cmap.groups.toArray()), _step4; !(_step4 = _iterator4()).done;) {\n var group = _step4.value;\n\n _res.push.apply(_res, range(group.startCharCode, group.endCharCode + 1));\n }\n\n return _res;\n }\n\n case 14:\n throw new Error('TODO: cmap format 14');\n\n default:\n throw new Error(\"Unknown cmap format \" + cmap.version);\n }\n };\n\n _proto.codePointsForGlyph = function codePointsForGlyph(gid) {\n var cmap = this.cmap;\n\n switch (cmap.version) {\n case 0:\n {\n var res = [];\n\n for (var i = 0; i < 256; i++) {\n if (cmap.codeMap.get(i) === gid) {\n res.push(i);\n }\n }\n\n return res;\n }\n\n case 4:\n {\n var _res2 = [];\n\n for (var _i = 0; _i < cmap.segCount; _i++) {\n var end = cmap.endCode.get(_i);\n var start = cmap.startCode.get(_i);\n var rangeOffset = cmap.idRangeOffset.get(_i);\n var delta = cmap.idDelta.get(_i);\n\n for (var c = start; c <= end; c++) {\n var g = 0;\n\n if (rangeOffset === 0) {\n g = c + delta;\n } else {\n var index = rangeOffset / 2 + (c - start) - (cmap.segCount - _i);\n g = cmap.glyphIndexArray.get(index) || 0;\n\n if (g !== 0) {\n g += delta;\n }\n }\n\n if (g === gid) {\n _res2.push(c);\n }\n }\n }\n\n return _res2;\n }\n\n case 12:\n {\n var _res3 = [];\n\n for (var _iterator5 = _createForOfIteratorHelperLoose$o(cmap.groups.toArray()), _step5; !(_step5 = _iterator5()).done;) {\n var group = _step5.value;\n\n if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) {\n _res3.push(group.startCharCode + (gid - group.glyphID));\n }\n }\n\n return _res3;\n }\n\n case 13:\n {\n var _res4 = [];\n\n for (var _iterator6 = _createForOfIteratorHelperLoose$o(cmap.groups.toArray()), _step6; !(_step6 = _iterator6()).done;) {\n var _group = _step6.value;\n\n if (gid === _group.glyphID) {\n _res4.push.apply(_res4, range(_group.startCharCode, _group.endCharCode + 1));\n }\n }\n\n return _res4;\n }\n\n default:\n throw new Error(\"Unknown cmap format \" + cmap.version);\n }\n };\n\n return CmapProcessor;\n}(), (_applyDecoratedDescriptor(_class$4.prototype, \"getCharacterSet\", [cache], Object.getOwnPropertyDescriptor(_class$4.prototype, \"getCharacterSet\"), _class$4.prototype), _applyDecoratedDescriptor(_class$4.prototype, \"codePointsForGlyph\", [cache], Object.getOwnPropertyDescriptor(_class$4.prototype, \"codePointsForGlyph\"), _class$4.prototype)), _class$4);\n\nfunction _createForOfIteratorHelperLoose$n(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$n(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$n(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$n(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$n(o, minLen); }\n\nfunction _arrayLikeToArray$n(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar KernProcessor = /*#__PURE__*/function () {\n function KernProcessor(font) {\n this.kern = font.kern;\n }\n\n var _proto = KernProcessor.prototype;\n\n _proto.process = function process(glyphs, positions) {\n for (var glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++) {\n var left = glyphs[glyphIndex].id;\n var right = glyphs[glyphIndex + 1].id;\n positions[glyphIndex].xAdvance += this.getKerning(left, right);\n }\n };\n\n _proto.getKerning = function getKerning(left, right) {\n var res = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose$n(this.kern.tables), _step; !(_step = _iterator()).done;) {\n var table = _step.value;\n\n if (table.coverage.crossStream) {\n continue;\n }\n\n switch (table.version) {\n case 0:\n if (!table.coverage.horizontal) {\n continue;\n }\n\n break;\n\n case 1:\n if (table.coverage.vertical || table.coverage.variation) {\n continue;\n }\n\n break;\n\n default:\n throw new Error(\"Unsupported kerning table version \" + table.version);\n }\n\n var val = 0;\n var s = table.subtable;\n\n switch (table.format) {\n case 0:\n var pairIdx = binarySearch(s.pairs, function (pair) {\n return left - pair.left || right - pair.right;\n });\n\n if (pairIdx >= 0) {\n val = s.pairs[pairIdx].value;\n }\n\n break;\n\n case 2:\n var leftOffset = 0,\n rightOffset = 0;\n\n if (left >= s.leftTable.firstGlyph && left < s.leftTable.firstGlyph + s.leftTable.nGlyphs) {\n leftOffset = s.leftTable.offsets[left - s.leftTable.firstGlyph];\n } else {\n leftOffset = s.array.off;\n }\n\n if (right >= s.rightTable.firstGlyph && right < s.rightTable.firstGlyph + s.rightTable.nGlyphs) {\n rightOffset = s.rightTable.offsets[right - s.rightTable.firstGlyph];\n }\n\n var index = (leftOffset + rightOffset - s.array.off) / 2;\n val = s.array.values.get(index);\n break;\n\n case 3:\n if (left >= s.glyphCount || right >= s.glyphCount) {\n return 0;\n }\n\n val = s.kernValue[s.kernIndex[s.leftClass[left] * s.rightClassCount + s.rightClass[right]]];\n break;\n\n default:\n throw new Error(\"Unsupported kerning sub-table format \" + table.format);\n } // Microsoft supports the override flag, which resets the result\n // Otherwise, the sum of the results from all subtables is returned\n\n\n if (table.coverage.override) {\n res = val;\n } else {\n res += val;\n }\n }\n\n return res;\n };\n\n return KernProcessor;\n}();\n\n/**\n * This class is used when GPOS does not define 'mark' or 'mkmk' features\n * for positioning marks relative to base glyphs. It uses the unicode\n * combining class property to position marks.\n *\n * Based on code from Harfbuzz, thanks!\n * https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-fallback.cc\n */\n\nvar UnicodeLayoutEngine = /*#__PURE__*/function () {\n function UnicodeLayoutEngine(font) {\n this.font = font;\n }\n\n var _proto = UnicodeLayoutEngine.prototype;\n\n _proto.positionGlyphs = function positionGlyphs(glyphs, positions) {\n // find each base + mark cluster, and position the marks relative to the base\n var clusterStart = 0;\n var clusterEnd = 0;\n\n for (var index = 0; index < glyphs.length; index++) {\n var glyph = glyphs[index];\n\n if (glyph.isMark) {\n // TODO: handle ligatures\n clusterEnd = index;\n } else {\n if (clusterStart !== clusterEnd) {\n this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n }\n\n clusterStart = clusterEnd = index;\n }\n }\n\n if (clusterStart !== clusterEnd) {\n this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n }\n\n return positions;\n };\n\n _proto.positionCluster = function positionCluster(glyphs, positions, clusterStart, clusterEnd) {\n var base = glyphs[clusterStart];\n var baseBox = base.cbox.copy(); // adjust bounding box for ligature glyphs\n\n if (base.codePoints.length > 1) {\n // LTR. TODO: RTL support.\n baseBox.minX += (base.codePoints.length - 1) * baseBox.width / base.codePoints.length;\n }\n\n var xOffset = -positions[clusterStart].xAdvance;\n var yOffset = 0;\n var yGap = this.font.unitsPerEm / 16; // position each of the mark glyphs relative to the base glyph\n\n for (var index = clusterStart + 1; index <= clusterEnd; index++) {\n var mark = glyphs[index];\n var markBox = mark.cbox;\n var position = positions[index];\n var combiningClass = this.getCombiningClass(mark.codePoints[0]);\n\n if (combiningClass !== 'Not_Reordered') {\n position.xOffset = position.yOffset = 0; // x positioning\n\n switch (combiningClass) {\n case 'Double_Above':\n case 'Double_Below':\n // LTR. TODO: RTL support.\n position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;\n break;\n\n case 'Attached_Below_Left':\n case 'Below_Left':\n case 'Above_Left':\n // left align\n position.xOffset += baseBox.minX - markBox.minX;\n break;\n\n case 'Attached_Above_Right':\n case 'Below_Right':\n case 'Above_Right':\n // right align\n position.xOffset += baseBox.maxX - markBox.width - markBox.minX;\n break;\n\n default:\n // Attached_Below, Attached_Above, Below, Above, other\n // center align\n position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;\n } // y positioning\n\n\n switch (combiningClass) {\n case 'Double_Below':\n case 'Below_Left':\n case 'Below':\n case 'Below_Right':\n case 'Attached_Below_Left':\n case 'Attached_Below':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Below_Left' || combiningClass === 'Attached_Below') {\n baseBox.minY += yGap;\n }\n\n position.yOffset = -baseBox.minY - markBox.maxY;\n baseBox.minY += markBox.height;\n break;\n\n case 'Double_Above':\n case 'Above_Left':\n case 'Above':\n case 'Above_Right':\n case 'Attached_Above':\n case 'Attached_Above_Right':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Above' || combiningClass === 'Attached_Above_Right') {\n baseBox.maxY += yGap;\n }\n\n position.yOffset = baseBox.maxY - markBox.minY;\n baseBox.maxY += markBox.height;\n break;\n }\n\n position.xAdvance = position.yAdvance = 0;\n position.xOffset += xOffset;\n position.yOffset += yOffset;\n } else {\n xOffset -= position.xAdvance;\n yOffset -= position.yAdvance;\n }\n }\n\n return;\n };\n\n _proto.getCombiningClass = function getCombiningClass(codePoint) {\n var combiningClass = unicode.getCombiningClass(codePoint); // Thai / Lao need some per-character work\n\n if ((codePoint & ~0xff) === 0x0e00) {\n if (combiningClass === 'Not_Reordered') {\n switch (codePoint) {\n case 0x0e31:\n case 0x0e34:\n case 0x0e35:\n case 0x0e36:\n case 0x0e37:\n case 0x0e47:\n case 0x0e4c:\n case 0x0e3d:\n case 0x0e4e:\n return 'Above_Right';\n\n case 0x0eb1:\n case 0x0eb4:\n case 0x0eb5:\n case 0x0eb6:\n case 0x0eb7:\n case 0x0ebb:\n case 0x0ecc:\n case 0x0ecd:\n return 'Above';\n\n case 0x0ebc:\n return 'Below';\n }\n } else if (codePoint === 0x0e3a) {\n // virama\n return 'Below_Right';\n }\n }\n\n switch (combiningClass) {\n // Hebrew\n case 'CCC10': // sheva\n\n case 'CCC11': // hataf segol\n\n case 'CCC12': // hataf patah\n\n case 'CCC13': // hataf qamats\n\n case 'CCC14': // hiriq\n\n case 'CCC15': // tsere\n\n case 'CCC16': // segol\n\n case 'CCC17': // patah\n\n case 'CCC18': // qamats\n\n case 'CCC20': // qubuts\n\n case 'CCC22':\n // meteg\n return 'Below';\n\n case 'CCC23':\n // rafe\n return 'Attached_Above';\n\n case 'CCC24':\n // shin dot\n return 'Above_Right';\n\n case 'CCC25': // sin dot\n\n case 'CCC19':\n // holam\n return 'Above_Left';\n\n case 'CCC26':\n // point varika\n return 'Above';\n\n case 'CCC21':\n // dagesh\n break;\n // Arabic and Syriac\n\n case 'CCC27': // fathatan\n\n case 'CCC28': // dammatan\n\n case 'CCC30': // fatha\n\n case 'CCC31': // damma\n\n case 'CCC33': // shadda\n\n case 'CCC34': // sukun\n\n case 'CCC35': // superscript alef\n\n case 'CCC36':\n // superscript alaph\n return 'Above';\n\n case 'CCC29': // kasratan\n\n case 'CCC32':\n // kasra\n return 'Below';\n // Thai\n\n case 'CCC103':\n // sara u / sara uu\n return 'Below_Right';\n\n case 'CCC107':\n // mai\n return 'Above_Right';\n // Lao\n\n case 'CCC118':\n // sign u / sign uu\n return 'Below';\n\n case 'CCC122':\n // mai\n return 'Above';\n // Tibetan\n\n case 'CCC129': // sign aa\n\n case 'CCC132':\n // sign u\n return 'Below';\n\n case 'CCC130':\n // sign i\n return 'Above';\n }\n\n return combiningClass;\n };\n\n return UnicodeLayoutEngine;\n}();\n\n/**\n * Represents a glyph bounding box\n */\nvar BBox = /*#__PURE__*/function () {\n function BBox(minX, minY, maxX, maxY) {\n if (minX === void 0) {\n minX = Infinity;\n }\n\n if (minY === void 0) {\n minY = Infinity;\n }\n\n if (maxX === void 0) {\n maxX = -Infinity;\n }\n\n if (maxY === void 0) {\n maxY = -Infinity;\n }\n\n /**\n * The minimum X position in the bounding box\n * @type {number}\n */\n this.minX = minX;\n /**\n * The minimum Y position in the bounding box\n * @type {number}\n */\n\n this.minY = minY;\n /**\n * The maxmimum X position in the bounding box\n * @type {number}\n */\n\n this.maxX = maxX;\n /**\n * The maxmimum Y position in the bounding box\n * @type {number}\n */\n\n this.maxY = maxY;\n }\n /**\n * The width of the bounding box\n * @type {number}\n */\n\n\n var _proto = BBox.prototype;\n\n _proto.addPoint = function addPoint(x, y) {\n if (Math.abs(x) !== Infinity) {\n if (x < this.minX) {\n this.minX = x;\n }\n\n if (x > this.maxX) {\n this.maxX = x;\n }\n }\n\n if (Math.abs(y) !== Infinity) {\n if (y < this.minY) {\n this.minY = y;\n }\n\n if (y > this.maxY) {\n this.maxY = y;\n }\n }\n };\n\n _proto.copy = function copy() {\n return new BBox(this.minX, this.minY, this.maxX, this.maxY);\n };\n\n _createClass(BBox, [{\n key: \"width\",\n get: function get() {\n return this.maxX - this.minX;\n }\n /**\n * The height of the bounding box\n * @type {number}\n */\n\n }, {\n key: \"height\",\n get: function get() {\n return this.maxY - this.minY;\n }\n }]);\n\n return BBox;\n}();\n\nfunction _createForOfIteratorHelperLoose$m(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$m(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$m(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$m(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$m(o, minLen); }\n\nfunction _arrayLikeToArray$m(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n// Data from http://www.microsoft.com/typography/otspec/scripttags.htm\n// and http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt.\n\nvar UNICODE_SCRIPTS = {\n Caucasian_Albanian: 'aghb',\n Arabic: 'arab',\n Imperial_Aramaic: 'armi',\n Armenian: 'armn',\n Avestan: 'avst',\n Balinese: 'bali',\n Bamum: 'bamu',\n Bassa_Vah: 'bass',\n Batak: 'batk',\n Bengali: ['bng2', 'beng'],\n Bopomofo: 'bopo',\n Brahmi: 'brah',\n Braille: 'brai',\n Buginese: 'bugi',\n Buhid: 'buhd',\n Chakma: 'cakm',\n Canadian_Aboriginal: 'cans',\n Carian: 'cari',\n Cham: 'cham',\n Cherokee: 'cher',\n Coptic: 'copt',\n Cypriot: 'cprt',\n Cyrillic: 'cyrl',\n Devanagari: ['dev2', 'deva'],\n Deseret: 'dsrt',\n Duployan: 'dupl',\n Egyptian_Hieroglyphs: 'egyp',\n Elbasan: 'elba',\n Ethiopic: 'ethi',\n Georgian: 'geor',\n Glagolitic: 'glag',\n Gothic: 'goth',\n Grantha: 'gran',\n Greek: 'grek',\n Gujarati: ['gjr2', 'gujr'],\n Gurmukhi: ['gur2', 'guru'],\n Hangul: 'hang',\n Han: 'hani',\n Hanunoo: 'hano',\n Hebrew: 'hebr',\n Hiragana: 'hira',\n Pahawh_Hmong: 'hmng',\n Katakana_Or_Hiragana: 'hrkt',\n Old_Italic: 'ital',\n Javanese: 'java',\n Kayah_Li: 'kali',\n Katakana: 'kana',\n Kharoshthi: 'khar',\n Khmer: 'khmr',\n Khojki: 'khoj',\n Kannada: ['knd2', 'knda'],\n Kaithi: 'kthi',\n Tai_Tham: 'lana',\n Lao: 'lao ',\n Latin: 'latn',\n Lepcha: 'lepc',\n Limbu: 'limb',\n Linear_A: 'lina',\n Linear_B: 'linb',\n Lisu: 'lisu',\n Lycian: 'lyci',\n Lydian: 'lydi',\n Mahajani: 'mahj',\n Mandaic: 'mand',\n Manichaean: 'mani',\n Mende_Kikakui: 'mend',\n Meroitic_Cursive: 'merc',\n Meroitic_Hieroglyphs: 'mero',\n Malayalam: ['mlm2', 'mlym'],\n Modi: 'modi',\n Mongolian: 'mong',\n Mro: 'mroo',\n Meetei_Mayek: 'mtei',\n Myanmar: ['mym2', 'mymr'],\n Old_North_Arabian: 'narb',\n Nabataean: 'nbat',\n Nko: 'nko ',\n Ogham: 'ogam',\n Ol_Chiki: 'olck',\n Old_Turkic: 'orkh',\n Oriya: ['ory2', 'orya'],\n Osmanya: 'osma',\n Palmyrene: 'palm',\n Pau_Cin_Hau: 'pauc',\n Old_Permic: 'perm',\n Phags_Pa: 'phag',\n Inscriptional_Pahlavi: 'phli',\n Psalter_Pahlavi: 'phlp',\n Phoenician: 'phnx',\n Miao: 'plrd',\n Inscriptional_Parthian: 'prti',\n Rejang: 'rjng',\n Runic: 'runr',\n Samaritan: 'samr',\n Old_South_Arabian: 'sarb',\n Saurashtra: 'saur',\n Shavian: 'shaw',\n Sharada: 'shrd',\n Siddham: 'sidd',\n Khudawadi: 'sind',\n Sinhala: 'sinh',\n Sora_Sompeng: 'sora',\n Sundanese: 'sund',\n Syloti_Nagri: 'sylo',\n Syriac: 'syrc',\n Tagbanwa: 'tagb',\n Takri: 'takr',\n Tai_Le: 'tale',\n New_Tai_Lue: 'talu',\n Tamil: ['tml2', 'taml'],\n Tai_Viet: 'tavt',\n Telugu: ['tel2', 'telu'],\n Tifinagh: 'tfng',\n Tagalog: 'tglg',\n Thaana: 'thaa',\n Thai: 'thai',\n Tibetan: 'tibt',\n Tirhuta: 'tirh',\n Ugaritic: 'ugar',\n Vai: 'vai ',\n Warang_Citi: 'wara',\n Old_Persian: 'xpeo',\n Cuneiform: 'xsux',\n Yi: 'yi ',\n Inherited: 'zinh',\n Common: 'zyyy',\n Unknown: 'zzzz'\n};\nvar OPENTYPE_SCRIPTS = {};\n\nfor (var script in UNICODE_SCRIPTS) {\n var tag = UNICODE_SCRIPTS[script];\n\n if (Array.isArray(tag)) {\n for (var _iterator = _createForOfIteratorHelperLoose$m(tag), _step; !(_step = _iterator()).done;) {\n var t = _step.value;\n OPENTYPE_SCRIPTS[t] = script;\n }\n } else {\n OPENTYPE_SCRIPTS[tag] = script;\n }\n}\nfunction fromOpenType(tag) {\n return OPENTYPE_SCRIPTS[tag];\n}\nfunction forString(string) {\n var len = string.length;\n var idx = 0;\n\n while (idx < len) {\n var code = string.charCodeAt(idx++); // Check if this is a high surrogate\n\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n var next = string.charCodeAt(idx); // Check if this is a low surrogate\n\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3FF) << 10) + (next & 0x3FF) + 0x10000;\n }\n }\n\n var _script = unicode.getScript(code);\n\n if (_script !== 'Common' && _script !== 'Inherited' && _script !== 'Unknown') {\n return UNICODE_SCRIPTS[_script];\n }\n }\n\n return UNICODE_SCRIPTS.Unknown;\n}\nfunction forCodePoints(codePoints) {\n for (var i = 0; i < codePoints.length; i++) {\n var codePoint = codePoints[i];\n\n var _script2 = unicode.getScript(codePoint);\n\n if (_script2 !== 'Common' && _script2 !== 'Inherited' && _script2 !== 'Unknown') {\n return UNICODE_SCRIPTS[_script2];\n }\n }\n\n return UNICODE_SCRIPTS.Unknown;\n} // The scripts in this map are written from right to left\n\nvar RTL = {\n arab: true,\n // Arabic\n hebr: true,\n // Hebrew\n syrc: true,\n // Syriac\n thaa: true,\n // Thaana\n cprt: true,\n // Cypriot Syllabary\n khar: true,\n // Kharosthi\n phnx: true,\n // Phoenician\n 'nko ': true,\n // N'Ko\n lydi: true,\n // Lydian\n avst: true,\n // Avestan\n armi: true,\n // Imperial Aramaic\n phli: true,\n // Inscriptional Pahlavi\n prti: true,\n // Inscriptional Parthian\n sarb: true,\n // Old South Arabian\n orkh: true,\n // Old Turkic, Orkhon Runic\n samr: true,\n // Samaritan\n mand: true,\n // Mandaic, Mandaean\n merc: true,\n // Meroitic Cursive\n mero: true,\n // Meroitic Hieroglyphs\n // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)\n mani: true,\n // Manichaean\n mend: true,\n // Mende Kikakui\n nbat: true,\n // Nabataean\n narb: true,\n // Old North Arabian\n palm: true,\n // Palmyrene\n phlp: true // Psalter Pahlavi\n\n};\nfunction direction(script) {\n if (RTL[script]) {\n return 'rtl';\n }\n\n return 'ltr';\n}\n\nfunction _createForOfIteratorHelperLoose$l(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$l(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$l(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$l(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$l(o, minLen); }\n\nfunction _arrayLikeToArray$l(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n/**\n * Represents a run of Glyph and GlyphPosition objects.\n * Returned by the font layout method.\n */\n\nvar GlyphRun = /*#__PURE__*/function () {\n function GlyphRun(glyphs, features, script, language, direction$1) {\n /**\n * An array of Glyph objects in the run\n * @type {Glyph[]}\n */\n this.glyphs = glyphs;\n /**\n * An array of GlyphPosition objects for each glyph in the run\n * @type {GlyphPosition[]}\n */\n\n this.positions = null;\n /**\n * The script that was requested for shaping. This was either passed in or detected automatically.\n * @type {string}\n */\n\n this.script = script;\n /**\n * The language requested for shaping, as passed in. If `null`, the default language for the\n * script was used.\n * @type {string}\n */\n\n this.language = language || null;\n /**\n * The direction requested for shaping, as passed in (either ltr or rtl).\n * If `null`, the default direction of the script is used.\n * @type {string}\n */\n\n this.direction = direction$1 || direction(script);\n /**\n * The features requested during shaping. This is a combination of user\n * specified features and features chosen by the shaper.\n * @type {object}\n */\n\n this.features = {}; // Convert features to an object\n\n if (Array.isArray(features)) {\n for (var _iterator = _createForOfIteratorHelperLoose$l(features), _step; !(_step = _iterator()).done;) {\n var tag = _step.value;\n this.features[tag] = true;\n }\n } else if (typeof features === 'object') {\n this.features = features;\n }\n }\n /**\n * The total advance width of the run.\n * @type {number}\n */\n\n\n _createClass(GlyphRun, [{\n key: \"advanceWidth\",\n get: function get() {\n var width = 0;\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$l(this.positions), _step2; !(_step2 = _iterator2()).done;) {\n var position = _step2.value;\n width += position.xAdvance;\n }\n\n return width;\n }\n /**\n * The total advance height of the run.\n * @type {number}\n */\n\n }, {\n key: \"advanceHeight\",\n get: function get() {\n var height = 0;\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$l(this.positions), _step3; !(_step3 = _iterator3()).done;) {\n var position = _step3.value;\n height += position.yAdvance;\n }\n\n return height;\n }\n /**\n * The bounding box containing all glyphs in the run.\n * @type {BBox}\n */\n\n }, {\n key: \"bbox\",\n get: function get() {\n var bbox = new BBox();\n var x = 0;\n var y = 0;\n\n for (var index = 0; index < this.glyphs.length; index++) {\n var glyph = this.glyphs[index];\n var p = this.positions[index];\n var b = glyph.bbox;\n bbox.addPoint(b.minX + x + p.xOffset, b.minY + y + p.yOffset);\n bbox.addPoint(b.maxX + x + p.xOffset, b.maxY + y + p.yOffset);\n x += p.xAdvance;\n y += p.yAdvance;\n }\n\n return bbox;\n }\n }]);\n\n return GlyphRun;\n}();\n\n/**\n * Represents positioning information for a glyph in a GlyphRun.\n */\nvar GlyphPosition = function GlyphPosition(xAdvance, yAdvance, xOffset, yOffset) {\n if (xAdvance === void 0) {\n xAdvance = 0;\n }\n\n if (yAdvance === void 0) {\n yAdvance = 0;\n }\n\n if (xOffset === void 0) {\n xOffset = 0;\n }\n\n if (yOffset === void 0) {\n yOffset = 0;\n }\n\n /**\n * The amount to move the virtual pen in the X direction after rendering this glyph.\n * @type {number}\n */\n this.xAdvance = xAdvance;\n /**\n * The amount to move the virtual pen in the Y direction after rendering this glyph.\n * @type {number}\n */\n\n this.yAdvance = yAdvance;\n /**\n * The offset from the pen position in the X direction at which to render this glyph.\n * @type {number}\n */\n\n this.xOffset = xOffset;\n /**\n * The offset from the pen position in the Y direction at which to render this glyph.\n * @type {number}\n */\n\n this.yOffset = yOffset;\n};\n\n// see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html\n// and /System/Library/Frameworks/CoreText.framework/Versions/A/Headers/SFNTLayoutTypes.h on a Mac\nvar features = {\n allTypographicFeatures: {\n code: 0,\n exclusive: false,\n allTypeFeatures: 0\n },\n ligatures: {\n code: 1,\n exclusive: false,\n requiredLigatures: 0,\n commonLigatures: 2,\n rareLigatures: 4,\n // logos: 6\n rebusPictures: 8,\n diphthongLigatures: 10,\n squaredLigatures: 12,\n abbrevSquaredLigatures: 14,\n symbolLigatures: 16,\n contextualLigatures: 18,\n historicalLigatures: 20\n },\n cursiveConnection: {\n code: 2,\n exclusive: true,\n unconnected: 0,\n partiallyConnected: 1,\n cursive: 2\n },\n letterCase: {\n code: 3,\n exclusive: true\n },\n // upperAndLowerCase: 0 # deprecated\n // allCaps: 1 # deprecated\n // allLowerCase: 2 # deprecated\n // smallCaps: 3 # deprecated\n // initialCaps: 4 # deprecated\n // initialCapsAndSmallCaps: 5 # deprecated\n verticalSubstitution: {\n code: 4,\n exclusive: false,\n substituteVerticalForms: 0\n },\n linguisticRearrangement: {\n code: 5,\n exclusive: false,\n linguisticRearrangement: 0\n },\n numberSpacing: {\n code: 6,\n exclusive: true,\n monospacedNumbers: 0,\n proportionalNumbers: 1,\n thirdWidthNumbers: 2,\n quarterWidthNumbers: 3\n },\n smartSwash: {\n code: 8,\n exclusive: false,\n wordInitialSwashes: 0,\n wordFinalSwashes: 2,\n // lineInitialSwashes: 4\n // lineFinalSwashes: 6\n nonFinalSwashes: 8\n },\n diacritics: {\n code: 9,\n exclusive: true,\n showDiacritics: 0,\n hideDiacritics: 1,\n decomposeDiacritics: 2\n },\n verticalPosition: {\n code: 10,\n exclusive: true,\n normalPosition: 0,\n superiors: 1,\n inferiors: 2,\n ordinals: 3,\n scientificInferiors: 4\n },\n fractions: {\n code: 11,\n exclusive: true,\n noFractions: 0,\n verticalFractions: 1,\n diagonalFractions: 2\n },\n overlappingCharacters: {\n code: 13,\n exclusive: false,\n preventOverlap: 0\n },\n typographicExtras: {\n code: 14,\n exclusive: false,\n // hyphensToEmDash: 0\n // hyphenToEnDash: 2\n slashedZero: 4\n },\n // formInterrobang: 6\n // smartQuotes: 8\n // periodsToEllipsis: 10\n mathematicalExtras: {\n code: 15,\n exclusive: false,\n // hyphenToMinus: 0\n // asteristoMultiply: 2\n // slashToDivide: 4\n // inequalityLigatures: 6\n // exponents: 8\n mathematicalGreek: 10\n },\n ornamentSets: {\n code: 16,\n exclusive: true,\n noOrnaments: 0,\n dingbats: 1,\n piCharacters: 2,\n fleurons: 3,\n decorativeBorders: 4,\n internationalSymbols: 5,\n mathSymbols: 6\n },\n characterAlternatives: {\n code: 17,\n exclusive: true,\n noAlternates: 0\n },\n // user defined options\n designComplexity: {\n code: 18,\n exclusive: true,\n designLevel1: 0,\n designLevel2: 1,\n designLevel3: 2,\n designLevel4: 3,\n designLevel5: 4\n },\n styleOptions: {\n code: 19,\n exclusive: true,\n noStyleOptions: 0,\n displayText: 1,\n engravedText: 2,\n illuminatedCaps: 3,\n titlingCaps: 4,\n tallCaps: 5\n },\n characterShape: {\n code: 20,\n exclusive: true,\n traditionalCharacters: 0,\n simplifiedCharacters: 1,\n JIS1978Characters: 2,\n JIS1983Characters: 3,\n JIS1990Characters: 4,\n traditionalAltOne: 5,\n traditionalAltTwo: 6,\n traditionalAltThree: 7,\n traditionalAltFour: 8,\n traditionalAltFive: 9,\n expertCharacters: 10,\n JIS2004Characters: 11,\n hojoCharacters: 12,\n NLCCharacters: 13,\n traditionalNamesCharacters: 14\n },\n numberCase: {\n code: 21,\n exclusive: true,\n lowerCaseNumbers: 0,\n upperCaseNumbers: 1\n },\n textSpacing: {\n code: 22,\n exclusive: true,\n proportionalText: 0,\n monospacedText: 1,\n halfWidthText: 2,\n thirdWidthText: 3,\n quarterWidthText: 4,\n altProportionalText: 5,\n altHalfWidthText: 6\n },\n transliteration: {\n code: 23,\n exclusive: true,\n noTransliteration: 0\n },\n // hanjaToHangul: 1\n // hiraganaToKatakana: 2\n // katakanaToHiragana: 3\n // kanaToRomanization: 4\n // romanizationToHiragana: 5\n // romanizationToKatakana: 6\n // hanjaToHangulAltOne: 7\n // hanjaToHangulAltTwo: 8\n // hanjaToHangulAltThree: 9\n annotation: {\n code: 24,\n exclusive: true,\n noAnnotation: 0,\n boxAnnotation: 1,\n roundedBoxAnnotation: 2,\n circleAnnotation: 3,\n invertedCircleAnnotation: 4,\n parenthesisAnnotation: 5,\n periodAnnotation: 6,\n romanNumeralAnnotation: 7,\n diamondAnnotation: 8,\n invertedBoxAnnotation: 9,\n invertedRoundedBoxAnnotation: 10\n },\n kanaSpacing: {\n code: 25,\n exclusive: true,\n fullWidthKana: 0,\n proportionalKana: 1\n },\n ideographicSpacing: {\n code: 26,\n exclusive: true,\n fullWidthIdeographs: 0,\n proportionalIdeographs: 1,\n halfWidthIdeographs: 2\n },\n unicodeDecomposition: {\n code: 27,\n exclusive: false,\n canonicalComposition: 0,\n compatibilityComposition: 2,\n transcodingComposition: 4\n },\n rubyKana: {\n code: 28,\n exclusive: false,\n // noRubyKana: 0 # deprecated - use rubyKanaOff instead\n // rubyKana: 1 # deprecated - use rubyKanaOn instead\n rubyKana: 2\n },\n CJKSymbolAlternatives: {\n code: 29,\n exclusive: true,\n noCJKSymbolAlternatives: 0,\n CJKSymbolAltOne: 1,\n CJKSymbolAltTwo: 2,\n CJKSymbolAltThree: 3,\n CJKSymbolAltFour: 4,\n CJKSymbolAltFive: 5\n },\n ideographicAlternatives: {\n code: 30,\n exclusive: true,\n noIdeographicAlternatives: 0,\n ideographicAltOne: 1,\n ideographicAltTwo: 2,\n ideographicAltThree: 3,\n ideographicAltFour: 4,\n ideographicAltFive: 5\n },\n CJKVerticalRomanPlacement: {\n code: 31,\n exclusive: true,\n CJKVerticalRomanCentered: 0,\n CJKVerticalRomanHBaseline: 1\n },\n italicCJKRoman: {\n code: 32,\n exclusive: false,\n // noCJKItalicRoman: 0 # deprecated - use CJKItalicRomanOff instead\n // CJKItalicRoman: 1 # deprecated - use CJKItalicRomanOn instead\n CJKItalicRoman: 2\n },\n caseSensitiveLayout: {\n code: 33,\n exclusive: false,\n caseSensitiveLayout: 0,\n caseSensitiveSpacing: 2\n },\n alternateKana: {\n code: 34,\n exclusive: false,\n alternateHorizKana: 0,\n alternateVertKana: 2\n },\n stylisticAlternatives: {\n code: 35,\n exclusive: false,\n noStylisticAlternates: 0,\n stylisticAltOne: 2,\n stylisticAltTwo: 4,\n stylisticAltThree: 6,\n stylisticAltFour: 8,\n stylisticAltFive: 10,\n stylisticAltSix: 12,\n stylisticAltSeven: 14,\n stylisticAltEight: 16,\n stylisticAltNine: 18,\n stylisticAltTen: 20,\n stylisticAltEleven: 22,\n stylisticAltTwelve: 24,\n stylisticAltThirteen: 26,\n stylisticAltFourteen: 28,\n stylisticAltFifteen: 30,\n stylisticAltSixteen: 32,\n stylisticAltSeventeen: 34,\n stylisticAltEighteen: 36,\n stylisticAltNineteen: 38,\n stylisticAltTwenty: 40\n },\n contextualAlternates: {\n code: 36,\n exclusive: false,\n contextualAlternates: 0,\n swashAlternates: 2,\n contextualSwashAlternates: 4\n },\n lowerCase: {\n code: 37,\n exclusive: true,\n defaultLowerCase: 0,\n lowerCaseSmallCaps: 1,\n lowerCasePetiteCaps: 2\n },\n upperCase: {\n code: 38,\n exclusive: true,\n defaultUpperCase: 0,\n upperCaseSmallCaps: 1,\n upperCasePetiteCaps: 2\n },\n languageTag: {\n // indices into ltag table\n code: 39,\n exclusive: true\n },\n CJKRomanSpacing: {\n code: 103,\n exclusive: true,\n halfWidthCJKRoman: 0,\n proportionalCJKRoman: 1,\n defaultCJKRoman: 2,\n fullWidthCJKRoman: 3\n }\n};\n\nvar feature = function feature(name, selector) {\n return [features[name].code, features[name][selector]];\n};\n\nvar OTMapping = {\n rlig: feature('ligatures', 'requiredLigatures'),\n clig: feature('ligatures', 'contextualLigatures'),\n dlig: feature('ligatures', 'rareLigatures'),\n hlig: feature('ligatures', 'historicalLigatures'),\n liga: feature('ligatures', 'commonLigatures'),\n hist: feature('ligatures', 'historicalLigatures'),\n // ??\n smcp: feature('lowerCase', 'lowerCaseSmallCaps'),\n pcap: feature('lowerCase', 'lowerCasePetiteCaps'),\n frac: feature('fractions', 'diagonalFractions'),\n dnom: feature('fractions', 'diagonalFractions'),\n // ??\n numr: feature('fractions', 'diagonalFractions'),\n // ??\n afrc: feature('fractions', 'verticalFractions'),\n // aalt\n // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?\n // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?\n // unic, vatu, vhal, vjmo, vpal, vrt2\n // dist -> trak table?\n // kern, vkrn -> kern table\n // lfbd + opbd + rtbd -> opbd table?\n // mark, mkmk -> acnt table?\n // locl -> languageTag + ltag table\n case: feature('caseSensitiveLayout', 'caseSensitiveLayout'),\n // also caseSensitiveSpacing\n ccmp: feature('unicodeDecomposition', 'canonicalComposition'),\n // compatibilityComposition?\n cpct: feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n // guess..., probably not given below\n valt: feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n swsh: feature('contextualAlternates', 'swashAlternates'),\n cswh: feature('contextualAlternates', 'contextualSwashAlternates'),\n curs: feature('cursiveConnection', 'cursive'),\n // ??\n c2pc: feature('upperCase', 'upperCasePetiteCaps'),\n c2sc: feature('upperCase', 'upperCaseSmallCaps'),\n init: feature('smartSwash', 'wordInitialSwashes'),\n // ??\n fin2: feature('smartSwash', 'wordFinalSwashes'),\n // ??\n medi: feature('smartSwash', 'nonFinalSwashes'),\n // ??\n med2: feature('smartSwash', 'nonFinalSwashes'),\n // ??\n fin3: feature('smartSwash', 'wordFinalSwashes'),\n // ??\n fina: feature('smartSwash', 'wordFinalSwashes'),\n // ??\n pkna: feature('kanaSpacing', 'proportionalKana'),\n half: feature('textSpacing', 'halfWidthText'),\n // also HalfWidthCJKRoman, HalfWidthIdeographs?\n halt: feature('textSpacing', 'altHalfWidthText'),\n hkna: feature('alternateKana', 'alternateHorizKana'),\n vkna: feature('alternateKana', 'alternateVertKana'),\n // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated\n ital: feature('italicCJKRoman', 'CJKItalicRoman'),\n lnum: feature('numberCase', 'upperCaseNumbers'),\n onum: feature('numberCase', 'lowerCaseNumbers'),\n mgrk: feature('mathematicalExtras', 'mathematicalGreek'),\n // nalt: not enough info. what type of annotation?\n // ornm: ditto, which ornament style?\n calt: feature('contextualAlternates', 'contextualAlternates'),\n // or more?\n vrt2: feature('verticalSubstitution', 'substituteVerticalForms'),\n // oh... below?\n vert: feature('verticalSubstitution', 'substituteVerticalForms'),\n tnum: feature('numberSpacing', 'monospacedNumbers'),\n pnum: feature('numberSpacing', 'proportionalNumbers'),\n sups: feature('verticalPosition', 'superiors'),\n subs: feature('verticalPosition', 'inferiors'),\n ordn: feature('verticalPosition', 'ordinals'),\n pwid: feature('textSpacing', 'proportionalText'),\n hwid: feature('textSpacing', 'halfWidthText'),\n qwid: feature('textSpacing', 'quarterWidthText'),\n // also QuarterWidthNumbers?\n twid: feature('textSpacing', 'thirdWidthText'),\n // also ThirdWidthNumbers?\n fwid: feature('textSpacing', 'proportionalText'),\n //??\n palt: feature('textSpacing', 'altProportionalText'),\n trad: feature('characterShape', 'traditionalCharacters'),\n smpl: feature('characterShape', 'simplifiedCharacters'),\n jp78: feature('characterShape', 'JIS1978Characters'),\n jp83: feature('characterShape', 'JIS1983Characters'),\n jp90: feature('characterShape', 'JIS1990Characters'),\n jp04: feature('characterShape', 'JIS2004Characters'),\n expt: feature('characterShape', 'expertCharacters'),\n hojo: feature('characterShape', 'hojoCharacters'),\n nlck: feature('characterShape', 'NLCCharacters'),\n tnam: feature('characterShape', 'traditionalNamesCharacters'),\n ruby: feature('rubyKana', 'rubyKana'),\n titl: feature('styleOptions', 'titlingCaps'),\n zero: feature('typographicExtras', 'slashedZero'),\n ss01: feature('stylisticAlternatives', 'stylisticAltOne'),\n ss02: feature('stylisticAlternatives', 'stylisticAltTwo'),\n ss03: feature('stylisticAlternatives', 'stylisticAltThree'),\n ss04: feature('stylisticAlternatives', 'stylisticAltFour'),\n ss05: feature('stylisticAlternatives', 'stylisticAltFive'),\n ss06: feature('stylisticAlternatives', 'stylisticAltSix'),\n ss07: feature('stylisticAlternatives', 'stylisticAltSeven'),\n ss08: feature('stylisticAlternatives', 'stylisticAltEight'),\n ss09: feature('stylisticAlternatives', 'stylisticAltNine'),\n ss10: feature('stylisticAlternatives', 'stylisticAltTen'),\n ss11: feature('stylisticAlternatives', 'stylisticAltEleven'),\n ss12: feature('stylisticAlternatives', 'stylisticAltTwelve'),\n ss13: feature('stylisticAlternatives', 'stylisticAltThirteen'),\n ss14: feature('stylisticAlternatives', 'stylisticAltFourteen'),\n ss15: feature('stylisticAlternatives', 'stylisticAltFifteen'),\n ss16: feature('stylisticAlternatives', 'stylisticAltSixteen'),\n ss17: feature('stylisticAlternatives', 'stylisticAltSeventeen'),\n ss18: feature('stylisticAlternatives', 'stylisticAltEighteen'),\n ss19: feature('stylisticAlternatives', 'stylisticAltNineteen'),\n ss20: feature('stylisticAlternatives', 'stylisticAltTwenty')\n}; // salt: feature 'stylisticAlternatives', 'stylisticAltOne' # hmm, which one to choose\n// Add cv01-cv99 features\n\nfor (var i = 1; i <= 99; i++) {\n OTMapping[\"cv\" + (\"00\" + i).slice(-2)] = [features.characterAlternatives.code, i];\n} // create inverse mapping\n\n\nvar AATMapping = {};\n\nfor (var ot in OTMapping) {\n var aat = OTMapping[ot];\n\n if (AATMapping[aat[0]] == null) {\n AATMapping[aat[0]] = {};\n }\n\n AATMapping[aat[0]][aat[1]] = ot;\n} // Maps an array of OpenType features to AAT features\n// in the form of {featureType:{featureSetting:true}}\n\n\nfunction mapOTToAAT(features) {\n var res = {};\n\n for (var k in features) {\n var r = void 0;\n\n if (r = OTMapping[k]) {\n if (res[r[0]] == null) {\n res[r[0]] = {};\n }\n\n res[r[0]][r[1]] = features[k];\n }\n }\n\n return res;\n} // Maps strings in a [featureType, featureSetting]\n// to their equivalent number codes\n\nfunction mapFeatureStrings(f) {\n var type = f[0],\n setting = f[1];\n\n if (isNaN(type)) {\n var typeCode = features[type] && features[type].code;\n } else {\n var typeCode = type;\n }\n\n if (isNaN(setting)) {\n var settingCode = features[type] && features[type][setting];\n } else {\n var settingCode = setting;\n }\n\n return [typeCode, settingCode];\n} // Maps AAT features to an array of OpenType features\n// Supports both arrays in the form of [[featureType, featureSetting]]\n// and objects in the form of {featureType:{featureSetting:true}}\n// featureTypes and featureSettings can be either strings or number codes\n\n\nfunction mapAATToOT(features) {\n var res = {};\n\n if (Array.isArray(features)) {\n for (var k = 0; k < features.length; k++) {\n var r = void 0;\n var f = mapFeatureStrings(features[k]);\n\n if (r = AATMapping[f[0]] && AATMapping[f[0]][f[1]]) {\n res[r] = true;\n }\n }\n } else if (typeof features === 'object') {\n for (var type in features) {\n var _feature = features[type];\n\n for (var setting in _feature) {\n var _r = void 0;\n\n var _f = mapFeatureStrings([type, setting]);\n\n if (_feature[setting] && (_r = AATMapping[_f[0]] && AATMapping[_f[0]][_f[1]])) {\n res[_r] = true;\n }\n }\n }\n }\n\n return Object.keys(res);\n}\n\nvar _class$3;\n\nfunction _createForOfIteratorHelperLoose$k(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$k(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$k(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$k(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$k(o, minLen); }\n\nfunction _arrayLikeToArray$k(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar AATLookupTable = (_class$3 = /*#__PURE__*/function () {\n function AATLookupTable(table) {\n this.table = table;\n }\n\n var _proto = AATLookupTable.prototype;\n\n _proto.lookup = function lookup(glyph) {\n switch (this.table.version) {\n case 0:\n // simple array format\n return this.table.values.getItem(glyph);\n\n case 2: // segment format\n\n case 4:\n {\n var min = 0;\n var max = this.table.binarySearchHeader.nUnits - 1;\n\n while (min <= max) {\n var mid = min + max >> 1;\n var seg = this.table.segments[mid]; // special end of search value\n\n if (seg.firstGlyph === 0xffff) {\n return null;\n }\n\n if (glyph < seg.firstGlyph) {\n max = mid - 1;\n } else if (glyph > seg.lastGlyph) {\n min = mid + 1;\n } else {\n if (this.table.version === 2) {\n return seg.value;\n } else {\n return seg.values[glyph - seg.firstGlyph];\n }\n }\n }\n\n return null;\n }\n\n case 6:\n {\n // lookup single\n var _min = 0;\n\n var _max = this.table.binarySearchHeader.nUnits - 1;\n\n while (_min <= _max) {\n var mid = _min + _max >> 1;\n var seg = this.table.segments[mid]; // special end of search value\n\n if (seg.glyph === 0xffff) {\n return null;\n }\n\n if (glyph < seg.glyph) {\n _max = mid - 1;\n } else if (glyph > seg.glyph) {\n _min = mid + 1;\n } else {\n return seg.value;\n }\n }\n\n return null;\n }\n\n case 8:\n // lookup trimmed\n return this.table.values[glyph - this.table.firstGlyph];\n\n default:\n throw new Error(\"Unknown lookup table format: \" + this.table.version);\n }\n };\n\n _proto.glyphsForValue = function glyphsForValue(classValue) {\n var res = [];\n\n switch (this.table.version) {\n case 2: // segment format\n\n case 4:\n {\n for (var _iterator = _createForOfIteratorHelperLoose$k(this.table.segments), _step; !(_step = _iterator()).done;) {\n var segment = _step.value;\n\n if (this.table.version === 2 && segment.value === classValue) {\n res.push.apply(res, range(segment.firstGlyph, segment.lastGlyph + 1));\n } else {\n for (var index = 0; index < segment.values.length; index++) {\n if (segment.values[index] === classValue) {\n res.push(segment.firstGlyph + index);\n }\n }\n }\n }\n\n break;\n }\n\n case 6:\n {\n // lookup single\n for (var _iterator2 = _createForOfIteratorHelperLoose$k(this.table.segments), _step2; !(_step2 = _iterator2()).done;) {\n var _segment = _step2.value;\n\n if (_segment.value === classValue) {\n res.push(_segment.glyph);\n }\n }\n\n break;\n }\n\n case 8:\n {\n // lookup trimmed\n for (var i = 0; i < this.table.values.length; i++) {\n if (this.table.values[i] === classValue) {\n res.push(this.table.firstGlyph + i);\n }\n }\n\n break;\n }\n\n default:\n throw new Error(\"Unknown lookup table format: \" + this.table.version);\n }\n\n return res;\n };\n\n return AATLookupTable;\n}(), (_applyDecoratedDescriptor(_class$3.prototype, \"glyphsForValue\", [cache], Object.getOwnPropertyDescriptor(_class$3.prototype, \"glyphsForValue\"), _class$3.prototype)), _class$3);\n\nfunction _createForOfIteratorHelperLoose$j(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$j(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$j(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$j(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$j(o, minLen); }\n\nfunction _arrayLikeToArray$j(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar START_OF_TEXT_STATE = 0;\nvar END_OF_TEXT_CLASS = 0;\nvar OUT_OF_BOUNDS_CLASS = 1;\nvar DELETED_GLYPH_CLASS = 2;\nvar DONT_ADVANCE = 0x4000;\n\nvar AATStateMachine = /*#__PURE__*/function () {\n function AATStateMachine(stateTable) {\n this.stateTable = stateTable;\n this.lookupTable = new AATLookupTable(stateTable.classTable);\n }\n\n var _proto = AATStateMachine.prototype;\n\n _proto.process = function process(glyphs, reverse, processEntry) {\n var currentState = START_OF_TEXT_STATE; // START_OF_LINE_STATE is used for kashida glyph insertions sometimes I think?\n\n var index = reverse ? glyphs.length - 1 : 0;\n var dir = reverse ? -1 : 1;\n\n while (dir === 1 && index <= glyphs.length || dir === -1 && index >= -1) {\n var glyph = null;\n var classCode = OUT_OF_BOUNDS_CLASS;\n var shouldAdvance = true;\n\n if (index === glyphs.length || index === -1) {\n classCode = END_OF_TEXT_CLASS;\n } else {\n glyph = glyphs[index];\n\n if (glyph.id === 0xffff) {\n // deleted glyph\n classCode = DELETED_GLYPH_CLASS;\n } else {\n classCode = this.lookupTable.lookup(glyph.id);\n\n if (classCode == null) {\n classCode = OUT_OF_BOUNDS_CLASS;\n }\n }\n }\n\n var row = this.stateTable.stateArray.getItem(currentState);\n var entryIndex = row[classCode];\n var entry = this.stateTable.entryTable.getItem(entryIndex);\n\n if (classCode !== END_OF_TEXT_CLASS && classCode !== DELETED_GLYPH_CLASS) {\n processEntry(glyph, entry, index);\n shouldAdvance = !(entry.flags & DONT_ADVANCE);\n }\n\n currentState = entry.newState;\n\n if (shouldAdvance) {\n index += dir;\n }\n }\n\n return glyphs;\n }\n /**\n * Performs a depth-first traversal of the glyph strings\n * represented by the state machine.\n */\n ;\n\n _proto.traverse = function traverse(opts, state, visited) {\n if (state === void 0) {\n state = 0;\n }\n\n if (visited === void 0) {\n visited = new Set();\n }\n\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n var _this$stateTable = this.stateTable,\n nClasses = _this$stateTable.nClasses,\n stateArray = _this$stateTable.stateArray,\n entryTable = _this$stateTable.entryTable;\n var row = stateArray.getItem(state); // Skip predefined classes\n\n for (var classCode = 4; classCode < nClasses; classCode++) {\n var entryIndex = row[classCode];\n var entry = entryTable.getItem(entryIndex); // Try all glyphs in the class\n\n for (var _iterator = _createForOfIteratorHelperLoose$j(this.lookupTable.glyphsForValue(classCode)), _step; !(_step = _iterator()).done;) {\n var glyph = _step.value;\n\n if (opts.enter) {\n opts.enter(glyph, entry);\n }\n\n if (entry.newState !== 0) {\n this.traverse(opts, entry.newState, visited);\n }\n\n if (opts.exit) {\n opts.exit(glyph, entry);\n }\n }\n }\n };\n\n return AATStateMachine;\n}();\n\nvar _class$2;\n\nfunction _createForOfIteratorHelperLoose$i(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$i(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$i(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$i(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$i(o, minLen); }\n\nfunction _arrayLikeToArray$i(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar MARK_FIRST = 0x8000;\nvar MARK_LAST = 0x2000;\nvar VERB = 0x000F; // contextual substitution and glyph insertion flag\n\nvar SET_MARK = 0x8000; // ligature entry flags\n\nvar SET_COMPONENT = 0x8000;\nvar PERFORM_ACTION = 0x2000; // ligature action masks\n\nvar LAST_MASK = 0x80000000;\nvar STORE_MASK = 0x40000000;\nvar OFFSET_MASK = 0x3FFFFFFF;\nvar REVERSE_DIRECTION = 0x400000;\nvar CURRENT_INSERT_BEFORE = 0x0800;\nvar MARKED_INSERT_BEFORE = 0x0400;\nvar CURRENT_INSERT_COUNT = 0x03E0;\nvar MARKED_INSERT_COUNT = 0x001F;\nvar AATMorxProcessor = (_class$2 = /*#__PURE__*/function () {\n function AATMorxProcessor(font) {\n this.processIndicRearragement = this.processIndicRearragement.bind(this);\n this.processContextualSubstitution = this.processContextualSubstitution.bind(this);\n this.processLigature = this.processLigature.bind(this);\n this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);\n this.processGlyphInsertion = this.processGlyphInsertion.bind(this);\n this.font = font;\n this.morx = font.morx;\n this.inputCache = null;\n } // Processes an array of glyphs and applies the specified features\n // Features should be in the form of {featureType:{featureSetting:boolean}}\n\n\n var _proto = AATMorxProcessor.prototype;\n\n _proto.process = function process(glyphs, features) {\n if (features === void 0) {\n features = {};\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose$i(this.morx.chains), _step; !(_step = _iterator()).done;) {\n var chain = _step.value;\n var flags = chain.defaultFlags; // enable/disable the requested features\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$i(chain.features), _step2; !(_step2 = _iterator2()).done;) {\n var feature = _step2.value;\n var f = void 0;\n\n if (f = features[feature.featureType]) {\n if (f[feature.featureSetting]) {\n flags &= feature.disableFlags;\n flags |= feature.enableFlags;\n } else if (f[feature.featureSetting] === false) {\n flags |= ~feature.disableFlags;\n flags &= ~feature.enableFlags;\n }\n }\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$i(chain.subtables), _step3; !(_step3 = _iterator3()).done;) {\n var subtable = _step3.value;\n\n if (subtable.subFeatureFlags & flags) {\n this.processSubtable(subtable, glyphs);\n }\n }\n } // remove deleted glyphs\n\n\n var index = glyphs.length - 1;\n\n while (index >= 0) {\n if (glyphs[index].id === 0xffff) {\n glyphs.splice(index, 1);\n }\n\n index--;\n }\n\n return glyphs;\n };\n\n _proto.processSubtable = function processSubtable(subtable, glyphs) {\n this.subtable = subtable;\n this.glyphs = glyphs;\n\n if (this.subtable.type === 4) {\n this.processNoncontextualSubstitutions(this.subtable, this.glyphs);\n return;\n }\n\n this.ligatureStack = [];\n this.markedGlyph = null;\n this.firstGlyph = null;\n this.lastGlyph = null;\n this.markedIndex = null;\n var stateMachine = this.getStateMachine(subtable);\n var process = this.getProcessor();\n var reverse = !!(this.subtable.coverage & REVERSE_DIRECTION);\n return stateMachine.process(this.glyphs, reverse, process);\n };\n\n _proto.getStateMachine = function getStateMachine(subtable) {\n return new AATStateMachine(subtable.table.stateTable);\n };\n\n _proto.getProcessor = function getProcessor() {\n switch (this.subtable.type) {\n case 0:\n return this.processIndicRearragement;\n\n case 1:\n return this.processContextualSubstitution;\n\n case 2:\n return this.processLigature;\n\n case 4:\n return this.processNoncontextualSubstitutions;\n\n case 5:\n return this.processGlyphInsertion;\n\n default:\n throw new Error(\"Invalid morx subtable type: \" + this.subtable.type);\n }\n };\n\n _proto.processIndicRearragement = function processIndicRearragement(glyph, entry, index) {\n if (entry.flags & MARK_FIRST) {\n this.firstGlyph = index;\n }\n\n if (entry.flags & MARK_LAST) {\n this.lastGlyph = index;\n }\n\n reorderGlyphs(this.glyphs, entry.flags & VERB, this.firstGlyph, this.lastGlyph);\n };\n\n _proto.processContextualSubstitution = function processContextualSubstitution(glyph, entry, index) {\n var subsitutions = this.subtable.table.substitutionTable.items;\n\n if (entry.markIndex !== 0xffff) {\n var lookup = subsitutions.getItem(entry.markIndex);\n var lookupTable = new AATLookupTable(lookup);\n glyph = this.glyphs[this.markedGlyph];\n var gid = lookupTable.lookup(glyph.id);\n\n if (gid) {\n this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n\n if (entry.currentIndex !== 0xffff) {\n var _lookup = subsitutions.getItem(entry.currentIndex);\n\n var _lookupTable = new AATLookupTable(_lookup);\n\n glyph = this.glyphs[index];\n\n var gid = _lookupTable.lookup(glyph.id);\n\n if (gid) {\n this.glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n\n if (entry.flags & SET_MARK) {\n this.markedGlyph = index;\n }\n };\n\n _proto.processLigature = function processLigature(glyph, entry, index) {\n if (entry.flags & SET_COMPONENT) {\n this.ligatureStack.push(index);\n }\n\n if (entry.flags & PERFORM_ACTION) {\n var _this$ligatureStack;\n\n var actions = this.subtable.table.ligatureActions;\n var components = this.subtable.table.components;\n var ligatureList = this.subtable.table.ligatureList;\n var actionIndex = entry.action;\n var last = false;\n var ligatureIndex = 0;\n var codePoints = [];\n var ligatureGlyphs = [];\n\n while (!last) {\n var _codePoints;\n\n var componentGlyph = this.ligatureStack.pop();\n\n (_codePoints = codePoints).unshift.apply(_codePoints, this.glyphs[componentGlyph].codePoints);\n\n var action = actions.getItem(actionIndex++);\n last = !!(action & LAST_MASK);\n var store = !!(action & STORE_MASK);\n var offset = (action & OFFSET_MASK) << 2 >> 2; // sign extend 30 to 32 bits\n\n offset += this.glyphs[componentGlyph].id;\n var component = components.getItem(offset);\n ligatureIndex += component;\n\n if (last || store) {\n var ligatureEntry = ligatureList.getItem(ligatureIndex);\n this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);\n ligatureGlyphs.push(componentGlyph);\n ligatureIndex = 0;\n codePoints = [];\n } else {\n this.glyphs[componentGlyph] = this.font.getGlyph(0xffff);\n }\n } // Put ligature glyph indexes back on the stack\n\n\n (_this$ligatureStack = this.ligatureStack).push.apply(_this$ligatureStack, ligatureGlyphs);\n }\n };\n\n _proto.processNoncontextualSubstitutions = function processNoncontextualSubstitutions(subtable, glyphs, index) {\n var lookupTable = new AATLookupTable(subtable.table.lookupTable);\n\n for (index = 0; index < glyphs.length; index++) {\n var glyph = glyphs[index];\n\n if (glyph.id !== 0xffff) {\n var gid = lookupTable.lookup(glyph.id);\n\n if (gid) {\n // 0 means do nothing\n glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n }\n };\n\n _proto._insertGlyphs = function _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {\n var _this$glyphs;\n\n var insertions = [];\n\n while (count--) {\n var gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);\n insertions.push(this.font.getGlyph(gid));\n }\n\n if (!isBefore) {\n glyphIndex++;\n }\n\n (_this$glyphs = this.glyphs).splice.apply(_this$glyphs, [glyphIndex, 0].concat(insertions));\n };\n\n _proto.processGlyphInsertion = function processGlyphInsertion(glyph, entry, index) {\n if (entry.flags & SET_MARK) {\n this.markedIndex = index;\n }\n\n if (entry.markedInsertIndex !== 0xffff) {\n var count = (entry.flags & MARKED_INSERT_COUNT) >>> 5;\n var isBefore = !!(entry.flags & MARKED_INSERT_BEFORE);\n\n this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);\n }\n\n if (entry.currentInsertIndex !== 0xffff) {\n var _count = (entry.flags & CURRENT_INSERT_COUNT) >>> 5;\n\n var _isBefore = !!(entry.flags & CURRENT_INSERT_BEFORE);\n\n this._insertGlyphs(index, entry.currentInsertIndex, _count, _isBefore);\n }\n };\n\n _proto.getSupportedFeatures = function getSupportedFeatures() {\n var features = [];\n\n for (var _iterator4 = _createForOfIteratorHelperLoose$i(this.morx.chains), _step4; !(_step4 = _iterator4()).done;) {\n var chain = _step4.value;\n\n for (var _iterator5 = _createForOfIteratorHelperLoose$i(chain.features), _step5; !(_step5 = _iterator5()).done;) {\n var feature = _step5.value;\n features.push([feature.featureType, feature.featureSetting]);\n }\n }\n\n return features;\n };\n\n _proto.generateInputs = function generateInputs(gid) {\n if (!this.inputCache) {\n this.generateInputCache();\n }\n\n return this.inputCache[gid] || [];\n };\n\n _proto.generateInputCache = function generateInputCache() {\n this.inputCache = {};\n\n for (var _iterator6 = _createForOfIteratorHelperLoose$i(this.morx.chains), _step6; !(_step6 = _iterator6()).done;) {\n var chain = _step6.value;\n var flags = chain.defaultFlags;\n\n for (var _iterator7 = _createForOfIteratorHelperLoose$i(chain.subtables), _step7; !(_step7 = _iterator7()).done;) {\n var subtable = _step7.value;\n\n if (subtable.subFeatureFlags & flags) {\n this.generateInputsForSubtable(subtable);\n }\n }\n }\n };\n\n _proto.generateInputsForSubtable = function generateInputsForSubtable(subtable) {\n var _this = this;\n\n // Currently, only supporting ligature subtables.\n if (subtable.type !== 2) {\n return;\n }\n\n var reverse = !!(subtable.coverage & REVERSE_DIRECTION);\n\n if (reverse) {\n throw new Error('Reverse subtable, not supported.');\n }\n\n this.subtable = subtable;\n this.ligatureStack = [];\n var stateMachine = this.getStateMachine(subtable);\n var process = this.getProcessor();\n var input = [];\n var stack = [];\n this.glyphs = [];\n stateMachine.traverse({\n enter: function enter(glyph, entry) {\n var glyphs = _this.glyphs;\n stack.push({\n glyphs: glyphs.slice(),\n ligatureStack: _this.ligatureStack.slice()\n }); // Add glyph to input and glyphs to process.\n\n var g = _this.font.getGlyph(glyph);\n\n input.push(g);\n glyphs.push(input[input.length - 1]); // Process ligature substitution\n\n process(glyphs[glyphs.length - 1], entry, glyphs.length - 1); // Add input to result if only one matching (non-deleted) glyph remains.\n\n var count = 0;\n var found = 0;\n\n for (var i = 0; i < glyphs.length && count <= 1; i++) {\n if (glyphs[i].id !== 0xffff) {\n count++;\n found = glyphs[i].id;\n }\n }\n\n if (count === 1) {\n var result = input.map(function (g) {\n return g.id;\n });\n var _cache = _this.inputCache[found];\n\n if (_cache) {\n _cache.push(result);\n } else {\n _this.inputCache[found] = [result];\n }\n }\n },\n exit: function exit() {\n var _stack$pop = stack.pop();\n\n _this.glyphs = _stack$pop.glyphs;\n _this.ligatureStack = _stack$pop.ligatureStack;\n input.pop();\n }\n });\n };\n\n return AATMorxProcessor;\n}(), (_applyDecoratedDescriptor(_class$2.prototype, \"getStateMachine\", [cache], Object.getOwnPropertyDescriptor(_class$2.prototype, \"getStateMachine\"), _class$2.prototype)), _class$2);\n// reverse the glyphs inside those ranges if specified\n// ranges are in [offset, length] format\n\nfunction swap(glyphs, rangeA, rangeB, reverseA, reverseB) {\n if (reverseA === void 0) {\n reverseA = false;\n }\n\n if (reverseB === void 0) {\n reverseB = false;\n }\n\n var end = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);\n\n if (reverseB) {\n end.reverse();\n }\n\n var start = glyphs.splice.apply(glyphs, [rangeA[0], rangeA[1]].concat(end));\n\n if (reverseA) {\n start.reverse();\n }\n\n glyphs.splice.apply(glyphs, [rangeB[0] - (rangeA[1] - 1), 0].concat(start));\n return glyphs;\n}\n\nfunction reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {\n\n switch (verb) {\n case 0:\n // no change\n return glyphs;\n\n case 1:\n // Ax => xA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 0]);\n\n case 2:\n // xD => Dx\n return swap(glyphs, [firstGlyph, 0], [lastGlyph, 1]);\n\n case 3:\n // AxD => DxA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 1]);\n\n case 4:\n // ABx => xAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 0]);\n\n case 5:\n // ABx => xBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 0], true, false);\n\n case 6:\n // xCD => CDx\n return swap(glyphs, [firstGlyph, 0], [lastGlyph, 2]);\n\n case 7:\n // xCD => DCx\n return swap(glyphs, [firstGlyph, 0], [lastGlyph, 2], false, true);\n\n case 8:\n // AxCD => CDxA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 2]);\n\n case 9:\n // AxCD => DCxA\n return swap(glyphs, [firstGlyph, 1], [lastGlyph, 2], false, true);\n\n case 10:\n // ABxD => DxAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 1]);\n\n case 11:\n // ABxD => DxBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 1], true, false);\n\n case 12:\n // ABxCD => CDxAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2]);\n\n case 13:\n // ABxCD => CDxBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], true, false);\n\n case 14:\n // ABxCD => DCxAB\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], false, true);\n\n case 15:\n // ABxCD => DCxBA\n return swap(glyphs, [firstGlyph, 2], [lastGlyph, 2], true, true);\n\n default:\n throw new Error(\"Unknown verb: \" + verb);\n }\n}\n\nfunction _createForOfIteratorHelperLoose$h(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$h(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$h(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$h(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$h(o, minLen); }\n\nfunction _arrayLikeToArray$h(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar AATLayoutEngine = /*#__PURE__*/function () {\n function AATLayoutEngine(font) {\n this.font = font;\n this.morxProcessor = new AATMorxProcessor(font);\n this.fallbackPosition = false;\n }\n\n var _proto = AATLayoutEngine.prototype;\n\n _proto.substitute = function substitute(glyphRun) {\n // AAT expects the glyphs to be in visual order prior to morx processing,\n // so reverse the glyphs if the script is right-to-left.\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n }\n\n this.morxProcessor.process(glyphRun.glyphs, mapOTToAAT(glyphRun.features));\n };\n\n _proto.getAvailableFeatures = function getAvailableFeatures(script, language) {\n return mapAATToOT(this.morxProcessor.getSupportedFeatures());\n };\n\n _proto.stringsForGlyph = function stringsForGlyph(gid) {\n var glyphStrings = this.morxProcessor.generateInputs(gid);\n var result = new Set();\n\n for (var _iterator = _createForOfIteratorHelperLoose$h(glyphStrings), _step; !(_step = _iterator()).done;) {\n var glyphs = _step.value;\n\n this._addStrings(glyphs, 0, result, '');\n }\n\n return result;\n };\n\n _proto._addStrings = function _addStrings(glyphs, index, strings, string) {\n var codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index]);\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$h(codePoints), _step2; !(_step2 = _iterator2()).done;) {\n var codePoint = _step2.value;\n var s = string + String.fromCodePoint(codePoint);\n\n if (index < glyphs.length - 1) {\n this._addStrings(glyphs, index + 1, strings, s);\n } else {\n strings.add(s);\n }\n }\n };\n\n return AATLayoutEngine;\n}();\n\nfunction _createForOfIteratorHelperLoose$g(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$g(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$g(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$g(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$g(o, minLen); }\n\nfunction _arrayLikeToArray$g(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n/**\n * ShapingPlans are used by the OpenType shapers to store which\n * features should by applied, and in what order to apply them.\n * The features are applied in groups called stages. A feature\n * can be applied globally to all glyphs, or locally to only\n * specific glyphs.\n *\n * @private\n */\n\nvar ShapingPlan = /*#__PURE__*/function () {\n function ShapingPlan(font, script, direction) {\n this.font = font;\n this.script = script;\n this.direction = direction;\n this.stages = [];\n this.globalFeatures = {};\n this.allFeatures = {};\n }\n /**\n * Adds the given features to the last stage.\n * Ignores features that have already been applied.\n */\n\n\n var _proto = ShapingPlan.prototype;\n\n _proto._addFeatures = function _addFeatures(features, global) {\n var stageIndex = this.stages.length - 1;\n var stage = this.stages[stageIndex];\n\n for (var _iterator = _createForOfIteratorHelperLoose$g(features), _step; !(_step = _iterator()).done;) {\n var feature = _step.value;\n\n if (this.allFeatures[feature] == null) {\n stage.push(feature);\n this.allFeatures[feature] = stageIndex;\n\n if (global) {\n this.globalFeatures[feature] = true;\n }\n }\n }\n }\n /**\n * Add features to the last stage\n */\n ;\n\n _proto.add = function add(arg, global) {\n if (global === void 0) {\n global = true;\n }\n\n if (this.stages.length === 0) {\n this.stages.push([]);\n }\n\n if (typeof arg === 'string') {\n arg = [arg];\n }\n\n if (Array.isArray(arg)) {\n this._addFeatures(arg, global);\n } else if (typeof arg === 'object') {\n this._addFeatures(arg.global || [], true);\n\n this._addFeatures(arg.local || [], false);\n } else {\n throw new Error(\"Unsupported argument to ShapingPlan#add\");\n }\n }\n /**\n * Add a new stage\n */\n ;\n\n _proto.addStage = function addStage(arg, global) {\n if (typeof arg === 'function') {\n this.stages.push(arg, []);\n } else {\n this.stages.push([]);\n this.add(arg, global);\n }\n };\n\n _proto.setFeatureOverrides = function setFeatureOverrides(features) {\n if (Array.isArray(features)) {\n this.add(features);\n } else if (typeof features === 'object') {\n for (var tag in features) {\n if (features[tag]) {\n this.add(tag);\n } else if (this.allFeatures[tag] != null) {\n var stage = this.stages[this.allFeatures[tag]];\n stage.splice(stage.indexOf(tag), 1);\n delete this.allFeatures[tag];\n delete this.globalFeatures[tag];\n }\n }\n }\n }\n /**\n * Assigns the global features to the given glyphs\n */\n ;\n\n _proto.assignGlobalFeatures = function assignGlobalFeatures(glyphs) {\n for (var _iterator2 = _createForOfIteratorHelperLoose$g(glyphs), _step2; !(_step2 = _iterator2()).done;) {\n var glyph = _step2.value;\n\n for (var feature in this.globalFeatures) {\n glyph.features[feature] = true;\n }\n }\n }\n /**\n * Executes the planned stages using the given OTProcessor\n */\n ;\n\n _proto.process = function process(processor, glyphs, positions) {\n for (var _iterator3 = _createForOfIteratorHelperLoose$g(this.stages), _step3; !(_step3 = _iterator3()).done;) {\n var stage = _step3.value;\n\n if (typeof stage === 'function') {\n if (!positions) {\n stage(this.font, glyphs, this);\n }\n } else if (stage.length > 0) {\n processor.applyFeatures(stage, glyphs, positions);\n }\n }\n };\n\n return ShapingPlan;\n}();\n\nvar VARIATION_FEATURES = ['rvrn'];\nvar COMMON_FEATURES = ['ccmp', 'locl', 'rlig', 'mark', 'mkmk'];\nvar FRACTIONAL_FEATURES = ['frac', 'numr', 'dnom'];\nvar HORIZONTAL_FEATURES = ['calt', 'clig', 'liga', 'rclt', 'curs', 'kern'];\nvar DIRECTIONAL_FEATURES = {\n ltr: ['ltra', 'ltrm'],\n rtl: ['rtla', 'rtlm']\n};\n\nvar DefaultShaper = /*#__PURE__*/function () {\n function DefaultShaper() {}\n\n DefaultShaper.plan = function plan(_plan, glyphs, features) {\n // Plan the features we want to apply\n this.planPreprocessing(_plan);\n this.planFeatures(_plan);\n this.planPostprocessing(_plan, features); // Assign the global features to all the glyphs\n\n _plan.assignGlobalFeatures(glyphs); // Assign local features to glyphs\n\n\n this.assignFeatures(_plan, glyphs);\n };\n\n DefaultShaper.planPreprocessing = function planPreprocessing(plan) {\n plan.add({\n global: [].concat(VARIATION_FEATURES, DIRECTIONAL_FEATURES[plan.direction]),\n local: FRACTIONAL_FEATURES\n });\n };\n\n DefaultShaper.planFeatures = function planFeatures(plan) {// Do nothing by default. Let subclasses override this.\n };\n\n DefaultShaper.planPostprocessing = function planPostprocessing(plan, userFeatures) {\n plan.add([].concat(COMMON_FEATURES, HORIZONTAL_FEATURES));\n plan.setFeatureOverrides(userFeatures);\n };\n\n DefaultShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n // Enable contextual fractions\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n\n if (glyph.codePoints[0] === 0x2044) {\n // fraction slash\n var start = i;\n var end = i + 1; // Apply numerator\n\n while (start > 0 && unicode.isDigit(glyphs[start - 1].codePoints[0])) {\n glyphs[start - 1].features.numr = true;\n glyphs[start - 1].features.frac = true;\n start--;\n } // Apply denominator\n\n\n while (end < glyphs.length && unicode.isDigit(glyphs[end].codePoints[0])) {\n glyphs[end].features.dnom = true;\n glyphs[end].features.frac = true;\n end++;\n } // Apply fraction slash\n\n\n glyph.features.frac = true;\n i = end - 1;\n }\n }\n };\n\n return DefaultShaper;\n}();\n\n_defineProperty(DefaultShaper, \"zeroMarkWidths\", 'AFTER_GPOS');\n\nvar type$2 = \"Buffer\";\nvar data$2 = [\n\t0,\n\t1,\n\t240,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t56,\n\t0,\n\t1,\n\t253,\n\t1,\n\t2,\n\t254,\n\t237,\n\t154,\n\t45,\n\t76,\n\t196,\n\t48,\n\t20,\n\t199,\n\t187,\n\t237,\n\t190,\n\t56,\n\t64,\n\t129,\n\t192,\n\t224,\n\t144,\n\t72,\n\t4,\n\t2,\n\t121,\n\t151,\n\t16,\n\t18,\n\t12,\n\t9,\n\t134,\n\t132,\n\t115,\n\t40,\n\t4,\n\t138,\n\t160,\n\t80,\n\t224,\n\t80,\n\t36,\n\t8,\n\t78,\n\t34,\n\t145,\n\t72,\n\t12,\n\t138,\n\t32,\n\t73,\n\t72,\n\t8,\n\t18,\n\t137,\n\t68,\n\t18,\n\t12,\n\t201,\n\t253,\n\t47,\n\t215,\n\t146,\n\t151,\n\t166,\n\t221,\n\t117,\n\t215,\n\t110,\n\t131,\n\t219,\n\t123,\n\t201,\n\t47,\n\t237,\n\t173,\n\t235,\n\t235,\n\t123,\n\t237,\n\t235,\n\t219,\n\t186,\n\t92,\n\t55,\n\t22,\n\t98,\n\t27,\n\t236,\n\t130,\n\t125,\n\t208,\n\t149,\n\t191,\n\t255,\n\t75,\n\t121,\n\t12,\n\t78,\n\t193,\n\t25,\n\t184,\n\t0,\n\t151,\n\t160,\n\t15,\n\t110,\n\t192,\n\t45,\n\t184,\n\t3,\n\t247,\n\t224,\n\t1,\n\t60,\n\t145,\n\t126,\n\t207,\n\t224,\n\t77,\n\t254,\n\t30,\n\t242,\n\t14,\n\t62,\n\t100,\n\t253,\n\t83,\n\t150,\n\t95,\n\t164,\n\t157,\n\t153,\n\t78,\n\t126,\n\t192,\n\t181,\n\t164,\n\t158,\n\t8,\n\t49,\n\t15,\n\t22,\n\t146,\n\t242,\n\t237,\n\t42,\n\t138,\n\t37,\n\t248,\n\t186,\n\t44,\n\t253,\n\t93,\n\t169,\n\t144,\n\t223,\n\t12,\n\t195,\n\t48,\n\t12,\n\t195,\n\t48,\n\t12,\n\t195,\n\t48,\n\t12,\n\t195,\n\t84,\n\t143,\n\t225,\n\t247,\n\t159,\n\t85,\n\t254,\n\t254,\n\t193,\n\t48,\n\t12,\n\t195,\n\t48,\n\t12,\n\t195,\n\t48,\n\t185,\n\t114,\n\t53,\n\t51,\n\t98,\n\t49,\n\t39,\n\t94,\n\t193,\n\t92,\n\t91,\n\t136,\n\t14,\n\t56,\n\t7,\n\t143,\n\t224,\n\t187,\n\t61,\n\t106,\n\t91,\n\t159,\n\t21,\n\t98,\n\t83,\n\t8,\n\t209,\n\t107,\n\t9,\n\t209,\n\t111,\n\t141,\n\t234,\n\t69,\n\t240,\n\t210,\n\t202,\n\t111,\n\t62,\n\t215,\n\t112,\n\t134,\n\t217,\n\t48,\n\t156,\n\t99,\n\t58,\n\t184,\n\t182,\n\t149,\n\t225,\n\t124,\n\t179,\n\t131,\n\t123,\n\t247,\n\t60,\n\t207,\n\t67,\n\t61,\n\t244,\n\t63,\n\t176,\n\t232,\n\t56,\n\t196,\n\t245,\n\t163,\n\t138,\n\t156,\n\t183,\n\t212,\n\t255,\n\t11,\n\t78,\n\t166,\n\t212,\n\t223,\n\t78,\n\t28,\n\t253,\n\t194,\n\t194,\n\t82,\n\t101,\n\t137,\n\t44,\n\t208,\n\t118,\n\t83,\n\t61,\n\t148,\n\t212,\n\t164,\n\t222,\n\t68,\n\t163,\n\t102,\n\t40,\n\t117,\n\t76,\n\t125,\n\t178,\n\t66,\n\t251,\n\t253,\n\t37,\n\t161,\n\t54,\n\t81,\n\t31,\n\t245,\n\t185,\n\t114,\n\t241,\n\t47,\n\t4,\n\t147,\n\t204,\n\t109,\n\t17,\n\t36,\n\t90,\n\t221,\n\t197,\n\t15,\n\t83,\n\t92,\n\t169,\n\t118,\n\t65,\n\t74,\n\t155,\n\t132,\n\t216,\n\t7,\n\t116,\n\t60,\n\t23,\n\t161,\n\t62,\n\t211,\n\t107,\n\t62,\n\t210,\n\t4,\n\t117,\n\t131,\n\t254,\n\t134,\n\t36,\n\t109,\n\t253,\n\t93,\n\t99,\n\t34,\n\t33,\n\t58,\n\t245,\n\t126,\n\t13,\n\t79,\n\t251,\n\t149,\n\t100,\n\t141,\n\t207,\n\t80,\n\t113,\n\t61,\n\t110,\n\t110,\n\t76,\n\t237,\n\t227,\n\t198,\n\t117,\n\t149,\n\t178,\n\t247,\n\t157,\n\t111,\n\t236,\n\t217,\n\t250,\n\t143,\n\t203,\n\t245,\n\t89,\n\t98,\n\t143,\n\t222,\n\t107,\n\t122,\n\t182,\n\t217,\n\t236,\n\t138,\n\t12,\n\t122,\n\t84,\n\t222,\n\t213,\n\t115,\n\t69,\n\t104,\n\t153,\n\t36,\n\t134,\n\t169,\n\t109,\n\t166,\n\t24,\n\t211,\n\t245,\n\t154,\n\t230,\n\t79,\n\t151,\n\t178,\n\t223,\n\t140,\n\t213,\n\t26,\n\t40,\n\t209,\n\t109,\n\t12,\n\t101,\n\t95,\n\t217,\n\t251,\n\t196,\n\t244,\n\t238,\n\t213,\n\t148,\n\t20,\n\t185,\n\t143,\n\t125,\n\t247,\n\t115,\n\t154,\n\t127,\n\t121,\n\t234,\n\t14,\n\t169,\n\t203,\n\t53,\n\t71,\n\t248,\n\t72,\n\t168,\n\t53,\n\t139,\n\t39,\n\t180,\n\t211,\n\t150,\n\t75,\n\t34,\n\t173,\n\t84,\n\t245,\n\t72,\n\t142,\n\t229,\n\t242,\n\t78,\n\t24,\n\t167,\n\t232,\n\t55,\n\t141,\n\t167,\n\t198,\n\t114,\n\t181,\n\t53,\n\t68,\n\t206,\n\t165,\n\t246,\n\t216,\n\t124,\n\t209,\n\t115,\n\t169,\n\t158,\n\t83,\n\t125,\n\t237,\n\t176,\n\t205,\n\t99,\n\t136,\n\t184,\n\t179,\n\t173,\n\t65,\n\t209,\n\t40,\n\t191,\n\t138,\n\t150,\n\t180,\n\t184,\n\t115,\n\t37,\n\t235,\n\t58,\n\t132,\n\t142,\n\t81,\n\t95,\n\t9,\n\t153,\n\t191,\n\t76,\n\t207,\n\t10,\n\t155,\n\t52,\n\t3,\n\t142,\n\t107,\n\t147,\n\t1\n];\nvar trieData$2 = {\n\ttype: type$2,\n\tdata: data$2\n};\n\nvar trie$2 = new UnicodeTrie(new Uint8Array(trieData$2.data));\nvar FEATURES = ['isol', 'fina', 'fin2', 'fin3', 'medi', 'med2', 'init'];\nvar ShapingClasses = {\n Non_Joining: 0,\n Left_Joining: 1,\n Right_Joining: 2,\n Dual_Joining: 3,\n Join_Causing: 3,\n ALAPH: 4,\n 'DALATH RISH': 5,\n Transparent: 6\n};\nvar ISOL = 'isol';\nvar FINA = 'fina';\nvar FIN2 = 'fin2';\nvar FIN3 = 'fin3';\nvar MEDI = 'medi';\nvar MED2 = 'med2';\nvar INIT = 'init';\nvar NONE = null; // Each entry is [prevAction, curAction, nextState]\n\nvar STATE_TABLE$1 = [// Non_Joining, Left_Joining, Right_Joining, Dual_Joining, ALAPH, DALATH RISH\n// State 0: prev was U, not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 6]], // State 1: prev was R or ISOL/ALAPH, not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 2], [NONE, FIN2, 5], [NONE, ISOL, 6]], // State 2: prev was D/L in ISOL form, willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [INIT, FINA, 1], [INIT, FINA, 3], [INIT, FINA, 4], [INIT, FINA, 6]], // State 3: prev was D in FINA form, willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [MEDI, FINA, 1], [MEDI, FINA, 3], [MEDI, FINA, 4], [MEDI, FINA, 6]], // State 4: prev was FINA ALAPH, not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [MED2, ISOL, 1], [MED2, ISOL, 2], [MED2, FIN2, 5], [MED2, ISOL, 6]], // State 5: prev was FIN2/FIN3 ALAPH, not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [ISOL, ISOL, 1], [ISOL, ISOL, 2], [ISOL, FIN2, 5], [ISOL, ISOL, 6]], // State 6: prev was DALATH/RISH, not willing to join.\n[[NONE, NONE, 0], [NONE, ISOL, 2], [NONE, ISOL, 1], [NONE, ISOL, 2], [NONE, FIN3, 5], [NONE, ISOL, 6]]];\n/**\n * This is a shaper for Arabic, and other cursive scripts.\n * It uses data from ArabicShaping.txt in the Unicode database,\n * compiled to a UnicodeTrie by generate-data.coffee.\n *\n * The shaping state machine was ported from Harfbuzz.\n * https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-complex-arabic.cc\n */\n\nvar ArabicShaper = /*#__PURE__*/function (_DefaultShaper) {\n _inheritsLoose(ArabicShaper, _DefaultShaper);\n\n function ArabicShaper() {\n return _DefaultShaper.apply(this, arguments) || this;\n }\n\n ArabicShaper.planFeatures = function planFeatures(plan) {\n plan.add(['ccmp', 'locl']);\n\n for (var i = 0; i < FEATURES.length; i++) {\n var feature = FEATURES[i];\n plan.addStage(feature, false);\n }\n\n plan.addStage('mset');\n };\n\n ArabicShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n _DefaultShaper.assignFeatures.call(this, plan, glyphs);\n\n var prev = -1;\n var state = 0;\n var actions = []; // Apply the state machine to map glyphs to features\n\n for (var i = 0; i < glyphs.length; i++) {\n var curAction = void 0,\n prevAction = void 0;\n var glyph = glyphs[i];\n var type = getShapingClass(glyph.codePoints[0]);\n\n if (type === ShapingClasses.Transparent) {\n actions[i] = NONE;\n continue;\n }\n\n var _STATE_TABLE$state$ty = STATE_TABLE$1[state][type];\n prevAction = _STATE_TABLE$state$ty[0];\n curAction = _STATE_TABLE$state$ty[1];\n state = _STATE_TABLE$state$ty[2];\n\n if (prevAction !== NONE && prev !== -1) {\n actions[prev] = prevAction;\n }\n\n actions[i] = curAction;\n prev = i;\n } // Apply the chosen features to their respective glyphs\n\n\n for (var index = 0; index < glyphs.length; index++) {\n var feature = void 0;\n var glyph = glyphs[index];\n\n if (feature = actions[index]) {\n glyph.features[feature] = true;\n }\n }\n };\n\n return ArabicShaper;\n}(DefaultShaper);\n\nfunction getShapingClass(codePoint) {\n var res = trie$2.get(codePoint);\n\n if (res) {\n return res - 1;\n }\n\n var category = unicode.getCategory(codePoint);\n\n if (category === 'Mn' || category === 'Me' || category === 'Cf') {\n return ShapingClasses.Transparent;\n }\n\n return ShapingClasses.Non_Joining;\n}\n\nvar GlyphIterator = /*#__PURE__*/function () {\n function GlyphIterator(glyphs, options) {\n this.glyphs = glyphs;\n this.reset(options);\n }\n\n var _proto = GlyphIterator.prototype;\n\n _proto.reset = function reset(options, index) {\n if (options === void 0) {\n options = {};\n }\n\n if (index === void 0) {\n index = 0;\n }\n\n this.options = options;\n this.flags = options.flags || {};\n this.markAttachmentType = options.markAttachmentType || 0;\n this.index = index;\n };\n\n _proto.shouldIgnore = function shouldIgnore(glyph) {\n return this.flags.ignoreMarks && glyph.isMark || this.flags.ignoreBaseGlyphs && glyph.isBase || this.flags.ignoreLigatures && glyph.isLigature || this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType;\n };\n\n _proto.move = function move(dir) {\n this.index += dir;\n\n while (0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index])) {\n this.index += dir;\n }\n\n if (0 > this.index || this.index >= this.glyphs.length) {\n return null;\n }\n\n return this.glyphs[this.index];\n };\n\n _proto.next = function next() {\n return this.move(+1);\n };\n\n _proto.prev = function prev() {\n return this.move(-1);\n };\n\n _proto.peek = function peek(count) {\n if (count === void 0) {\n count = 1;\n }\n\n var idx = this.index;\n var res = this.increment(count);\n this.index = idx;\n return res;\n };\n\n _proto.peekIndex = function peekIndex(count) {\n if (count === void 0) {\n count = 1;\n }\n\n var idx = this.index;\n this.increment(count);\n var res = this.index;\n this.index = idx;\n return res;\n };\n\n _proto.increment = function increment(count) {\n if (count === void 0) {\n count = 1;\n }\n\n var dir = count < 0 ? -1 : 1;\n count = Math.abs(count);\n\n while (count--) {\n this.move(dir);\n }\n\n return this.glyphs[this.index];\n };\n\n _createClass(GlyphIterator, [{\n key: \"cur\",\n get: function get() {\n return this.glyphs[this.index] || null;\n }\n }]);\n\n return GlyphIterator;\n}();\n\nfunction _createForOfIteratorHelperLoose$f(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$f(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$f(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$f(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$f(o, minLen); }\n\nfunction _arrayLikeToArray$f(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar DEFAULT_SCRIPTS = ['DFLT', 'dflt', 'latn'];\n\nvar OTProcessor = /*#__PURE__*/function () {\n function OTProcessor(font, table) {\n this.font = font;\n this.table = table;\n this.script = null;\n this.scriptTag = null;\n this.language = null;\n this.languageTag = null;\n this.features = {};\n this.lookups = {}; // Setup variation substitutions\n\n this.variationsIndex = font._variationProcessor ? this.findVariationsIndex(font._variationProcessor.normalizedCoords) : -1; // initialize to default script + language\n\n this.selectScript(); // current context (set by applyFeatures)\n\n this.glyphs = [];\n this.positions = []; // only used by GPOS\n\n this.ligatureID = 1;\n this.currentFeature = null;\n }\n\n var _proto = OTProcessor.prototype;\n\n _proto.findScript = function findScript(script) {\n if (this.table.scriptList == null) {\n return null;\n }\n\n if (!Array.isArray(script)) {\n script = [script];\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose$f(script), _step; !(_step = _iterator()).done;) {\n var s = _step.value;\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$f(this.table.scriptList), _step2; !(_step2 = _iterator2()).done;) {\n var entry = _step2.value;\n\n if (entry.tag === s) {\n return entry;\n }\n }\n }\n\n return null;\n };\n\n _proto.selectScript = function selectScript(script, language, direction$1) {\n var changed = false;\n var entry;\n\n if (!this.script || script !== this.scriptTag) {\n entry = this.findScript(script);\n\n if (!entry) {\n entry = this.findScript(DEFAULT_SCRIPTS);\n }\n\n if (!entry) {\n return this.scriptTag;\n }\n\n this.scriptTag = entry.tag;\n this.script = entry.script;\n this.language = null;\n this.languageTag = null;\n changed = true;\n }\n\n if (!direction$1 || direction$1 !== this.direction) {\n this.direction = direction$1 || direction(script);\n }\n\n if (language && language.length < 4) {\n language += ' '.repeat(4 - language.length);\n }\n\n if (!language || language !== this.languageTag) {\n this.language = null;\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$f(this.script.langSysRecords), _step3; !(_step3 = _iterator3()).done;) {\n var lang = _step3.value;\n\n if (lang.tag === language) {\n this.language = lang.langSys;\n this.languageTag = lang.tag;\n break;\n }\n }\n\n if (!this.language) {\n this.language = this.script.defaultLangSys;\n this.languageTag = null;\n }\n\n changed = true;\n } // Build a feature lookup table\n\n\n if (changed) {\n this.features = {};\n\n if (this.language) {\n for (var _iterator4 = _createForOfIteratorHelperLoose$f(this.language.featureIndexes), _step4; !(_step4 = _iterator4()).done;) {\n var featureIndex = _step4.value;\n var record = this.table.featureList[featureIndex];\n var substituteFeature = this.substituteFeatureForVariations(featureIndex);\n this.features[record.tag] = substituteFeature || record.feature;\n }\n }\n }\n\n return this.scriptTag;\n };\n\n _proto.lookupsForFeatures = function lookupsForFeatures(userFeatures, exclude) {\n if (userFeatures === void 0) {\n userFeatures = [];\n }\n\n var lookups = [];\n\n for (var _iterator5 = _createForOfIteratorHelperLoose$f(userFeatures), _step5; !(_step5 = _iterator5()).done;) {\n var tag = _step5.value;\n var feature = this.features[tag];\n\n if (!feature) {\n continue;\n }\n\n for (var _iterator6 = _createForOfIteratorHelperLoose$f(feature.lookupListIndexes), _step6; !(_step6 = _iterator6()).done;) {\n var lookupIndex = _step6.value;\n\n if (exclude && exclude.indexOf(lookupIndex) !== -1) {\n continue;\n }\n\n lookups.push({\n feature: tag,\n index: lookupIndex,\n lookup: this.table.lookupList.get(lookupIndex)\n });\n }\n }\n\n lookups.sort(function (a, b) {\n return a.index - b.index;\n });\n return lookups;\n };\n\n _proto.substituteFeatureForVariations = function substituteFeatureForVariations(featureIndex) {\n if (this.variationsIndex === -1) {\n return null;\n }\n\n var record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];\n var substitutions = record.featureTableSubstitution.substitutions;\n\n for (var _iterator7 = _createForOfIteratorHelperLoose$f(substitutions), _step7; !(_step7 = _iterator7()).done;) {\n var substitution = _step7.value;\n\n if (substitution.featureIndex === featureIndex) {\n return substitution.alternateFeatureTable;\n }\n }\n\n return null;\n };\n\n _proto.findVariationsIndex = function findVariationsIndex(coords) {\n var variations = this.table.featureVariations;\n\n if (!variations) {\n return -1;\n }\n\n var records = variations.featureVariationRecords;\n\n for (var i = 0; i < records.length; i++) {\n var conditions = records[i].conditionSet.conditionTable;\n\n if (this.variationConditionsMatch(conditions, coords)) {\n return i;\n }\n }\n\n return -1;\n };\n\n _proto.variationConditionsMatch = function variationConditionsMatch(conditions, coords) {\n return conditions.every(function (condition) {\n var coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;\n return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;\n });\n };\n\n _proto.applyFeatures = function applyFeatures(userFeatures, glyphs, advances) {\n var lookups = this.lookupsForFeatures(userFeatures);\n this.applyLookups(lookups, glyphs, advances);\n };\n\n _proto.applyLookups = function applyLookups(lookups, glyphs, positions) {\n this.glyphs = glyphs;\n this.positions = positions;\n this.glyphIterator = new GlyphIterator(glyphs);\n\n for (var _iterator8 = _createForOfIteratorHelperLoose$f(lookups), _step8; !(_step8 = _iterator8()).done;) {\n var _step8$value = _step8.value,\n feature = _step8$value.feature,\n lookup = _step8$value.lookup;\n this.currentFeature = feature;\n this.glyphIterator.reset(lookup.flags);\n\n while (this.glyphIterator.index < glyphs.length) {\n if (!(feature in this.glyphIterator.cur.features)) {\n this.glyphIterator.next();\n continue;\n }\n\n for (var _iterator9 = _createForOfIteratorHelperLoose$f(lookup.subTables), _step9; !(_step9 = _iterator9()).done;) {\n var table = _step9.value;\n var res = this.applyLookup(lookup.lookupType, table);\n\n if (res) {\n break;\n }\n }\n\n this.glyphIterator.next();\n }\n }\n };\n\n _proto.applyLookup = function applyLookup(lookup, table) {\n throw new Error(\"applyLookup must be implemented by subclasses\");\n };\n\n _proto.applyLookupList = function applyLookupList(lookupRecords) {\n var options = this.glyphIterator.options;\n var glyphIndex = this.glyphIterator.index;\n\n for (var _iterator10 = _createForOfIteratorHelperLoose$f(lookupRecords), _step10; !(_step10 = _iterator10()).done;) {\n var lookupRecord = _step10.value;\n // Reset flags and find glyph index for this lookup record\n this.glyphIterator.reset(options, glyphIndex);\n this.glyphIterator.increment(lookupRecord.sequenceIndex); // Get the lookup and setup flags for subtables\n\n var lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);\n this.glyphIterator.reset(lookup.flags, this.glyphIterator.index); // Apply lookup subtables until one matches\n\n for (var _iterator11 = _createForOfIteratorHelperLoose$f(lookup.subTables), _step11; !(_step11 = _iterator11()).done;) {\n var table = _step11.value;\n\n if (this.applyLookup(lookup.lookupType, table)) {\n break;\n }\n }\n }\n\n this.glyphIterator.reset(options, glyphIndex);\n return true;\n };\n\n _proto.coverageIndex = function coverageIndex(coverage, glyph) {\n if (glyph == null) {\n glyph = this.glyphIterator.cur.id;\n }\n\n switch (coverage.version) {\n case 1:\n return coverage.glyphs.indexOf(glyph);\n\n case 2:\n for (var _iterator12 = _createForOfIteratorHelperLoose$f(coverage.rangeRecords), _step12; !(_step12 = _iterator12()).done;) {\n var range = _step12.value;\n\n if (range.start <= glyph && glyph <= range.end) {\n return range.startCoverageIndex + glyph - range.start;\n }\n }\n\n break;\n }\n\n return -1;\n };\n\n _proto.match = function match(sequenceIndex, sequence, fn, matched) {\n var pos = this.glyphIterator.index;\n var glyph = this.glyphIterator.increment(sequenceIndex);\n var idx = 0;\n\n while (idx < sequence.length && glyph && fn(sequence[idx], glyph)) {\n if (matched) {\n matched.push(this.glyphIterator.index);\n }\n\n idx++;\n glyph = this.glyphIterator.next();\n }\n\n this.glyphIterator.index = pos;\n\n if (idx < sequence.length) {\n return false;\n }\n\n return matched || true;\n };\n\n _proto.sequenceMatches = function sequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, function (component, glyph) {\n return component === glyph.id;\n });\n };\n\n _proto.sequenceMatchIndices = function sequenceMatchIndices(sequenceIndex, sequence) {\n var _this = this;\n\n return this.match(sequenceIndex, sequence, function (component, glyph) {\n // If the current feature doesn't apply to this glyph,\n if (!(_this.currentFeature in glyph.features)) {\n return false;\n }\n\n return component === glyph.id;\n }, []);\n };\n\n _proto.coverageSequenceMatches = function coverageSequenceMatches(sequenceIndex, sequence) {\n var _this2 = this;\n\n return this.match(sequenceIndex, sequence, function (coverage, glyph) {\n return _this2.coverageIndex(coverage, glyph.id) >= 0;\n });\n };\n\n _proto.getClassID = function getClassID(glyph, classDef) {\n switch (classDef.version) {\n case 1:\n // Class array\n var i = glyph - classDef.startGlyph;\n\n if (i >= 0 && i < classDef.classValueArray.length) {\n return classDef.classValueArray[i];\n }\n\n break;\n\n case 2:\n for (var _iterator13 = _createForOfIteratorHelperLoose$f(classDef.classRangeRecord), _step13; !(_step13 = _iterator13()).done;) {\n var range = _step13.value;\n\n if (range.start <= glyph && glyph <= range.end) {\n return range.class;\n }\n }\n\n break;\n }\n\n return 0;\n };\n\n _proto.classSequenceMatches = function classSequenceMatches(sequenceIndex, sequence, classDef) {\n var _this3 = this;\n\n return this.match(sequenceIndex, sequence, function (classID, glyph) {\n return classID === _this3.getClassID(glyph.id, classDef);\n });\n };\n\n _proto.applyContext = function applyContext(table) {\n switch (table.version) {\n case 1:\n var index = this.coverageIndex(table.coverage);\n\n if (index === -1) {\n return false;\n }\n\n var set = table.ruleSets[index];\n\n for (var _iterator14 = _createForOfIteratorHelperLoose$f(set), _step14; !(_step14 = _iterator14()).done;) {\n var rule = _step14.value;\n\n if (this.sequenceMatches(1, rule.input)) {\n return this.applyLookupList(rule.lookupRecords);\n }\n }\n\n break;\n\n case 2:\n if (this.coverageIndex(table.coverage) === -1) {\n return false;\n }\n\n index = this.getClassID(this.glyphIterator.cur.id, table.classDef);\n\n if (index === -1) {\n return false;\n }\n\n set = table.classSet[index];\n\n for (var _iterator15 = _createForOfIteratorHelperLoose$f(set), _step15; !(_step15 = _iterator15()).done;) {\n var _rule = _step15.value;\n\n if (this.classSequenceMatches(1, _rule.classes, table.classDef)) {\n return this.applyLookupList(_rule.lookupRecords);\n }\n }\n\n break;\n\n case 3:\n if (this.coverageSequenceMatches(0, table.coverages)) {\n return this.applyLookupList(table.lookupRecords);\n }\n\n break;\n }\n\n return false;\n };\n\n _proto.applyChainingContext = function applyChainingContext(table) {\n switch (table.version) {\n case 1:\n var index = this.coverageIndex(table.coverage);\n\n if (index === -1) {\n return false;\n }\n\n var set = table.chainRuleSets[index];\n\n for (var _iterator16 = _createForOfIteratorHelperLoose$f(set), _step16; !(_step16 = _iterator16()).done;) {\n var rule = _step16.value;\n\n if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack) && this.sequenceMatches(1, rule.input) && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) {\n return this.applyLookupList(rule.lookupRecords);\n }\n }\n\n break;\n\n case 2:\n if (this.coverageIndex(table.coverage) === -1) {\n return false;\n }\n\n index = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);\n var rules = table.chainClassSet[index];\n\n if (!rules) {\n return false;\n }\n\n for (var _iterator17 = _createForOfIteratorHelperLoose$f(rules), _step17; !(_step17 = _iterator17()).done;) {\n var _rule2 = _step17.value;\n\n if (this.classSequenceMatches(-_rule2.backtrack.length, _rule2.backtrack, table.backtrackClassDef) && this.classSequenceMatches(1, _rule2.input, table.inputClassDef) && this.classSequenceMatches(1 + _rule2.input.length, _rule2.lookahead, table.lookaheadClassDef)) {\n return this.applyLookupList(_rule2.lookupRecords);\n }\n }\n\n break;\n\n case 3:\n if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) && this.coverageSequenceMatches(0, table.inputCoverage) && this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) {\n return this.applyLookupList(table.lookupRecords);\n }\n\n break;\n }\n\n return false;\n };\n\n return OTProcessor;\n}();\n\nvar GlyphInfo = /*#__PURE__*/function () {\n function GlyphInfo(font, id, codePoints, features) {\n if (codePoints === void 0) {\n codePoints = [];\n }\n\n this._font = font;\n this.codePoints = codePoints;\n this.id = id;\n this.features = {};\n\n if (Array.isArray(features)) {\n for (var i = 0; i < features.length; i++) {\n var feature = features[i];\n this.features[feature] = true;\n }\n } else if (typeof features === 'object') {\n Object.assign(this.features, features);\n }\n\n this.ligatureID = null;\n this.ligatureComponent = null;\n this.isLigated = false;\n this.cursiveAttachment = null;\n this.markAttachment = null;\n this.shaperInfo = null;\n this.substituted = false;\n this.isMultiplied = false;\n }\n\n var _proto = GlyphInfo.prototype;\n\n _proto.copy = function copy() {\n return new GlyphInfo(this._font, this.id, this.codePoints, this.features);\n };\n\n _createClass(GlyphInfo, [{\n key: \"id\",\n get: function get() {\n return this._id;\n },\n set: function set(id) {\n this._id = id;\n this.substituted = true;\n var GDEF = this._font.GDEF;\n\n if (GDEF && GDEF.glyphClassDef) {\n // TODO: clean this up\n var classID = OTProcessor.prototype.getClassID(id, GDEF.glyphClassDef);\n this.isBase = classID === 1;\n this.isLigature = classID === 2;\n this.isMark = classID === 3;\n this.markAttachmentType = GDEF.markAttachClassDef ? OTProcessor.prototype.getClassID(id, GDEF.markAttachClassDef) : 0;\n } else {\n this.isMark = this.codePoints.length > 0 && this.codePoints.every(unicode.isMark);\n this.isBase = !this.isMark;\n this.isLigature = this.codePoints.length > 1;\n this.markAttachmentType = 0;\n }\n }\n }]);\n\n return GlyphInfo;\n}();\n\n/**\n * This is a shaper for the Hangul script, used by the Korean language.\n * It does the following:\n * - decompose if unsupported by the font:\n * -> \n * -> \n * -> \n *\n * - compose if supported by the font:\n * -> \n * -> \n * -> \n *\n * - reorder tone marks (S is any valid syllable):\n * -> \n *\n * - apply ljmo, vjmo, and tjmo OpenType features to decomposed Jamo sequences.\n *\n * This logic is based on the following documents:\n * - http://www.microsoft.com/typography/OpenTypeDev/hangul/intro.htm\n * - http://ktug.org/~nomos/harfbuzz-hangul/hangulshaper.pdf\n */\n\nvar HangulShaper = /*#__PURE__*/function (_DefaultShaper) {\n _inheritsLoose(HangulShaper, _DefaultShaper);\n\n function HangulShaper() {\n return _DefaultShaper.apply(this, arguments) || this;\n }\n\n HangulShaper.planFeatures = function planFeatures(plan) {\n plan.add(['ljmo', 'vjmo', 'tjmo'], false);\n };\n\n HangulShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n var state = 0;\n var i = 0;\n\n while (i < glyphs.length) {\n var action = void 0;\n var glyph = glyphs[i];\n var code = glyph.codePoints[0];\n var type = getType(code);\n var _STATE_TABLE$state$ty = STATE_TABLE[state][type];\n action = _STATE_TABLE$state$ty[0];\n state = _STATE_TABLE$state$ty[1];\n\n switch (action) {\n case DECOMPOSE:\n // Decompose the composed syllable if it is not supported by the font.\n if (!plan.font.hasGlyphForCodePoint(code)) {\n i = decompose(glyphs, i, plan.font);\n }\n\n break;\n\n case COMPOSE:\n // Found a decomposed syllable. Try to compose if supported by the font.\n i = compose(glyphs, i, plan.font);\n break;\n\n case TONE_MARK:\n // Got a valid syllable, followed by a tone mark. Move the tone mark to the beginning of the syllable.\n reorderToneMark(glyphs, i, plan.font);\n break;\n\n case INVALID:\n // Tone mark has no valid syllable to attach to, so insert a dotted circle\n i = insertDottedCircle(glyphs, i, plan.font);\n break;\n }\n\n i++;\n }\n };\n\n return HangulShaper;\n}(DefaultShaper);\n\n_defineProperty(HangulShaper, \"zeroMarkWidths\", 'NONE');\nvar HANGUL_BASE = 0xac00;\nvar HANGUL_END = 0xd7a4;\nvar HANGUL_COUNT = HANGUL_END - HANGUL_BASE + 1;\nvar L_BASE = 0x1100; // lead\n\nvar V_BASE = 0x1161; // vowel\n\nvar T_BASE = 0x11a7; // trail\n\nvar L_COUNT = 19;\nvar V_COUNT = 21;\nvar T_COUNT = 28;\nvar L_END = L_BASE + L_COUNT - 1;\nvar V_END = V_BASE + V_COUNT - 1;\nvar T_END = T_BASE + T_COUNT - 1;\nvar DOTTED_CIRCLE = 0x25cc;\n\nvar isL = function isL(code) {\n return 0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;\n};\n\nvar isV = function isV(code) {\n return 0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;\n};\n\nvar isT = function isT(code) {\n return 0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;\n};\n\nvar isTone = function isTone(code) {\n return 0x302e <= code && code <= 0x302f;\n};\n\nvar isLVT = function isLVT(code) {\n return HANGUL_BASE <= code && code <= HANGUL_END;\n};\n\nvar isLV = function isLV(code) {\n return code - HANGUL_BASE < HANGUL_COUNT && (code - HANGUL_BASE) % T_COUNT === 0;\n};\n\nvar isCombiningL = function isCombiningL(code) {\n return L_BASE <= code && code <= L_END;\n};\n\nvar isCombiningV = function isCombiningV(code) {\n return V_BASE <= code && code <= V_END;\n};\n\nvar isCombiningT = function isCombiningT(code) {\n return 1 <= code && code <= T_END;\n}; // Character categories\n\n\nvar X = 0; // Other character\n\nvar L = 1; // Leading consonant\n\nvar V = 2; // Medial vowel\n\nvar T = 3; // Trailing consonant\n\nvar LV = 4; // Composed syllable\n\nvar LVT = 5; // Composed syllable\n\nvar M = 6; // Tone mark\n// This function classifies a character using the above categories.\n\nfunction getType(code) {\n if (isL(code)) {\n return L;\n }\n\n if (isV(code)) {\n return V;\n }\n\n if (isT(code)) {\n return T;\n }\n\n if (isLV(code)) {\n return LV;\n }\n\n if (isLVT(code)) {\n return LVT;\n }\n\n if (isTone(code)) {\n return M;\n }\n\n return X;\n} // State machine actions\n\n\nvar NO_ACTION = 0;\nvar DECOMPOSE = 1;\nvar COMPOSE = 2;\nvar TONE_MARK = 4;\nvar INVALID = 5; // Build a state machine that accepts valid syllables, and applies actions along the way.\n// The logic this is implementing is documented at the top of the file.\n\nvar STATE_TABLE = [// X L V T LV LVT M\n// State 0: start state\n[[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [INVALID, 0]], // State 1: \n[[NO_ACTION, 0], [NO_ACTION, 1], [COMPOSE, 2], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [INVALID, 0]], // State 2: or \n[[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [COMPOSE, 3], [DECOMPOSE, 2], [DECOMPOSE, 3], [TONE_MARK, 0]], // State 3: or \n[[NO_ACTION, 0], [NO_ACTION, 1], [NO_ACTION, 0], [NO_ACTION, 0], [DECOMPOSE, 2], [DECOMPOSE, 3], [TONE_MARK, 0]]];\n\nfunction getGlyph(font, code, features) {\n return new GlyphInfo(font, font.glyphForCodePoint(code).id, [code], features);\n}\n\nfunction decompose(glyphs, i, font) {\n var glyph = glyphs[i];\n var code = glyph.codePoints[0];\n var s = code - HANGUL_BASE;\n var t = T_BASE + s % T_COUNT;\n s = s / T_COUNT | 0;\n var l = L_BASE + s / V_COUNT | 0;\n var v = V_BASE + s % V_COUNT; // Don't decompose if all of the components are not available\n\n if (!font.hasGlyphForCodePoint(l) || !font.hasGlyphForCodePoint(v) || t !== T_BASE && !font.hasGlyphForCodePoint(t)) {\n return i;\n } // Replace the current glyph with decomposed L, V, and T glyphs,\n // and apply the proper OpenType features to each component.\n\n\n var ljmo = getGlyph(font, l, glyph.features);\n ljmo.features.ljmo = true;\n var vjmo = getGlyph(font, v, glyph.features);\n vjmo.features.vjmo = true;\n var insert = [ljmo, vjmo];\n\n if (t > T_BASE) {\n var tjmo = getGlyph(font, t, glyph.features);\n tjmo.features.tjmo = true;\n insert.push(tjmo);\n }\n\n glyphs.splice.apply(glyphs, [i, 1].concat(insert));\n return i + insert.length - 1;\n}\n\nfunction compose(glyphs, i, font) {\n var glyph = glyphs[i];\n var code = glyphs[i].codePoints[0];\n var type = getType(code);\n var prev = glyphs[i - 1].codePoints[0];\n var prevType = getType(prev); // Figure out what type of syllable we're dealing with\n\n var lv, ljmo, vjmo, tjmo;\n\n if (prevType === LV && type === T) {\n // \n lv = prev;\n tjmo = glyph;\n } else {\n if (type === V) {\n // \n ljmo = glyphs[i - 1];\n vjmo = glyph;\n } else {\n // \n ljmo = glyphs[i - 2];\n vjmo = glyphs[i - 1];\n tjmo = glyph;\n }\n\n var l = ljmo.codePoints[0];\n var v = vjmo.codePoints[0]; // Make sure L and V are combining characters\n\n if (isCombiningL(l) && isCombiningV(v)) {\n lv = HANGUL_BASE + ((l - L_BASE) * V_COUNT + (v - V_BASE)) * T_COUNT;\n }\n }\n\n var t = tjmo && tjmo.codePoints[0] || T_BASE;\n\n if (lv != null && (t === T_BASE || isCombiningT(t))) {\n var s = lv + (t - T_BASE); // Replace with a composed glyph if supported by the font,\n // otherwise apply the proper OpenType features to each component.\n\n if (font.hasGlyphForCodePoint(s)) {\n var del = prevType === V ? 3 : 2;\n glyphs.splice(i - del + 1, del, getGlyph(font, s, glyph.features));\n return i - del + 1;\n }\n } // Didn't compose (either a non-combining component or unsupported by font).\n\n\n if (ljmo) {\n ljmo.features.ljmo = true;\n }\n\n if (vjmo) {\n vjmo.features.vjmo = true;\n }\n\n if (tjmo) {\n tjmo.features.tjmo = true;\n }\n\n if (prevType === LV) {\n // Sequence was originally , which got combined earlier.\n // Either the T was non-combining, or the LVT glyph wasn't supported.\n // Decompose the glyph again and apply OT features.\n decompose(glyphs, i - 1, font);\n return i + 1;\n }\n\n return i;\n}\n\nfunction getLength(code) {\n switch (getType(code)) {\n case LV:\n case LVT:\n return 1;\n\n case V:\n return 2;\n\n case T:\n return 3;\n }\n}\n\nfunction reorderToneMark(glyphs, i, font) {\n var glyph = glyphs[i];\n var code = glyphs[i].codePoints[0]; // Move tone mark to the beginning of the previous syllable, unless it is zero width\n\n if (font.glyphForCodePoint(code).advanceWidth === 0) {\n return;\n }\n\n var prev = glyphs[i - 1].codePoints[0];\n var len = getLength(prev);\n glyphs.splice(i, 1);\n return glyphs.splice(i - len, 0, glyph);\n}\n\nfunction insertDottedCircle(glyphs, i, font) {\n var glyph = glyphs[i];\n var code = glyphs[i].codePoints[0];\n\n if (font.hasGlyphForCodePoint(DOTTED_CIRCLE)) {\n var dottedCircle = getGlyph(font, DOTTED_CIRCLE, glyph.features); // If the tone mark is zero width, insert the dotted circle before, otherwise after\n\n var idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i : i + 1;\n glyphs.splice(idx, 0, dottedCircle);\n i++;\n }\n\n return i;\n}\n\nvar stateTable$1 = [\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t2,\n\t\t3,\n\t\t4,\n\t\t5,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t11,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t15,\n\t\t16,\n\t\t17\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t28,\n\t\t29,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t35,\n\t\t36,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t38,\n\t\t5,\n\t\t7,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t13,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t41,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t12,\n\t\t43,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t45,\n\t\t46,\n\t\t47,\n\t\t48,\n\t\t49,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t50,\n\t\t0,\n\t\t0,\n\t\t51,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t52,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t53,\n\t\t54,\n\t\t55,\n\t\t56,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t60,\n\t\t61,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t4,\n\t\t5,\n\t\t7,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t13,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t63,\n\t\t64,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t41,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t63,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t2,\n\t\t3,\n\t\t4,\n\t\t5,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t11,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t0,\n\t\t2,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t65,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t66,\n\t\t67,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t69,\n\t\t0,\n\t\t70,\n\t\t70,\n\t\t0,\n\t\t71,\n\t\t0,\n\t\t72,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t73,\n\t\t19,\n\t\t74,\n\t\t74,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t77,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t79,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t79,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t19,\n\t\t20,\n\t\t74,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t25,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t81,\n\t\t82,\n\t\t83,\n\t\t84,\n\t\t85,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t86,\n\t\t0,\n\t\t0,\n\t\t87,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t88,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t19,\n\t\t74,\n\t\t74,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t89,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t77,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t89,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t91,\n\t\t92,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t94,\n\t\t29,\n\t\t95,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t36,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t98,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t100,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t35,\n\t\t100,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t100,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t100,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t102,\n\t\t103,\n\t\t104,\n\t\t105,\n\t\t106,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t107,\n\t\t0,\n\t\t0,\n\t\t108,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t109,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t28,\n\t\t29,\n\t\t95,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t36,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t110,\n\t\t111,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t98,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t110,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t112,\n\t\t113,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t7,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t13,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t115,\n\t\t116,\n\t\t117,\n\t\t118,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t119,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t122,\n\t\t0,\n\t\t123,\n\t\t123,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t124,\n\t\t64,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t124,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t125,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t126,\n\t\t126,\n\t\t8,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t47,\n\t\t48,\n\t\t49,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t47,\n\t\t47,\n\t\t49,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t127,\n\t\t127,\n\t\t49,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t128,\n\t\t127,\n\t\t127,\n\t\t49,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t129,\n\t\t130,\n\t\t131,\n\t\t132,\n\t\t133,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t50,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t134,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t135,\n\t\t54,\n\t\t56,\n\t\t56,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t61,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t138,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t140,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t60,\n\t\t140,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t140,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t140,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t142,\n\t\t143,\n\t\t144,\n\t\t145,\n\t\t146,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t147,\n\t\t0,\n\t\t0,\n\t\t148,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t149,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t53,\n\t\t54,\n\t\t56,\n\t\t56,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t61,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t150,\n\t\t151,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t138,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t150,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t152,\n\t\t153,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t155,\n\t\t116,\n\t\t156,\n\t\t157,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t158,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t3,\n\t\t4,\n\t\t5,\n\t\t159,\n\t\t160,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t11,\n\t\t12,\n\t\t163,\n\t\t0,\n\t\t75,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t164,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t165,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t165,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t124,\n\t\t64,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t164,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t124,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t70,\n\t\t70,\n\t\t0,\n\t\t71,\n\t\t0,\n\t\t72,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t71,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t166,\n\t\t0,\n\t\t0,\n\t\t167,\n\t\t0,\n\t\t72,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t168,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t19,\n\t\t74,\n\t\t74,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t79,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t79,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t169,\n\t\t170,\n\t\t171,\n\t\t172,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t173,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t176,\n\t\t0,\n\t\t177,\n\t\t177,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t178,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t178,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t179,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t180,\n\t\t180,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t82,\n\t\t83,\n\t\t84,\n\t\t85,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t83,\n\t\t83,\n\t\t85,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t181,\n\t\t181,\n\t\t85,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t182,\n\t\t181,\n\t\t181,\n\t\t85,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t183,\n\t\t184,\n\t\t185,\n\t\t186,\n\t\t187,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t86,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t188,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t189,\n\t\t170,\n\t\t190,\n\t\t191,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t192,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t193,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t194,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t194,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t178,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t193,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t178,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t95,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t36,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t100,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t100,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t195,\n\t\t196,\n\t\t197,\n\t\t198,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t199,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t202,\n\t\t0,\n\t\t203,\n\t\t203,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t204,\n\t\t111,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t204,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t205,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t206,\n\t\t206,\n\t\t32,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t103,\n\t\t104,\n\t\t105,\n\t\t106,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t104,\n\t\t104,\n\t\t106,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t207,\n\t\t207,\n\t\t106,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t208,\n\t\t207,\n\t\t207,\n\t\t106,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t209,\n\t\t210,\n\t\t211,\n\t\t212,\n\t\t213,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t107,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t214,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t215,\n\t\t196,\n\t\t216,\n\t\t217,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t218,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t219,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t220,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t220,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t204,\n\t\t111,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t219,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t204,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t221,\n\t\t116,\n\t\t222,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t224,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t119,\n\t\t225,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t115,\n\t\t116,\n\t\t117,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t119,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t115,\n\t\t116,\n\t\t222,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t226,\n\t\t64,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t224,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t226,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t227,\n\t\t0,\n\t\t228,\n\t\t229,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t230,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t122,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t8,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t231,\n\t\t231,\n\t\t49,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t232,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t130,\n\t\t131,\n\t\t132,\n\t\t133,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t131,\n\t\t131,\n\t\t133,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t233,\n\t\t233,\n\t\t133,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t234,\n\t\t233,\n\t\t233,\n\t\t133,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t235,\n\t\t236,\n\t\t237,\n\t\t238,\n\t\t239,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t54,\n\t\t56,\n\t\t56,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t61,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t240,\n\t\t241,\n\t\t242,\n\t\t243,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t244,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t247,\n\t\t0,\n\t\t248,\n\t\t248,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t249,\n\t\t151,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t249,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t250,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t251,\n\t\t251,\n\t\t57,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t143,\n\t\t144,\n\t\t145,\n\t\t146,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t144,\n\t\t144,\n\t\t146,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t252,\n\t\t252,\n\t\t146,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t253,\n\t\t252,\n\t\t252,\n\t\t146,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t254,\n\t\t255,\n\t\t256,\n\t\t257,\n\t\t258,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t147,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t259,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t260,\n\t\t241,\n\t\t261,\n\t\t262,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t263,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t264,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t265,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t265,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t249,\n\t\t151,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t264,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t249,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t221,\n\t\t116,\n\t\t222,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t158,\n\t\t225,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t155,\n\t\t116,\n\t\t156,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t158,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t155,\n\t\t116,\n\t\t222,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t266,\n\t\t266,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t12,\n\t\t267,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t176,\n\t\t43,\n\t\t268,\n\t\t268,\n\t\t269,\n\t\t161,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t267,\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t270,\n\t\t0,\n\t\t0,\n\t\t271,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t272,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t273,\n\t\t274,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t41,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t273,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t123,\n\t\t123,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t275,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t72,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t166,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t72,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t276,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t277,\n\t\t170,\n\t\t278,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t280,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t281,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t173,\n\t\t281,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t169,\n\t\t170,\n\t\t171,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t173,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t169,\n\t\t170,\n\t\t278,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t282,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t280,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t282,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t283,\n\t\t0,\n\t\t284,\n\t\t285,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t286,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t176,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t75,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t287,\n\t\t287,\n\t\t85,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t288,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t184,\n\t\t185,\n\t\t186,\n\t\t187,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t185,\n\t\t185,\n\t\t187,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t289,\n\t\t289,\n\t\t187,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t290,\n\t\t289,\n\t\t289,\n\t\t187,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t291,\n\t\t292,\n\t\t293,\n\t\t294,\n\t\t295,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t277,\n\t\t170,\n\t\t278,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t281,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t192,\n\t\t281,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t189,\n\t\t170,\n\t\t190,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t192,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t189,\n\t\t170,\n\t\t278,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t0,\n\t\t177,\n\t\t177,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t296,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t297,\n\t\t196,\n\t\t298,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t300,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t301,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t199,\n\t\t301,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t195,\n\t\t196,\n\t\t197,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t199,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t195,\n\t\t196,\n\t\t298,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t302,\n\t\t111,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t300,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t302,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t303,\n\t\t0,\n\t\t304,\n\t\t305,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t306,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t202,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t96,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t32,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t307,\n\t\t307,\n\t\t106,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t308,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t210,\n\t\t211,\n\t\t212,\n\t\t213,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t211,\n\t\t211,\n\t\t213,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t309,\n\t\t309,\n\t\t213,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t310,\n\t\t309,\n\t\t309,\n\t\t213,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t311,\n\t\t312,\n\t\t313,\n\t\t314,\n\t\t315,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t297,\n\t\t196,\n\t\t298,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t301,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t218,\n\t\t301,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t215,\n\t\t196,\n\t\t216,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t218,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t215,\n\t\t196,\n\t\t298,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t0,\n\t\t203,\n\t\t203,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t316,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t116,\n\t\t222,\n\t\t222,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t317,\n\t\t318,\n\t\t319,\n\t\t320,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t321,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t323,\n\t\t0,\n\t\t123,\n\t\t123,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t324,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t325,\n\t\t318,\n\t\t326,\n\t\t327,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t328,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t64,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t230,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t227,\n\t\t0,\n\t\t228,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t230,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t227,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t49,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t329,\n\t\t329,\n\t\t133,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t330,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t236,\n\t\t237,\n\t\t238,\n\t\t239,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t237,\n\t\t237,\n\t\t239,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t331,\n\t\t331,\n\t\t239,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t332,\n\t\t331,\n\t\t331,\n\t\t239,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t333,\n\t\t40,\n\t\t121,\n\t\t334,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t335,\n\t\t241,\n\t\t336,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t338,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t339,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t244,\n\t\t339,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t240,\n\t\t241,\n\t\t242,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t244,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t240,\n\t\t241,\n\t\t336,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t340,\n\t\t151,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t338,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t340,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t341,\n\t\t0,\n\t\t342,\n\t\t343,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t344,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t247,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t136,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t57,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t345,\n\t\t345,\n\t\t146,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t346,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t255,\n\t\t256,\n\t\t257,\n\t\t258,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t256,\n\t\t256,\n\t\t258,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t347,\n\t\t347,\n\t\t258,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t348,\n\t\t347,\n\t\t347,\n\t\t258,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t349,\n\t\t350,\n\t\t351,\n\t\t352,\n\t\t353,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t335,\n\t\t241,\n\t\t336,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t339,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t263,\n\t\t339,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t260,\n\t\t241,\n\t\t261,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t263,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t260,\n\t\t241,\n\t\t336,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t0,\n\t\t248,\n\t\t248,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t354,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t126,\n\t\t126,\n\t\t8,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t355,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t125,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t355,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t356,\n\t\t356,\n\t\t269,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t357,\n\t\t358,\n\t\t359,\n\t\t360,\n\t\t361,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t270,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t363,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t364,\n\t\t116,\n\t\t365,\n\t\t366,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t367,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t368,\n\t\t368,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t170,\n\t\t278,\n\t\t278,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t174,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t281,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t281,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t369,\n\t\t370,\n\t\t371,\n\t\t372,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t373,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t375,\n\t\t0,\n\t\t177,\n\t\t177,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t376,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t377,\n\t\t370,\n\t\t378,\n\t\t379,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t380,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t90,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t286,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t283,\n\t\t0,\n\t\t284,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t286,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t283,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t85,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t82,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t381,\n\t\t381,\n\t\t187,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t382,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t292,\n\t\t293,\n\t\t294,\n\t\t295,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t293,\n\t\t293,\n\t\t295,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t383,\n\t\t383,\n\t\t295,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t384,\n\t\t383,\n\t\t383,\n\t\t295,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t385,\n\t\t76,\n\t\t175,\n\t\t386,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t196,\n\t\t298,\n\t\t298,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t200,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t301,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t301,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t387,\n\t\t388,\n\t\t389,\n\t\t390,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t391,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t393,\n\t\t0,\n\t\t203,\n\t\t203,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t394,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t395,\n\t\t388,\n\t\t396,\n\t\t397,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t398,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t111,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t306,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t303,\n\t\t0,\n\t\t304,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t306,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t303,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t106,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t103,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t399,\n\t\t399,\n\t\t213,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t400,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t312,\n\t\t313,\n\t\t314,\n\t\t315,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t313,\n\t\t313,\n\t\t315,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t401,\n\t\t401,\n\t\t315,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t402,\n\t\t401,\n\t\t401,\n\t\t315,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t403,\n\t\t97,\n\t\t201,\n\t\t404,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t405,\n\t\t318,\n\t\t406,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t408,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t409,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t321,\n\t\t409,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t317,\n\t\t318,\n\t\t319,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t321,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t317,\n\t\t318,\n\t\t406,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t410,\n\t\t64,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t408,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t410,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t323,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t223,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t405,\n\t\t318,\n\t\t406,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t409,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t328,\n\t\t409,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t325,\n\t\t318,\n\t\t326,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t328,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t325,\n\t\t318,\n\t\t406,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t133,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t130,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t411,\n\t\t411,\n\t\t239,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t412,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t121,\n\t\t334,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t413,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t241,\n\t\t336,\n\t\t336,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t245,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t339,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t339,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t414,\n\t\t415,\n\t\t416,\n\t\t417,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t418,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t420,\n\t\t0,\n\t\t248,\n\t\t248,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t421,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t422,\n\t\t415,\n\t\t423,\n\t\t424,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t425,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t151,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t344,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t341,\n\t\t0,\n\t\t342,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t344,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t341,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t146,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t143,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t426,\n\t\t426,\n\t\t258,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t427,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t350,\n\t\t351,\n\t\t352,\n\t\t353,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t351,\n\t\t351,\n\t\t353,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t428,\n\t\t428,\n\t\t353,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t429,\n\t\t428,\n\t\t428,\n\t\t353,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t430,\n\t\t137,\n\t\t246,\n\t\t431,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t432,\n\t\t116,\n\t\t433,\n\t\t434,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t435,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t180,\n\t\t180,\n\t\t269,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t358,\n\t\t359,\n\t\t360,\n\t\t361,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t359,\n\t\t359,\n\t\t361,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t436,\n\t\t436,\n\t\t361,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t437,\n\t\t436,\n\t\t436,\n\t\t361,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t438,\n\t\t439,\n\t\t440,\n\t\t441,\n\t\t442,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t443,\n\t\t274,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t443,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t444,\n\t\t116,\n\t\t445,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t367,\n\t\t225,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t364,\n\t\t116,\n\t\t365,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t367,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t364,\n\t\t116,\n\t\t445,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t446,\n\t\t370,\n\t\t447,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t449,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t450,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t373,\n\t\t450,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t369,\n\t\t370,\n\t\t371,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t373,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t369,\n\t\t370,\n\t\t447,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t451,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t449,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t451,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t375,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t279,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t446,\n\t\t370,\n\t\t447,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t450,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t380,\n\t\t450,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t377,\n\t\t370,\n\t\t378,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t380,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t377,\n\t\t370,\n\t\t447,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t187,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t184,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t452,\n\t\t452,\n\t\t295,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t453,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t175,\n\t\t386,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t454,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t455,\n\t\t388,\n\t\t456,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t458,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t459,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t391,\n\t\t459,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t387,\n\t\t388,\n\t\t389,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t391,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t387,\n\t\t388,\n\t\t456,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t460,\n\t\t111,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t458,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t460,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t393,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t299,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t455,\n\t\t388,\n\t\t456,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t459,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t398,\n\t\t459,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t395,\n\t\t388,\n\t\t396,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t398,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t395,\n\t\t388,\n\t\t456,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t213,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t210,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t461,\n\t\t461,\n\t\t315,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t462,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t201,\n\t\t404,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t463,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t318,\n\t\t406,\n\t\t406,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t322,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t409,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t409,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t464,\n\t\t465,\n\t\t466,\n\t\t467,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t468,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t470,\n\t\t0,\n\t\t123,\n\t\t123,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t471,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t472,\n\t\t465,\n\t\t473,\n\t\t474,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t475,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t239,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t236,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t476,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t477,\n\t\t415,\n\t\t478,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t480,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t481,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t418,\n\t\t481,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t414,\n\t\t415,\n\t\t416,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t418,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t414,\n\t\t415,\n\t\t478,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t482,\n\t\t151,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t480,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t482,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t420,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t337,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t477,\n\t\t415,\n\t\t478,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t481,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t425,\n\t\t481,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t422,\n\t\t415,\n\t\t423,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t425,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t422,\n\t\t415,\n\t\t478,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t258,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t255,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t483,\n\t\t483,\n\t\t353,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t484,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t246,\n\t\t431,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t485,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t444,\n\t\t116,\n\t\t445,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t435,\n\t\t225,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t432,\n\t\t116,\n\t\t433,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t435,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t432,\n\t\t116,\n\t\t445,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t486,\n\t\t486,\n\t\t361,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t487,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t439,\n\t\t440,\n\t\t441,\n\t\t442,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t440,\n\t\t440,\n\t\t442,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t488,\n\t\t488,\n\t\t442,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t489,\n\t\t488,\n\t\t488,\n\t\t442,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t490,\n\t\t491,\n\t\t492,\n\t\t493,\n\t\t494,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t495,\n\t\t0,\n\t\t496,\n\t\t497,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t498,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t116,\n\t\t445,\n\t\t445,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t120,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t225,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t370,\n\t\t447,\n\t\t447,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t374,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t450,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t450,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t499,\n\t\t500,\n\t\t501,\n\t\t502,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t503,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t505,\n\t\t0,\n\t\t177,\n\t\t177,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t506,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t507,\n\t\t500,\n\t\t508,\n\t\t509,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t510,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t295,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t292,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t511,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t388,\n\t\t456,\n\t\t456,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t392,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t459,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t459,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t512,\n\t\t513,\n\t\t514,\n\t\t515,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t516,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t518,\n\t\t0,\n\t\t203,\n\t\t203,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t519,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t520,\n\t\t513,\n\t\t521,\n\t\t522,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t523,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t315,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t312,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t524,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t525,\n\t\t465,\n\t\t526,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t528,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t529,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t468,\n\t\t529,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t464,\n\t\t465,\n\t\t466,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t468,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t464,\n\t\t465,\n\t\t526,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t530,\n\t\t64,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t528,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t530,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t470,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t407,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t525,\n\t\t465,\n\t\t526,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t529,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t475,\n\t\t529,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t472,\n\t\t465,\n\t\t473,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t475,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t472,\n\t\t465,\n\t\t526,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t415,\n\t\t478,\n\t\t478,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t419,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t481,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t481,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t531,\n\t\t532,\n\t\t533,\n\t\t534,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t535,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t537,\n\t\t0,\n\t\t248,\n\t\t248,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t538,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t539,\n\t\t532,\n\t\t540,\n\t\t541,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t542,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t353,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t350,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t543,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t361,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t358,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t544,\n\t\t544,\n\t\t442,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t545,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t491,\n\t\t492,\n\t\t493,\n\t\t494,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t492,\n\t\t492,\n\t\t494,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t546,\n\t\t546,\n\t\t494,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t547,\n\t\t546,\n\t\t546,\n\t\t494,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t548,\n\t\t549,\n\t\t368,\n\t\t550,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t274,\n\t\t0,\n\t\t368,\n\t\t368,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t498,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t495,\n\t\t0,\n\t\t496,\n\t\t368,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t498,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t495,\n\t\t0,\n\t\t368,\n\t\t368,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t551,\n\t\t500,\n\t\t552,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t554,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t555,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t503,\n\t\t555,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t499,\n\t\t500,\n\t\t501,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t503,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t499,\n\t\t500,\n\t\t552,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t556,\n\t\t90,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t554,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t556,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t505,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t448,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t551,\n\t\t500,\n\t\t552,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t555,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t510,\n\t\t555,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t507,\n\t\t500,\n\t\t508,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t510,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t507,\n\t\t500,\n\t\t552,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t76,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t557,\n\t\t513,\n\t\t558,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t560,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t561,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t516,\n\t\t561,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t512,\n\t\t513,\n\t\t514,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t516,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t512,\n\t\t513,\n\t\t558,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t562,\n\t\t111,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t560,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t562,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t518,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t457,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t557,\n\t\t513,\n\t\t558,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t561,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t523,\n\t\t561,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t520,\n\t\t513,\n\t\t521,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t523,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t520,\n\t\t513,\n\t\t558,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t97,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t465,\n\t\t526,\n\t\t526,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t469,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t529,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t529,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t563,\n\t\t66,\n\t\t564,\n\t\t565,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t566,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t567,\n\t\t0,\n\t\t123,\n\t\t123,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t568,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t569,\n\t\t66,\n\t\t570,\n\t\t571,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t572,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t573,\n\t\t532,\n\t\t574,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t576,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t577,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t535,\n\t\t577,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t531,\n\t\t532,\n\t\t533,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t535,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t531,\n\t\t532,\n\t\t574,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t578,\n\t\t151,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t576,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t578,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t537,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t479,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t573,\n\t\t532,\n\t\t574,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t577,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t542,\n\t\t577,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t539,\n\t\t532,\n\t\t540,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t542,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t539,\n\t\t532,\n\t\t574,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t137,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t442,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t439,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t579,\n\t\t579,\n\t\t494,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t580,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t549,\n\t\t368,\n\t\t550,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t368,\n\t\t368,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t162,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t362,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t581,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t161,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t500,\n\t\t552,\n\t\t552,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t504,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t555,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t555,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t582,\n\t\t91,\n\t\t583,\n\t\t584,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t585,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t586,\n\t\t0,\n\t\t177,\n\t\t177,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t587,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t588,\n\t\t91,\n\t\t589,\n\t\t590,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t591,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t513,\n\t\t558,\n\t\t558,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t517,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t561,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t561,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t592,\n\t\t112,\n\t\t593,\n\t\t594,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t595,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t596,\n\t\t0,\n\t\t203,\n\t\t203,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t597,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t598,\n\t\t112,\n\t\t599,\n\t\t600,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t601,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t602,\n\t\t66,\n\t\t67,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t165,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t566,\n\t\t165,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t563,\n\t\t66,\n\t\t564,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t566,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t563,\n\t\t66,\n\t\t67,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t567,\n\t\t0,\n\t\t121,\n\t\t121,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t42,\n\t\t0,\n\t\t527,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t602,\n\t\t66,\n\t\t67,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t165,\n\t\t44,\n\t\t44,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t572,\n\t\t165,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t569,\n\t\t66,\n\t\t570,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t572,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t569,\n\t\t66,\n\t\t67,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t532,\n\t\t574,\n\t\t574,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t536,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t577,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t577,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t603,\n\t\t152,\n\t\t604,\n\t\t605,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t606,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t607,\n\t\t0,\n\t\t248,\n\t\t248,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t608,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t609,\n\t\t152,\n\t\t610,\n\t\t611,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t612,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t494,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t491,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t613,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t614,\n\t\t91,\n\t\t92,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t194,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t585,\n\t\t194,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t582,\n\t\t91,\n\t\t583,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t585,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t582,\n\t\t91,\n\t\t92,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t586,\n\t\t0,\n\t\t175,\n\t\t175,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t78,\n\t\t0,\n\t\t553,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t614,\n\t\t91,\n\t\t92,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t194,\n\t\t80,\n\t\t80,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t591,\n\t\t194,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t588,\n\t\t91,\n\t\t589,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t591,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t588,\n\t\t91,\n\t\t92,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t615,\n\t\t112,\n\t\t113,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t220,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t595,\n\t\t220,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t592,\n\t\t112,\n\t\t593,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t595,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t592,\n\t\t112,\n\t\t113,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t596,\n\t\t0,\n\t\t201,\n\t\t201,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t99,\n\t\t0,\n\t\t559,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t615,\n\t\t112,\n\t\t113,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t220,\n\t\t101,\n\t\t101,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t601,\n\t\t220,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t598,\n\t\t112,\n\t\t599,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t601,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t598,\n\t\t112,\n\t\t113,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t66,\n\t\t67,\n\t\t67,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t10,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t68,\n\t\t0,\n\t\t0,\n\t\t16,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t616,\n\t\t152,\n\t\t153,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t265,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t606,\n\t\t265,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t603,\n\t\t152,\n\t\t604,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t606,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t603,\n\t\t152,\n\t\t153,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t607,\n\t\t0,\n\t\t246,\n\t\t246,\n\t\t0,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t139,\n\t\t0,\n\t\t575,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t616,\n\t\t152,\n\t\t153,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t265,\n\t\t141,\n\t\t141,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t612,\n\t\t265,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t609,\n\t\t152,\n\t\t610,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t612,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t609,\n\t\t152,\n\t\t153,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t549,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t91,\n\t\t92,\n\t\t92,\n\t\t22,\n\t\t23,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t93,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t112,\n\t\t113,\n\t\t113,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t34,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t114,\n\t\t0,\n\t\t0,\n\t\t37,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t152,\n\t\t153,\n\t\t153,\n\t\t57,\n\t\t58,\n\t\t0,\n\t\t59,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t154,\n\t\t0,\n\t\t0,\n\t\t62,\n\t\t0\n\t]\n];\nvar accepting$1 = [\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\tfalse,\n\tfalse,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue\n];\nvar tags$1 = [\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"consonant_syllable\",\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"consonant_syllable\"\n\t],\n\t[\n\t\t\"vowel_syllable\"\n\t],\n\t[\n\t\t\"standalone_cluster\"\n\t]\n];\nvar indicMachine = {\n\tstateTable: stateTable$1,\n\taccepting: accepting$1,\n\ttags: tags$1\n};\n\nvar categories$1 = [\n\t\"O\",\n\t\"IND\",\n\t\"S\",\n\t\"GB\",\n\t\"B\",\n\t\"FM\",\n\t\"CGJ\",\n\t\"VMAbv\",\n\t\"VMPst\",\n\t\"VAbv\",\n\t\"VPst\",\n\t\"CMBlw\",\n\t\"VPre\",\n\t\"VBlw\",\n\t\"H\",\n\t\"VMBlw\",\n\t\"CMAbv\",\n\t\"MBlw\",\n\t\"CS\",\n\t\"R\",\n\t\"SUB\",\n\t\"MPst\",\n\t\"MPre\",\n\t\"FAbv\",\n\t\"FPst\",\n\t\"FBlw\",\n\t\"null\",\n\t\"SMAbv\",\n\t\"SMBlw\",\n\t\"VMPre\",\n\t\"ZWNJ\",\n\t\"ZWJ\",\n\t\"WJ\",\n\t\"M\",\n\t\"VS\",\n\t\"N\",\n\t\"HN\",\n\t\"MAbv\"\n];\nvar decompositions$2 = {\n\t\"2507\": [\n\t\t2503,\n\t\t2494\n\t],\n\t\"2508\": [\n\t\t2503,\n\t\t2519\n\t],\n\t\"2888\": [\n\t\t2887,\n\t\t2902\n\t],\n\t\"2891\": [\n\t\t2887,\n\t\t2878\n\t],\n\t\"2892\": [\n\t\t2887,\n\t\t2903\n\t],\n\t\"3018\": [\n\t\t3014,\n\t\t3006\n\t],\n\t\"3019\": [\n\t\t3015,\n\t\t3006\n\t],\n\t\"3020\": [\n\t\t3014,\n\t\t3031\n\t],\n\t\"3144\": [\n\t\t3142,\n\t\t3158\n\t],\n\t\"3264\": [\n\t\t3263,\n\t\t3285\n\t],\n\t\"3271\": [\n\t\t3270,\n\t\t3285\n\t],\n\t\"3272\": [\n\t\t3270,\n\t\t3286\n\t],\n\t\"3274\": [\n\t\t3270,\n\t\t3266\n\t],\n\t\"3275\": [\n\t\t3270,\n\t\t3266,\n\t\t3285\n\t],\n\t\"3402\": [\n\t\t3398,\n\t\t3390\n\t],\n\t\"3403\": [\n\t\t3399,\n\t\t3390\n\t],\n\t\"3404\": [\n\t\t3398,\n\t\t3415\n\t],\n\t\"3546\": [\n\t\t3545,\n\t\t3530\n\t],\n\t\"3548\": [\n\t\t3545,\n\t\t3535\n\t],\n\t\"3549\": [\n\t\t3545,\n\t\t3535,\n\t\t3530\n\t],\n\t\"3550\": [\n\t\t3545,\n\t\t3551\n\t],\n\t\"3635\": [\n\t\t3661,\n\t\t3634\n\t],\n\t\"3763\": [\n\t\t3789,\n\t\t3762\n\t],\n\t\"3955\": [\n\t\t3953,\n\t\t3954\n\t],\n\t\"3957\": [\n\t\t3953,\n\t\t3956\n\t],\n\t\"3958\": [\n\t\t4018,\n\t\t3968\n\t],\n\t\"3959\": [\n\t\t4018,\n\t\t3953,\n\t\t3968\n\t],\n\t\"3960\": [\n\t\t4019,\n\t\t3968\n\t],\n\t\"3961\": [\n\t\t4019,\n\t\t3953,\n\t\t3968\n\t],\n\t\"3969\": [\n\t\t3953,\n\t\t3968\n\t],\n\t\"6971\": [\n\t\t6970,\n\t\t6965\n\t],\n\t\"6973\": [\n\t\t6972,\n\t\t6965\n\t],\n\t\"6976\": [\n\t\t6974,\n\t\t6965\n\t],\n\t\"6977\": [\n\t\t6975,\n\t\t6965\n\t],\n\t\"6979\": [\n\t\t6978,\n\t\t6965\n\t],\n\t\"69934\": [\n\t\t69937,\n\t\t69927\n\t],\n\t\"69935\": [\n\t\t69938,\n\t\t69927\n\t],\n\t\"70475\": [\n\t\t70471,\n\t\t70462\n\t],\n\t\"70476\": [\n\t\t70471,\n\t\t70487\n\t],\n\t\"70843\": [\n\t\t70841,\n\t\t70842\n\t],\n\t\"70844\": [\n\t\t70841,\n\t\t70832\n\t],\n\t\"70846\": [\n\t\t70841,\n\t\t70845\n\t],\n\t\"71098\": [\n\t\t71096,\n\t\t71087\n\t],\n\t\"71099\": [\n\t\t71097,\n\t\t71087\n\t]\n};\nvar stateTable = [\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t2,\n\t\t2,\n\t\t3,\n\t\t4,\n\t\t4,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t10,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t15,\n\t\t16,\n\t\t0,\n\t\t17,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t2,\n\t\t0,\n\t\t0,\n\t\t24,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t26,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t28,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t34,\n\t\t35,\n\t\t36,\n\t\t37,\n\t\t38,\n\t\t39,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t35,\n\t\t42,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t39,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t0,\n\t\t7,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t12,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t10,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t0,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t11,\n\t\t12,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t0,\n\t\t9,\n\t\t0,\n\t\t0,\n\t\t12,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t0,\n\t\t7,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t10,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t15,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t11,\n\t\t12,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t11,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t4,\n\t\t4,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t10,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t15,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t48,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t48,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t49,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t11,\n\t\t12,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t11,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t21,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t50,\n\t\t0,\n\t\t51,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t0,\n\t\t11,\n\t\t12,\n\t\t0,\n\t\t14,\n\t\t0,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t11,\n\t\t0,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t27,\n\t\t28,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t28,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t0,\n\t\t31,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t36,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t34,\n\t\t35,\n\t\t36,\n\t\t37,\n\t\t38,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t35,\n\t\t42,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t35,\n\t\t36,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t0,\n\t\t33,\n\t\t0,\n\t\t0,\n\t\t36,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t0,\n\t\t31,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t34,\n\t\t35,\n\t\t36,\n\t\t37,\n\t\t38,\n\t\t39,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t35,\n\t\t42,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t35,\n\t\t36,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t35,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t52,\n\t\t35,\n\t\t36,\n\t\t37,\n\t\t38,\n\t\t52,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t35,\n\t\t42,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t53,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t35,\n\t\t36,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t35,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t44,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t0,\n\t\t35,\n\t\t36,\n\t\t0,\n\t\t38,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t35,\n\t\t0,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t48,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t0,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t5,\n\t\t0,\n\t\t6,\n\t\t7,\n\t\t8,\n\t\t9,\n\t\t48,\n\t\t11,\n\t\t12,\n\t\t13,\n\t\t14,\n\t\t48,\n\t\t16,\n\t\t0,\n\t\t0,\n\t\t18,\n\t\t11,\n\t\t19,\n\t\t20,\n\t\t21,\n\t\t22,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t23,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t25\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t51,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t54,\n\t\t0,\n\t\t0\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t52,\n\t\t35,\n\t\t36,\n\t\t37,\n\t\t38,\n\t\t0,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t35,\n\t\t42,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t29,\n\t\t0,\n\t\t30,\n\t\t31,\n\t\t32,\n\t\t33,\n\t\t52,\n\t\t35,\n\t\t36,\n\t\t37,\n\t\t38,\n\t\t52,\n\t\t40,\n\t\t0,\n\t\t0,\n\t\t41,\n\t\t35,\n\t\t42,\n\t\t43,\n\t\t44,\n\t\t45,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t46,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t47\n\t],\n\t[\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t0,\n\t\t50,\n\t\t0,\n\t\t51,\n\t\t0\n\t]\n];\nvar accepting = [\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\tfalse,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue,\n\ttrue\n];\nvar tags = [\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"independent_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"numeral_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"independent_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"symbol_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"virama_terminated_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"broken_cluster\"\n\t],\n\t[\n\t\t\"numeral_cluster\"\n\t],\n\t[\n\t\t\"number_joiner_terminated_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"standard_cluster\"\n\t],\n\t[\n\t\t\"numeral_cluster\"\n\t]\n];\nvar useData = {\n\tcategories: categories$1,\n\tdecompositions: decompositions$2,\n\tstateTable: stateTable,\n\taccepting: accepting,\n\ttags: tags\n};\n\n// Updated: 417af0c79c5664271a07a783574ec7fac7ebad0c\n// Cateories used in the OpenType spec:\n// https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx\nvar CATEGORIES = {\n X: 1 << 0,\n C: 1 << 1,\n V: 1 << 2,\n N: 1 << 3,\n H: 1 << 4,\n ZWNJ: 1 << 5,\n ZWJ: 1 << 6,\n M: 1 << 7,\n SM: 1 << 8,\n VD: 1 << 9,\n A: 1 << 10,\n Placeholder: 1 << 11,\n Dotted_Circle: 1 << 12,\n RS: 1 << 13,\n // Register Shifter, used in Khmer OT spec.\n Coeng: 1 << 14,\n // Khmer-style Virama.\n Repha: 1 << 15,\n // Atomically-encoded logical or visual repha.\n Ra: 1 << 16,\n CM: 1 << 17,\n // Consonant-Medial.\n Symbol: 1 << 18 // Avagraha, etc that take marks (SM,A,VD).\n\n}; // Visual positions in a syllable from left to right.\n\nvar POSITIONS = {\n Start: 1 << 0,\n Ra_To_Become_Reph: 1 << 1,\n Pre_M: 1 << 2,\n Pre_C: 1 << 3,\n Base_C: 1 << 4,\n After_Main: 1 << 5,\n Above_C: 1 << 6,\n Before_Sub: 1 << 7,\n Below_C: 1 << 8,\n After_Sub: 1 << 9,\n Before_Post: 1 << 10,\n Post_C: 1 << 11,\n After_Post: 1 << 12,\n Final_C: 1 << 13,\n SMVD: 1 << 14,\n End: 1 << 15\n};\nvar CONSONANT_FLAGS = CATEGORIES.C | CATEGORIES.Ra | CATEGORIES.CM | CATEGORIES.V | CATEGORIES.Placeholder | CATEGORIES.Dotted_Circle;\nvar JOINER_FLAGS = CATEGORIES.ZWJ | CATEGORIES.ZWNJ;\nvar HALANT_OR_COENG_FLAGS = CATEGORIES.H | CATEGORIES.Coeng;\nvar INDIC_CONFIGS = {\n Default: {\n hasOldSpec: false,\n virama: 0,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Devanagari: {\n hasOldSpec: true,\n virama: 0x094D,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Bengali: {\n hasOldSpec: true,\n virama: 0x09CD,\n basePos: 'Last',\n rephPos: POSITIONS.After_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gurmukhi: {\n hasOldSpec: true,\n virama: 0x0A4D,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gujarati: {\n hasOldSpec: true,\n virama: 0x0ACD,\n basePos: 'Last',\n rephPos: POSITIONS.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Oriya: {\n hasOldSpec: true,\n virama: 0x0B4D,\n basePos: 'Last',\n rephPos: POSITIONS.After_Main,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Tamil: {\n hasOldSpec: true,\n virama: 0x0BCD,\n basePos: 'Last',\n rephPos: POSITIONS.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Telugu: {\n hasOldSpec: true,\n virama: 0x0C4D,\n basePos: 'Last',\n rephPos: POSITIONS.After_Post,\n rephMode: 'Explicit',\n blwfMode: 'Post_Only'\n },\n Kannada: {\n hasOldSpec: true,\n virama: 0x0CCD,\n basePos: 'Last',\n rephPos: POSITIONS.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Post_Only'\n },\n Malayalam: {\n hasOldSpec: true,\n virama: 0x0D4D,\n basePos: 'Last',\n rephPos: POSITIONS.After_Main,\n rephMode: 'Log_Repha',\n blwfMode: 'Pre_And_Post'\n },\n // Handled by UniversalShaper\n // Sinhala: {\n // hasOldSpec: false,\n // virama: 0x0DCA,\n // basePos: 'Last_Sinhala',\n // rephPos: POSITIONS.After_Main,\n // rephMode: 'Explicit',\n // blwfMode: 'Pre_And_Post'\n // },\n Khmer: {\n hasOldSpec: false,\n virama: 0x17D2,\n basePos: 'First',\n rephPos: POSITIONS.Ra_To_Become_Reph,\n rephMode: 'Vis_Repha',\n blwfMode: 'Pre_And_Post'\n }\n}; // Additional decompositions that aren't in Unicode\n\nvar INDIC_DECOMPOSITIONS = {\n // Khmer\n 0x17BE: [0x17C1, 0x17BE],\n 0x17BF: [0x17C1, 0x17BF],\n 0x17C0: [0x17C1, 0x17C0],\n 0x17C4: [0x17C1, 0x17C4],\n 0x17C5: [0x17C1, 0x17C5]\n};\n\nvar type$1 = \"Buffer\";\nvar data$1 = [\n\t0,\n\t17,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t216,\n\t96,\n\t1,\n\t102,\n\t15,\n\t153,\n\t240,\n\t237,\n\t157,\n\t123,\n\t140,\n\t92,\n\t85,\n\t29,\n\t199,\n\t239,\n\t238,\n\t206,\n\t206,\n\t204,\n\t238,\n\t204,\n\t238,\n\t116,\n\t11,\n\t68,\n\t8,\n\t98,\n\t81,\n\t32,\n\t196,\n\t80,\n\t109,\n\t64,\n\t34,\n\t182,\n\t20,\n\t22,\n\t144,\n\t96,\n\t10,\n\t137,\n\t88,\n\t77,\n\t164,\n\t85,\n\t81,\n\t68,\n\t9,\n\t136,\n\t65,\n\t80,\n\t131,\n\t144,\n\t54,\n\t8,\n\t8,\n\t106,\n\t45,\n\t32,\n\t15,\n\t65,\n\t76,\n\t44,\n\t252,\n\t33,\n\t229,\n\t47,\n\t138,\n\t254,\n\t193,\n\t67,\n\t99,\n\t193,\n\t180,\n\t18,\n\t17,\n\t44,\n\t16,\n\t80,\n\t33,\n\t96,\n\t20,\n\t176,\n\t168,\n\t53,\n\t4,\n\t172,\n\t81,\n\t2,\n\t162,\n\t32,\n\t126,\n\t207,\n\t220,\n\t115,\n\t230,\n\t158,\n\t57,\n\t115,\n\t222,\n\t143,\n\t123,\n\t103,\n\t101,\n\t126,\n\t201,\n\t39,\n\t247,\n\t113,\n\t206,\n\t61,\n\t231,\n\t119,\n\t126,\n\t191,\n\t243,\n\t190,\n\t119,\n\t103,\n\t151,\n\t212,\n\t178,\n\t236,\n\t96,\n\t176,\n\t12,\n\t28,\n\t1,\n\t78,\n\t6,\n\t167,\n\t128,\n\t79,\n\t128,\n\t207,\n\t130,\n\t119,\n\t131,\n\t247,\n\t70,\n\t56,\n\t158,\n\t14,\n\t206,\n\t6,\n\t95,\n\t2,\n\t235,\n\t28,\n\t158,\n\t91,\n\t15,\n\t46,\n\t3,\n\t27,\n\t192,\n\t53,\n\t224,\n\t187,\n\t224,\n\t102,\n\t176,\n\t25,\n\t108,\n\t1,\n\t119,\n\t130,\n\t123,\n\t52,\n\t207,\n\t95,\n\t0,\n\t46,\n\t6,\n\t63,\n\t7,\n\t191,\n\t2,\n\t247,\n\t131,\n\t71,\n\t192,\n\t19,\n\t224,\n\t105,\n\t176,\n\t4,\n\t252,\n\t5,\n\t252,\n\t13,\n\t188,\n\t12,\n\t230,\n\t193,\n\t127,\n\t65,\n\t125,\n\t50,\n\t15,\n\t155,\n\t197,\n\t113,\n\t79,\n\t240,\n\t86,\n\t112,\n\t32,\n\t88,\n\t10,\n\t14,\n\t3,\n\t43,\n\t192,\n\t113,\n\t224,\n\t68,\n\t240,\n\t33,\n\t176,\n\t6,\n\t156,\n\t6,\n\t206,\n\t2,\n\t95,\n\t0,\n\t95,\n\t1,\n\t95,\n\t5,\n\t223,\n\t0,\n\t87,\n\t130,\n\t235,\n\t193,\n\t38,\n\t176,\n\t25,\n\t108,\n\t1,\n\t119,\n\t130,\n\t173,\n\t224,\n\t62,\n\t240,\n\t32,\n\t120,\n\t12,\n\t60,\n\t5,\n\t254,\n\t8,\n\t118,\n\t129,\n\t221,\n\t224,\n\t21,\n\t240,\n\t6,\n\t152,\n\t172,\n\t103,\n\t217,\n\t12,\n\t216,\n\t11,\n\t236,\n\t7,\n\t14,\n\t4,\n\t75,\n\t193,\n\t225,\n\t96,\n\t37,\n\t56,\n\t22,\n\t172,\n\t170,\n\t231,\n\t186,\n\t175,\n\t198,\n\t113,\n\t13,\n\t56,\n\t141,\n\t94,\n\t159,\n\t133,\n\t227,\n\t121,\n\t224,\n\t66,\n\t112,\n\t17,\n\t184,\n\t28,\n\t92,\n\t1,\n\t190,\n\t67,\n\t195,\n\t191,\n\t143,\n\t227,\n\t45,\n\t224,\n\t54,\n\t112,\n\t7,\n\t216,\n\t90,\n\t207,\n\t203,\n\t125,\n\t31,\n\t61,\n\t218,\n\t242,\n\t32,\n\t141,\n\t255,\n\t24,\n\t142,\n\t191,\n\t4,\n\t79,\n\t209,\n\t235,\n\t199,\n\t233,\n\t241,\n\t58,\n\t240,\n\t12,\n\t206,\n\t31,\n\t226,\n\t158,\n\t217,\n\t229,\n\t152,\n\t135,\n\t13,\n\t207,\n\t112,\n\t105,\n\t238,\n\t198,\n\t249,\n\t43,\n\t224,\n\t13,\n\t208,\n\t104,\n\t100,\n\t89,\n\t7,\n\t188,\n\t5,\n\t44,\n\t1,\n\t7,\n\t131,\n\t101,\n\t224,\n\t136,\n\t70,\n\t127,\n\t124,\n\t114,\n\t156,\n\t167,\n\t247,\n\t30,\n\t6,\n\t31,\n\t192,\n\t249,\n\t201,\n\t224,\n\t20,\n\t240,\n\t169,\n\t70,\n\t110,\n\t175,\n\t51,\n\t113,\n\t60,\n\t151,\n\t198,\n\t185,\n\t128,\n\t222,\n\t187,\n\t24,\n\t199,\n\t111,\n\t130,\n\t171,\n\t27,\n\t121,\n\t125,\n\t154,\n\t167,\n\t220,\n\t136,\n\t235,\n\t77,\n\t96,\n\t51,\n\t184,\n\t13,\n\t220,\n\t1,\n\t182,\n\t210,\n\t103,\n\t238,\n\t163,\n\t199,\n\t29,\n\t56,\n\t254,\n\t134,\n\t166,\n\t247,\n\t84,\n\t131,\n\t218,\n\t10,\n\t199,\n\t63,\n\t55,\n\t244,\n\t101,\n\t125,\n\t209,\n\t16,\n\t206,\n\t219,\n\t248,\n\t37,\n\t196,\n\t221,\n\t65,\n\t239,\n\t221,\n\t13,\n\t94,\n\t195,\n\t117,\n\t173,\n\t153,\n\t101,\n\t237,\n\t102,\n\t17,\n\t119,\n\t15,\n\t156,\n\t239,\n\t75,\n\t175,\n\t79,\n\t2,\n\t7,\n\t52,\n\t7,\n\t211,\n\t59,\n\t68,\n\t114,\n\t47,\n\t148,\n\t195,\n\t154,\n\t121,\n\t219,\n\t115,\n\t121,\n\t102,\n\t69,\n\t2,\n\t61,\n\t82,\n\t115,\n\t52,\n\t116,\n\t62,\n\t94,\n\t162,\n\t247,\n\t243,\n\t224,\n\t90,\n\t73,\n\t252,\n\t19,\n\t105,\n\t92,\n\t214,\n\t22,\n\t87,\n\t227,\n\t122,\n\t45,\n\t248,\n\t52,\n\t133,\n\t143,\n\t123,\n\t36,\n\t173,\n\t111,\n\t159,\n\t227,\n\t238,\n\t175,\n\t208,\n\t232,\n\t66,\n\t234,\n\t246,\n\t23,\n\t185,\n\t184,\n\t223,\n\t166,\n\t199,\n\t13,\n\t66,\n\t188,\n\t11,\n\t155,\n\t121,\n\t255,\n\t203,\n\t235,\n\t186,\n\t142,\n\t62,\n\t247,\n\t181,\n\t166,\n\t92,\n\t111,\n\t134,\n\t46,\n\t108,\n\t196,\n\t136,\n\t17,\n\t126,\n\t60,\n\t60,\n\t4,\n\t58,\n\t140,\n\t24,\n\t49,\n\t98,\n\t196,\n\t136,\n\t17,\n\t35,\n\t70,\n\t140,\n\t88,\n\t120,\n\t28,\n\t57,\n\t4,\n\t58,\n\t136,\n\t60,\n\t71,\n\t215,\n\t186,\n\t223,\n\t114,\n\t88,\n\t223,\n\t175,\n\t84,\n\t220,\n\t95,\n\t174,\n\t121,\n\t230,\n\t90,\n\t164,\n\t127,\n\t61,\n\t216,\n\t4,\n\t54,\n\t131,\n\t45,\n\t224,\n\t78,\n\t112,\n\t15,\n\t216,\n\t14,\n\t30,\n\t0,\n\t143,\n\t130,\n\t39,\n\t193,\n\t179,\n\t96,\n\t87,\n\t51,\n\t223,\n\t91,\n\t218,\n\t141,\n\t227,\n\t63,\n\t193,\n\t127,\n\t192,\n\t196,\n\t84,\n\t150,\n\t181,\n\t192,\n\t28,\n\t216,\n\t7,\n\t188,\n\t125,\n\t42,\n\t223,\n\t207,\n\t121,\n\t39,\n\t142,\n\t135,\n\t130,\n\t229,\n\t224,\n\t88,\n\t112,\n\t6,\n\t45,\n\t203,\n\t102,\n\t46,\n\t255,\n\t85,\n\t184,\n\t191,\n\t122,\n\t170,\n\t122,\n\t123,\n\t143,\n\t24,\n\t49,\n\t98,\n\t196,\n\t155,\n\t9,\n\t178,\n\t111,\n\t185,\n\t22,\n\t125,\n\t239,\n\t251,\n\t106,\n\t197,\n\t62,\n\t125,\n\t85,\n\t84,\n\t109,\n\t139,\n\t17,\n\t35,\n\t70,\n\t196,\n\t225,\n\t4,\n\t110,\n\t206,\n\t74,\n\t222,\n\t115,\n\t206,\n\t131,\n\t211,\n\t208,\n\t207,\n\t156,\n\t5,\n\t206,\n\t19,\n\t230,\n\t122,\n\t23,\n\t58,\n\t206,\n\t253,\n\t78,\n\t162,\n\t199,\n\t121,\n\t154,\n\t199,\n\t81,\n\t224,\n\t146,\n\t169,\n\t226,\n\t125,\n\t234,\n\t6,\n\t156,\n\t95,\n\t45,\n\t164,\n\t121,\n\t195,\n\t84,\n\t241,\n\t94,\n\t135,\n\t135,\n\t188,\n\t151,\n\t185,\n\t9,\n\t97,\n\t183,\n\t14,\n\t193,\n\t252,\n\t243,\n\t181,\n\t69,\n\t57,\n\t43,\n\t231,\n\t96,\n\t35,\n\t240,\n\t147,\n\t69,\n\t102,\n\t54,\n\t32,\n\t222,\n\t3,\n\t138,\n\t184,\n\t47,\n\t224,\n\t254,\n\t254,\n\t139,\n\t179,\n\t108,\n\t13,\n\t184,\n\t6,\n\t60,\n\t186,\n\t184,\n\t63,\n\t252,\n\t247,\n\t8,\n\t111,\n\t238,\n\t145,\n\t101,\n\t123,\n\t131,\n\t53,\n\t224,\n\t146,\n\t233,\n\t44,\n\t219,\n\t6,\n\t178,\n\t86,\n\t150,\n\t29,\n\t3,\n\t46,\n\t33,\n\t71,\n\t114,\n\t143,\n\t30,\n\t119,\n\t210,\n\t35,\n\t207,\n\t59,\n\t218,\n\t89,\n\t246,\n\t189,\n\t177,\n\t156,\n\t211,\n\t113,\n\t254,\n\t131,\n\t246,\n\t96,\n\t156,\n\t157,\n\t184,\n\t55,\n\t62,\n\t83,\n\t92,\n\t31,\n\t135,\n\t243,\n\t75,\n\t193,\n\t118,\n\t48,\n\t54,\n\t139,\n\t117,\n\t1,\n\t184,\n\t116,\n\t182,\n\t72,\n\t39,\n\t22,\n\t219,\n\t105,\n\t154,\n\t175,\n\t226,\n\t184,\n\t188,\n\t147,\n\t159,\n\t31,\n\t223,\n\t233,\n\t143,\n\t179,\n\t174,\n\t147,\n\t235,\n\t244,\n\t211,\n\t206,\n\t160,\n\t222,\n\t35,\n\t70,\n\t140,\n\t24,\n\t49,\n\t162,\n\t28,\n\t254,\n\t93,\n\t113,\n\t31,\n\t28,\n\t123,\n\t252,\n\t113,\n\t97,\n\t197,\n\t162,\n\t234,\n\t243,\n\t159,\n\t175,\n\t189,\n\t185,\n\t185,\n\t28,\n\t220,\n\t142,\n\t121,\n\t224,\n\t93,\n\t83,\n\t131,\n\t235,\n\t81,\n\t242,\n\t157,\n\t207,\n\t189,\n\t184,\n\t191,\n\t141,\n\t155,\n\t39,\n\t222,\n\t143,\n\t243,\n\t71,\n\t166,\n\t242,\n\t249,\n\t232,\n\t14,\n\t73,\n\t122,\n\t236,\n\t251,\n\t187,\n\t39,\n\t232,\n\t250,\n\t154,\n\t156,\n\t63,\n\t61,\n\t149,\n\t127,\n\t83,\n\t71,\n\t210,\n\t219,\n\t73,\n\t211,\n\t122,\n\t94,\n\t146,\n\t223,\n\t18,\n\t154,\n\t230,\n\t63,\n\t16,\n\t246,\n\t50,\n\t247,\n\t60,\n\t219,\n\t55,\n\t125,\n\t125,\n\t202,\n\t111,\n\t253,\n\t76,\n\t190,\n\t153,\n\t34,\n\t223,\n\t76,\n\t28,\n\t37,\n\t209,\n\t119,\n\t18,\n\t109,\n\t160,\n\t9,\n\t22,\n\t77,\n\t23,\n\t115,\n\t227,\n\t189,\n\t167,\n\t243,\n\t176,\n\t253,\n\t113,\n\t60,\n\t24,\n\t44,\n\t155,\n\t238,\n\t207,\n\t239,\n\t136,\n\t233,\n\t98,\n\t30,\n\t62,\n\t143,\n\t243,\n\t19,\n\t192,\n\t7,\n\t167,\n\t139,\n\t252,\n\t88,\n\t188,\n\t143,\n\t210,\n\t123,\n\t159,\n\t156,\n\t206,\n\t191,\n\t251,\n\t58,\n\t3,\n\t199,\n\t207,\n\t131,\n\t47,\n\t79,\n\t15,\n\t234,\n\t191,\n\t126,\n\t186,\n\t184,\n\t94,\n\t70,\n\t211,\n\t190,\n\t140,\n\t62,\n\t191,\n\t113,\n\t218,\n\t236,\n\t199,\n\t121,\n\t170,\n\t187,\n\t204,\n\t62,\n\t196,\n\t126,\n\t15,\n\t73,\n\t194,\n\t136,\n\t93,\n\t174,\n\t67,\n\t218,\n\t55,\n\t130,\n\t155,\n\t193,\n\t45,\n\t224,\n\t54,\n\t240,\n\t35,\n\t240,\n\t99,\n\t112,\n\t47,\n\t248,\n\t5,\n\t120,\n\t8,\n\t252,\n\t22,\n\t252,\n\t14,\n\t236,\n\t4,\n\t187,\n\t192,\n\t110,\n\t240,\n\t10,\n\t120,\n\t3,\n\t212,\n\t90,\n\t69,\n\t154,\n\t109,\n\t156,\n\t239,\n\t9,\n\t246,\n\t5,\n\t7,\n\t128,\n\t67,\n\t192,\n\t161,\n\t96,\n\t57,\n\t56,\n\t182,\n\t53,\n\t168,\n\t195,\n\t189,\n\t208,\n\t97,\n\t21,\n\t238,\n\t175,\n\t166,\n\t97,\n\t107,\n\t113,\n\t60,\n\t21,\n\t156,\n\t33,\n\t137,\n\t203,\n\t226,\n\t159,\n\t131,\n\t176,\n\t243,\n\t91,\n\t197,\n\t245,\n\t69,\n\t56,\n\t255,\n\t58,\n\t184,\n\t10,\n\t252,\n\t12,\n\t215,\n\t55,\n\t224,\n\t120,\n\t19,\n\t13,\n\t191,\n\t21,\n\t199,\n\t219,\n\t21,\n\t105,\n\t17,\n\t72,\n\t252,\n\t187,\n\t90,\n\t131,\n\t54,\n\t35,\n\t156,\n\t42,\n\t169,\n\t111,\n\t221,\n\t60,\n\t17,\n\t127,\n\t59,\n\t120,\n\t16,\n\t60,\n\t6,\n\t30,\n\t7,\n\t127,\n\t104,\n\t229,\n\t123,\n\t255,\n\t127,\n\t194,\n\t241,\n\t133,\n\t86,\n\t254,\n\t252,\n\t238,\n\t186,\n\t217,\n\t103,\n\t47,\n\t33,\n\t238,\n\t171,\n\t96,\n\t12,\n\t235,\n\t133,\n\t58,\n\t104,\n\t129,\n\t185,\n\t118,\n\t17,\n\t190,\n\t15,\n\t206,\n\t247,\n\t3,\n\t7,\n\t129,\n\t119,\n\t129,\n\t247,\n\t180,\n\t139,\n\t178,\n\t153,\n\t56,\n\t178,\n\t173,\n\t14,\n\t35,\n\t250,\n\t189,\n\t191,\n\t93,\n\t254,\n\t122,\n\t79,\n\t172,\n\t135,\n\t124,\n\t216,\n\t73,\n\t26,\n\t125,\n\t142,\n\t182,\n\t40,\n\t175,\n\t15,\n\t101,\n\t151,\n\t95,\n\t198,\n\t71,\n\t52,\n\t126,\n\t42,\n\t139,\n\t88,\n\t101,\n\t33,\n\t223,\n\t242,\n\t86,\n\t149,\n\t63,\n\t105,\n\t111,\n\t164,\n\t15,\n\t252,\n\t56,\n\t103,\n\t79,\n\t50,\n\t78,\n\t125,\n\t134,\n\t171,\n\t87,\n\t103,\n\t226,\n\t252,\n\t156,\n\t118,\n\t241,\n\t189,\n\t108,\n\t42,\n\t59,\n\t174,\n\t107,\n\t202,\n\t239,\n\t159,\n\t79,\n\t117,\n\t89,\n\t207,\n\t233,\n\t120,\n\t116,\n\t68,\n\t251,\n\t47,\n\t68,\n\t116,\n\t239,\n\t105,\n\t99,\n\t176,\n\t204,\n\t179,\n\t78,\n\t150,\n\t137,\n\t169,\n\t12,\n\t108,\n\t108,\n\t191,\n\t12,\n\t245,\n\t102,\n\t163,\n\t99,\n\t191,\n\t61,\n\t12,\n\t239,\n\t57,\n\t92,\n\t202,\n\t127,\n\t13,\n\t202,\n\t119,\n\t67,\n\t59,\n\t93,\n\t159,\n\t239,\n\t106,\n\t127,\n\t246,\n\t189,\n\t237,\n\t149,\n\t138,\n\t240,\n\t245,\n\t220,\n\t220,\n\t111,\n\t147,\n\t164,\n\t47,\n\t231,\n\t191,\n\t195,\n\t39,\n\t115,\n\t46,\n\t217,\n\t188,\n\t128,\n\t133,\n\t223,\n\t77,\n\t143,\n\t228,\n\t239,\n\t154,\n\t54,\n\t35,\n\t173,\n\t45,\n\t212,\n\t215,\n\t119,\n\t224,\n\t248,\n\t67,\n\t176,\n\t213,\n\t193,\n\t247,\n\t47,\n\t90,\n\t252,\n\t125,\n\t205,\n\t49,\n\t9,\n\t254,\n\t142,\n\t98,\n\t27,\n\t116,\n\t124,\n\t96,\n\t8,\n\t198,\n\t52,\n\t91,\n\t30,\n\t133,\n\t174,\n\t79,\n\t26,\n\t230,\n\t74,\n\t207,\n\t182,\n\t251,\n\t199,\n\t21,\n\t219,\n\t58,\n\t181,\n\t204,\n\t114,\n\t238,\n\t94,\n\t37,\n\t42,\n\t63,\n\t254,\n\t181,\n\t221,\n\t31,\n\t254,\n\t247,\n\t18,\n\t124,\n\t250,\n\t47,\n\t90,\n\t191,\n\t95,\n\t231,\n\t242,\n\t34,\n\t239,\n\t48,\n\t100,\n\t107,\n\t77,\n\t6,\n\t105,\n\t35,\n\t147,\n\t51,\n\t89,\n\t54,\n\t3,\n\t246,\n\t2,\n\t251,\n\t129,\n\t131,\n\t102,\n\t242,\n\t176,\n\t165,\n\t51,\n\t118,\n\t229,\n\t231,\n\t255,\n\t174,\n\t137,\n\t180,\n\t215,\n\t141,\n\t224,\n\t240,\n\t153,\n\t188,\n\t237,\n\t63,\n\t199,\n\t181,\n\t35,\n\t118,\n\t126,\n\t21,\n\t157,\n\t131,\n\t175,\n\t68,\n\t156,\n\t227,\n\t103,\n\t242,\n\t62,\n\t246,\n\t196,\n\t25,\n\t121,\n\t251,\n\t87,\n\t217,\n\t55,\n\t53,\n\t68,\n\t247,\n\t15,\n\t207,\n\t244,\n\t223,\n\t227,\n\t251,\n\t34,\n\t210,\n\t15,\n\t173,\n\t228,\n\t202,\n\t190,\n\t145,\n\t246,\n\t99,\n\t100,\n\t189,\n\t248,\n\t49,\n\t206,\n\t110,\n\t151,\n\t115,\n\t207,\n\t156,\n\t78,\n\t211,\n\t59,\n\t27,\n\t199,\n\t43,\n\t106,\n\t131,\n\t105,\n\t159,\n\t139,\n\t251,\n\t231,\n\t91,\n\t216,\n\t124,\n\t152,\n\t168,\n\t202,\n\t63,\n\t169,\n\t89,\n\t219,\n\t252,\n\t255,\n\t46,\n\t31,\n\t207,\n\t235,\n\t154,\n\t113,\n\t113,\n\t71,\n\t73,\n\t58,\n\t12,\n\t43,\n\t191,\n\t174,\n\t56,\n\t255,\n\t71,\n\t20,\n\t251,\n\t40,\n\t101,\n\t18,\n\t90,\n\t6,\n\t221,\n\t248,\n\t179,\n\t16,\n\t184,\n\t72,\n\t24,\n\t7,\n\t92,\n\t236,\n\t147,\n\t106,\n\t173,\n\t188,\n\t144,\n\t252,\n\t191,\n\t144,\n\t33,\n\t117,\n\t247,\n\t109,\n\t181,\n\t177,\n\t46,\n\t157,\n\t44,\n\t91,\n\t112,\n\t144,\n\t253,\n\t101,\n\t254,\n\t220,\n\t134,\n\t170,\n\t117,\n\t30,\n\t86,\n\t222,\n\t236,\n\t82,\n\t181,\n\t253,\n\t163,\n\t213,\n\t77,\n\t250,\n\t123,\n\t22,\n\t11,\n\t66,\n\t215,\n\t33,\n\t134,\n\t137,\n\t41,\n\t220,\n\t20,\n\t175,\n\t195,\n\t133,\n\t155,\n\t226,\n\t249,\n\t234,\n\t89,\n\t181,\n\t173,\n\t22,\n\t90,\n\t57,\n\t108,\n\t124,\n\t54,\n\t76,\n\t200,\n\t244,\n\t93,\n\t72,\n\t250,\n\t235,\n\t202,\n\t164,\n\t146,\n\t42,\n\t117,\n\t241,\n\t213,\n\t185,\n\t42,\n\t253,\n\t135,\n\t189,\n\t78,\n\t84,\n\t105,\n\t147,\n\t178,\n\t235,\n\t142,\n\t173,\n\t84,\n\t173,\n\t247,\n\t66,\n\t245,\n\t127,\n\t140,\n\t180,\n\t170,\n\t176,\n\t63,\n\t175,\n\t183,\n\t107,\n\t254,\n\t41,\n\t36,\n\t85,\n\t25,\n\t23,\n\t74,\n\t89,\n\t102,\n\t155,\n\t253,\n\t212,\n\t198,\n\t35,\n\t48,\n\t22,\n\t145,\n\t69,\n\t118,\n\t241,\n\t166,\n\t26,\n\t57,\n\t205,\n\t9,\n\t148,\n\t99,\n\t113,\n\t126,\n\t62,\n\t222,\n\t40,\n\t238,\n\t187,\n\t208,\n\t172,\n\t21,\n\t207,\n\t118,\n\t109,\n\t52,\n\t77,\n\t161,\n\t54,\n\t226,\n\t227,\n\t26,\n\t117,\n\t163,\n\t54,\n\t153,\n\t226,\n\t210,\n\t35,\n\t184,\n\t174,\n\t211,\n\t189,\n\t109,\n\t221,\n\t234,\n\t247,\n\t111,\n\t166,\n\t75,\n\t139,\n\t194,\n\t68,\n\t117,\n\t237,\n\t234,\n\t195,\n\t238,\n\t179,\n\t26,\n\t255,\n\t178,\n\t112,\n\t94,\n\t100,\n\t105,\n\t16,\n\t97,\n\t254,\n\t109,\n\t83,\n\t255,\n\t182,\n\t37,\n\t254,\n\t99,\n\t50,\n\t78,\n\t227,\n\t48,\n\t105,\n\t211,\n\t248,\n\t196,\n\t191,\n\t98,\n\t126,\n\t50,\n\t105,\n\t55,\n\t6,\n\t239,\n\t13,\n\t148,\n\t73,\n\t240,\n\t111,\n\t47,\n\t158,\n\t165,\n\t127,\n\t89,\n\t253,\n\t118,\n\t105,\n\t175,\n\t228,\n\t200,\n\t231,\n\t101,\n\t235,\n\t223,\n\t129,\n\t178,\n\t148,\n\t236,\n\t95,\n\t49,\n\t174,\n\t120,\n\t78,\n\t132,\n\t248,\n\t151,\n\t217,\n\t158,\n\t249,\n\t151,\n\t33,\n\t243,\n\t79,\n\t91,\n\t225,\n\t95,\n\t94,\n\t72,\n\t219,\n\t213,\n\t137,\n\t170,\n\t60,\n\t218,\n\t103,\n\t44,\n\t253,\n\t219,\n\t235,\n\t87,\n\t199,\n\t10,\n\t63,\n\t215,\n\t230,\n\t220,\n\t198,\n\t0,\n\t215,\n\t246,\n\t203,\n\t124,\n\t170,\n\t188,\n\t46,\n\t201,\n\t191,\n\t182,\n\t237,\n\t87,\n\t132,\n\t213,\n\t109,\n\t214,\n\t166,\n\t152,\n\t143,\n\t101,\n\t254,\n\t13,\n\t29,\n\t75,\n\t153,\n\t77,\n\t196,\n\t186,\n\t228,\n\t218,\n\t63,\n\t107,\n\t243,\n\t24,\n\t227,\n\t198,\n\t16,\n\t80,\n\t159,\n\t40,\n\t32,\n\t210,\n\t88,\n\t32,\n\t253,\n\t179,\n\t171,\n\t127,\n\t39,\n\t45,\n\t250,\n\t231,\n\t73,\n\t139,\n\t246,\n\t43,\n\t147,\n\t73,\n\t69,\n\t159,\n\t16,\n\t187,\n\t127,\n\t238,\n\t100,\n\t69,\n\t187,\n\t13,\n\t153,\n\t199,\n\t177,\n\t126,\n\t187,\n\t155,\n\t183,\n\t69,\n\t255,\n\t172,\n\t107,\n\t203,\n\t170,\n\t177,\n\t146,\n\t157,\n\t139,\n\t247,\n\t100,\n\t241,\n\t196,\n\t123,\n\t202,\n\t251,\n\t150,\n\t243,\n\t47,\n\t81,\n\t248,\n\t182,\n\t44,\n\t235,\n\t191,\n\t217,\n\t216,\n\t60,\n\t46,\n\t180,\n\t109,\n\t66,\n\t221,\n\t178,\n\t125,\n\t203,\n\t252,\n\t175,\n\t146,\n\t20,\n\t239,\n\t69,\n\t100,\n\t34,\n\t206,\n\t167,\n\t109,\n\t230,\n\t212,\n\t93,\n\t253,\n\t12,\n\t254,\n\t142,\n\t217,\n\t158,\n\t93,\n\t253,\n\t73,\n\t218,\n\t51,\n\t249,\n\t125,\n\t104,\n\t17,\n\t190,\n\t77,\n\t241,\n\t247,\n\t197,\n\t235,\n\t186,\n\t161,\n\t61,\n\t243,\n\t207,\n\t233,\n\t234,\n\t20,\n\t111,\n\t23,\n\t254,\n\t25,\n\t23,\n\t255,\n\t234,\n\t196,\n\t103,\n\t189,\n\t164,\n\t157,\n\t155,\n\t15,\n\t129,\n\t127,\n\t85,\n\t113,\n\t153,\n\t176,\n\t254,\n\t218,\n\t198,\n\t191,\n\t252,\n\t53,\n\t59,\n\t183,\n\t241,\n\t175,\n\t216,\n\t247,\n\t202,\n\t164,\n\t167,\n\t107,\n\t4,\n\t255,\n\t118,\n\t58,\n\t57,\n\t62,\n\t34,\n\t250,\n\t151,\n\t215,\n\t169,\n\t44,\n\t255,\n\t106,\n\t177,\n\t108,\n\t191,\n\t4,\n\t102,\n\t119,\n\t54,\n\t30,\n\t171,\n\t32,\n\t98,\n\t234,\n\t143,\n\t187,\n\t54,\n\t85,\n\t248,\n\t141,\n\t209,\n\t110,\n\t232,\n\t219,\n\t14,\n\t111,\n\t147,\n\t208,\n\t249,\n\t150,\n\t9,\n\t83,\n\t191,\n\t230,\n\t58,\n\t159,\n\t182,\n\t157,\n\t115,\n\t203,\n\t236,\n\t18,\n\t3,\n\t171,\n\t52,\n\t37,\n\t107,\n\t105,\n\t219,\n\t62,\n\t94,\n\t214,\n\t134,\n\t85,\n\t251,\n\t35,\n\t44,\n\t140,\n\t29,\n\t217,\n\t94,\n\t137,\n\t108,\n\t191,\n\t69,\n\t37,\n\t174,\n\t253,\n\t53,\n\t191,\n\t127,\n\t226,\n\t42,\n\t177,\n\t125,\n\t225,\n\t11,\n\t91,\n\t183,\n\t219,\n\t34,\n\t10,\n\t121,\n\t158,\n\t111,\n\t167,\n\t227,\n\t141,\n\t254,\n\t125,\n\t42,\n\t114,\n\t228,\n\t215,\n\t22,\n\t132,\n\t110,\n\t251,\n\t111,\n\t22,\n\t113,\n\t98,\n\t172,\n\t107,\n\t196,\n\t58,\n\t169,\n\t178,\n\t113,\n\t10,\n\t219,\n\t155,\n\t242,\n\t12,\n\t177,\n\t119,\n\t119,\n\t63,\n\t111,\n\t46,\n\t135,\n\t137,\n\t204,\n\t222,\n\t204,\n\t23,\n\t68,\n\t68,\n\t123,\n\t215,\n\t179,\n\t162,\n\t95,\n\t201,\n\t28,\n\t236,\n\t173,\n\t170,\n\t171,\n\t41,\n\t246,\n\t167,\n\t121,\n\t154,\n\t20,\n\t101,\n\t63,\n\t106,\n\t187,\n\t143,\n\t229,\n\t80,\n\t175,\n\t248,\n\t250,\n\t218,\n\t161,\n\t54,\n\t20,\n\t243,\n\t37,\n\t38,\n\t153,\n\t176,\n\t240,\n\t113,\n\t138,\n\t58,\n\t166,\n\t235,\n\t39,\n\t51,\n\t143,\n\t58,\n\t197,\n\t218,\n\t32,\n\t107,\n\t135,\n\t100,\n\t60,\n\t38,\n\t245,\n\t164,\n\t174,\n\t210,\n\t125,\n\t206,\n\t158,\n\t110,\n\t249,\n\t29,\n\t226,\n\t167,\n\t128,\n\t181,\n\t7,\n\t29,\n\t252,\n\t222,\n\t183,\n\t108,\n\t29,\n\t229,\n\t83,\n\t119,\n\t101,\n\t82,\n\t117,\n\t31,\n\t223,\n\t197,\n\t114,\n\t190,\n\t160,\n\t170,\n\t43,\n\t178,\n\t113,\n\t148,\n\t212,\n\t157,\n\t238,\n\t92,\n\t157,\n\t172,\n\t57,\n\t102,\n\t251,\n\t251,\n\t170,\n\t30,\n\t36,\n\t111,\n\t151,\n\t125,\n\t13,\n\t174,\n\t159,\n\t231,\n\t247,\n\t58,\n\t100,\n\t101,\n\t24,\n\t232,\n\t39,\n\t117,\n\t117,\n\t118,\n\t44,\n\t143,\n\t211,\n\t154,\n\t200,\n\t97,\n\t113,\n\t216,\n\t179,\n\t236,\n\t62,\n\t15,\n\t159,\n\t150,\n\t49,\n\t47,\n\t27,\n\t230,\n\t6,\n\t109,\n\t41,\n\t203,\n\t151,\n\t208,\n\t164,\n\t249,\n\t119,\n\t245,\n\t176,\n\t180,\n\t31,\n\t123,\n\t86,\n\t124,\n\t175,\n\t99,\n\t170,\n\t227,\n\t50,\n\t233,\n\t8,\n\t231,\n\t161,\n\t200,\n\t210,\n\t177,\n\t73,\n\t63,\n\t11,\n\t124,\n\t62,\n\t52,\n\t255,\n\t212,\n\t229,\n\t243,\n\t73,\n\t183,\n\t12,\n\t120,\n\t73,\n\t157,\n\t135,\n\t111,\n\t120,\n\t170,\n\t242,\n\t138,\n\t226,\n\t179,\n\t110,\n\t238,\n\t62,\n\t39,\n\t220,\n\t179,\n\t89,\n\t131,\n\t196,\n\t202,\n\t95,\n\t6,\n\t159,\n\t191,\n\t77,\n\t185,\n\t83,\n\t229,\n\t239,\n\t42,\n\t49,\n\t236,\n\t79,\n\t196,\n\t59,\n\t255,\n\t178,\n\t198,\n\t104,\n\t155,\n\t125,\n\t148,\n\t8,\n\t123,\n\t2,\n\t204,\n\t247,\n\t186,\n\t253,\n\t23,\n\t17,\n\t126,\n\t173,\n\t209,\n\t219,\n\t131,\n\t161,\n\t99,\n\t127,\n\t247,\n\t124,\n\t38,\n\t135,\n\t221,\n\t151,\n\t165,\n\t65,\n\t230,\n\t8,\n\t166,\n\t253,\n\t24,\n\t2,\n\t219,\n\t27,\n\t234,\n\t217,\n\t63,\n\t112,\n\t31,\n\t53,\n\t180,\n\t15,\n\t40,\n\t171,\n\t255,\n\t142,\n\t145,\n\t127,\n\t108,\n\t253,\n\t9,\n\t93,\n\t251,\n\t150,\n\t213,\n\t6,\n\t36,\n\t237,\n\t216,\n\t101,\n\t141,\n\t204,\n\t175,\n\t147,\n\t153,\n\t176,\n\t251,\n\t221,\n\t247,\n\t30,\n\t154,\n\t53,\n\t131,\n\t110,\n\t143,\n\t67,\n\t102,\n\t79,\n\t235,\n\t53,\n\t102,\n\t76,\n\t155,\n\t120,\n\t236,\n\t253,\n\t185,\n\t142,\n\t119,\n\t3,\n\t246,\n\t243,\n\t240,\n\t25,\n\t47,\n\t170,\n\t245,\n\t4,\n\t191,\n\t87,\n\t164,\n\t90,\n\t99,\n\t200,\n\t252,\n\t43,\n\t194,\n\t230,\n\t189,\n\t74,\n\t253,\n\t29,\n\t246,\n\t2,\n\t164,\n\t126,\n\t78,\n\t88,\n\t191,\n\t101,\n\t101,\n\t143,\n\t146,\n\t191,\n\t170,\n\t94,\n\t176,\n\t112,\n\t137,\n\t29,\n\t187,\n\t107,\n\t127,\n\t217,\n\t58,\n\t122,\n\t214,\n\t111,\n\t127,\n\t65,\n\t181,\n\t47,\n\t72,\n\t218,\n\t225,\n\t192,\n\t30,\n\t213,\n\t68,\n\t255,\n\t179,\n\t124,\n\t221,\n\t9,\n\t237,\n\t255,\n\t67,\n\t159,\n\t231,\n\t223,\n\t189,\n\t176,\n\t49,\n\t207,\n\t123,\n\t252,\n\t77,\n\t80,\n\t135,\n\t68,\n\t219,\n\t153,\n\t252,\n\t33,\n\t222,\n\t111,\n\t213,\n\t244,\n\t233,\n\t251,\n\t218,\n\t211,\n\t103,\n\t172,\n\t33,\n\t117,\n\t176,\n\t153,\n\t21,\n\t123,\n\t81,\n\t50,\n\t92,\n\t199,\n\t65,\n\t107,\n\t191,\n\t165,\n\t28,\n\t203,\n\t36,\n\t227,\n\t140,\n\t204,\n\t23,\n\t164,\n\t173,\n\t245,\n\t237,\n\t157,\n\t140,\n\t217,\n\t219,\n\t155,\n\t204,\n\t155,\n\t164,\n\t121,\n\t42,\n\t250,\n\t6,\n\t219,\n\t122,\n\t99,\n\t26,\n\t31,\n\t69,\n\t25,\n\t152,\n\t63,\n\t40,\n\t108,\n\t161,\n\t171,\n\t147,\n\t186,\n\t254,\n\t158,\n\t223,\n\t183,\n\t108,\n\t78,\n\t232,\n\t243,\n\t118,\n\t25,\n\t167,\n\t251,\n\t234,\n\t56,\n\t167,\n\t111,\n\t232,\n\t252,\n\t201,\n\t52,\n\t222,\n\t166,\n\t76,\n\t155,\n\t8,\n\t255,\n\t157,\n\t87,\n\t71,\n\t184,\n\t182,\n\t102,\n\t177,\n\t128,\n\t228,\n\t30,\n\t179,\n\t23,\n\t9,\n\t227,\n\t207,\n\t25,\n\t170,\n\t62,\n\t54,\n\t134,\n\t125,\n\t109,\n\t237,\n\t100,\n\t218,\n\t243,\n\t213,\n\t233,\n\t99,\n\t171,\n\t111,\n\t102,\n\t56,\n\t234,\n\t158,\n\t9,\n\t241,\n\t127,\n\t138,\n\t180,\n\t109,\n\t243,\n\t179,\n\t205,\n\t195,\n\t75,\n\t151,\n\t73,\n\t80,\n\t47,\n\t174,\n\t99,\n\t140,\n\t53,\n\t62,\n\t122,\n\t244,\n\t202,\n\t109,\n\t177,\n\t134,\n\t149,\n\t210,\n\t200,\n\t156,\n\t255,\n\t6,\n\t216,\n\t215,\n\t119,\n\t188,\n\t132,\n\t250,\n\t219,\n\t244,\n\t173,\n\t178,\n\t73,\n\t66,\n\t116,\n\t143,\n\t161,\n\t191,\n\t46,\n\t237,\n\t20,\n\t226,\n\t170,\n\t83,\n\t173,\n\t29,\n\t183,\n\t140,\n\t202,\n\t122,\n\t155,\n\t152,\n\t84,\n\t249,\n\t132,\n\t218,\n\t88,\n\t39,\n\t161,\n\t245,\n\t162,\n\t44,\n\t155,\n\t250,\n\t234,\n\t80,\n\t117,\n\t120,\n\t108,\n\t91,\n\t248,\n\t218,\n\t72,\n\t39,\n\t101,\n\t215,\n\t199,\n\t212,\n\t245,\n\t35,\n\t212,\n\t62,\n\t195,\n\t84,\n\t127,\n\t93,\n\t242,\n\t72,\n\t81,\n\t55,\n\t92,\n\t197,\n\t70,\n\t95,\n\t254,\n\t253,\n\t53,\n\t191,\n\t254,\n\t172,\n\t75,\n\t214,\n\t225,\n\t252,\n\t223,\n\t233,\n\t164,\n\t220,\n\t127,\n\t146,\n\t189,\n\t27,\n\t82,\n\t217,\n\t48,\n\t212,\n\t247,\n\t73,\n\t215,\n\t217,\n\t58,\n\t76,\n\t235,\n\t253,\n\t113,\n\t205,\n\t154,\n\t89,\n\t182,\n\t134,\n\t29,\n\t43,\n\t190,\n\t183,\n\t118,\n\t169,\n\t115,\n\t209,\n\t254,\n\t174,\n\t53,\n\t225,\n\t94,\n\t133,\n\t203,\n\t62,\n\t31,\n\t249,\n\t219,\n\t24,\n\t254,\n\t251,\n\t50,\n\t149,\n\t244,\n\t234,\n\t127,\n\t232,\n\t126,\n\t156,\n\t207,\n\t250,\n\t213,\n\t102,\n\t77,\n\t75,\n\t209,\n\t181,\n\t91,\n\t151,\n\t253,\n\t200,\n\t210,\n\t235,\n\t179,\n\t132,\n\t230,\n\t68,\n\t65,\n\t175,\n\t28,\n\t137,\n\t251,\n\t15,\n\t221,\n\t62,\n\t142,\n\t235,\n\t251,\n\t215,\n\t14,\n\t215,\n\t94,\n\t180,\n\t123,\n\t120,\n\t42,\n\t187,\n\t68,\n\t182,\n\t185,\n\t110,\n\t207,\n\t140,\n\t223,\n\t203,\n\t234,\n\t123,\n\t63,\n\t81,\n\t243,\n\t31,\n\t215,\n\t66,\n\t218,\n\t139,\n\t206,\n\t223,\n\t172,\n\t159,\n\t183,\n\t42,\n\t119,\n\t64,\n\t125,\n\t207,\n\t50,\n\t77,\n\t253,\n\t76,\n\t221,\n\t62,\n\t44,\n\t234,\n\t169,\n\t184,\n\t255,\n\t40,\n\t123,\n\t255,\n\t97,\n\t146,\n\t144,\n\t111,\n\t20,\n\t51,\n\t15,\n\t255,\n\t14,\n\t244,\n\t75,\n\t129,\n\t182,\n\t25,\n\t72,\n\t67,\n\t177,\n\t175,\n\t66,\n\t194,\n\t90,\n\t244,\n\t93,\n\t141,\n\t248,\n\t125,\n\t92,\n\t108,\n\t223,\n\t168,\n\t222,\n\t13,\n\t138,\n\t247,\n\t217,\n\t119,\n\t186,\n\t236,\n\t152,\n\t90,\n\t116,\n\t243,\n\t57,\n\t155,\n\t178,\n\t202,\n\t202,\n\t36,\n\t75,\n\t147,\n\t125,\n\t83,\n\t25,\n\t162,\n\t151,\n\t105,\n\t110,\n\t236,\n\t18,\n\t174,\n\t19,\n\t111,\n\t223,\n\t243,\n\t118,\n\t179,\n\t237,\n\t15,\n\t12,\n\t109,\n\t202,\n\t52,\n\t30,\n\t145,\n\t50,\n\t177,\n\t111,\n\t36,\n\t123,\n\t250,\n\t7,\n\t206,\n\t71,\n\t92,\n\t230,\n\t192,\n\t161,\n\t107,\n\t29,\n\t223,\n\t57,\n\t183,\n\t139,\n\t238,\n\t174,\n\t101,\n\t140,\n\t173,\n\t191,\n\t238,\n\t126,\n\t166,\n\t136,\n\t91,\n\t166,\n\t142,\n\t190,\n\t182,\n\t150,\n\t73,\n\t21,\n\t249,\n\t134,\n\t150,\n\t183,\n\t12,\n\t127,\n\t135,\n\t60,\n\t111,\n\t83,\n\t222,\n\t216,\n\t229,\n\t8,\n\t177,\n\t165,\n\t201,\n\t174,\n\t41,\n\t194,\n\t77,\n\t246,\n\t177,\n\t181,\n\t147,\n\t173,\n\t248,\n\t214,\n\t39,\n\t83,\n\t120,\n\t72,\n\t125,\n\t9,\n\t77,\n\t219,\n\t70,\n\t127,\n\t215,\n\t231,\n\t109,\n\t236,\n\t150,\n\t170,\n\t46,\n\t198,\n\t200,\n\t207,\n\t39,\n\t13,\n\t89,\n\t153,\n\t171,\n\t148,\n\t216,\n\t54,\n\t13,\n\t205,\n\t191,\n\t44,\n\t157,\n\t83,\n\t249,\n\t62,\n\t150,\n\t174,\n\t182,\n\t18,\n\t154,\n\t94,\n\t10,\n\t187,\n\t184,\n\t164,\n\t239,\n\t34,\n\t49,\n\t218,\n\t138,\n\t73,\n\t15,\n\t157,\n\t111,\n\t83,\n\t213,\n\t31,\n\t85,\n\t25,\n\t171,\n\t168,\n\t191,\n\t46,\n\t254,\n\t137,\n\t89,\n\t143,\n\t67,\n\t242,\n\t8,\n\t181,\n\t121,\n\t138,\n\t188,\n\t92,\n\t116,\n\t170,\n\t34,\n\t255,\n\t170,\n\t202,\n\t111,\n\t202,\n\t147,\n\t172,\n\t123,\n\t39,\n\t133,\n\t111,\n\t99,\n\t201,\n\t145,\n\t255,\n\t157,\n\t42,\n\t94,\n\t88,\n\t60,\n\t241,\n\t119,\n\t222,\n\t250,\n\t246,\n\t228,\n\t52,\n\t215,\n\t169,\n\t96,\n\t82,\n\t231,\n\t246,\n\t164,\n\t7,\n\t202,\n\t62,\n\t27,\n\t182,\n\t22,\n\t151,\n\t217,\n\t47,\n\t102,\n\t27,\n\t246,\n\t201,\n\t203,\n\t54,\n\t95,\n\t223,\n\t52,\n\t135,\n\t169,\n\t93,\n\t165,\n\t44,\n\t143,\n\t139,\n\t205,\n\t92,\n\t37,\n\t212,\n\t103,\n\t190,\n\t105,\n\t199,\n\t202,\n\t35,\n\t52,\n\t255,\n\t20,\n\t62,\n\t240,\n\t45,\n\t107,\n\t104,\n\t58,\n\t125,\n\t191,\n\t133,\n\t213,\n\t201,\n\t25,\n\t186,\n\t119,\n\t172,\n\t134,\n\t253,\n\t111,\n\t25,\n\t117,\n\t195,\n\t123,\n\t36,\n\t81,\n\t172,\n\t223,\n\t219,\n\t4,\n\t244,\n\t181,\n\t38,\n\t233,\n\t126,\n\t151,\n\t238,\n\t243,\n\t91,\n\t206,\n\t145,\n\t237,\n\t107,\n\t250,\n\t221,\n\t101,\n\t242,\n\t14,\n\t155,\n\t127,\n\t71,\n\t26,\n\t218,\n\t70,\n\t59,\n\t194,\n\t249,\n\t48,\n\t183,\n\t59,\n\t173,\n\t127,\n\t74,\n\t168,\n\t255,\n\t166,\n\t182,\n\t160,\n\t243,\n\t29,\n\t251,\n\t219,\n\t36,\n\t34,\n\t190,\n\t127,\n\t151,\n\t194,\n\t231,\n\t107,\n\t35,\n\t101,\n\t246,\n\t19,\n\t98,\n\t157,\n\t180,\n\t145,\n\t40,\n\t191,\n\t157,\n\t158,\n\t208,\n\t191,\n\t174,\n\t191,\n\t129,\n\t78,\n\t222,\n\t159,\n\t235,\n\t190,\n\t203,\n\t32,\n\t176,\n\t191,\n\t5,\n\t225,\n\t223,\n\t243,\n\t244,\n\t252,\n\t229,\n\t89,\n\t47,\n\t120,\n\t155,\n\t199,\n\t234,\n\t75,\n\t125,\n\t250,\n\t212,\n\t88,\n\t190,\n\t234,\n\t166,\n\t149,\n\t96,\n\t124,\n\t34,\n\t245,\n\t140,\n\t248,\n\t136,\n\t125,\n\t159,\n\t161,\n\t178,\n\t35,\n\t251,\n\t142,\n\t92,\n\t167,\n\t63,\n\t211,\n\t81,\n\t166,\n\t171,\n\t175,\n\t254,\n\t62,\n\t207,\n\t235,\n\t218,\n\t90,\n\t213,\n\t109,\n\t200,\n\t5,\n\t246,\n\t119,\n\t82,\n\t198,\n\t241,\n\t111,\n\t66,\n\t221,\n\t255,\n\t133,\n\t214,\n\t105,\n\t223,\n\t223,\n\t175,\n\t228,\n\t227,\n\t13,\n\t216,\n\t62,\n\t178,\n\t239,\n\t249,\n\t112,\n\t85,\n\t92,\n\t34,\n\t108,\n\t221,\n\t202,\n\t254,\n\t159,\n\t131,\n\t10,\n\t38,\n\t226,\n\t239,\n\t253,\n\t243,\n\t125,\n\t26,\n\t19,\n\t93,\n\t93,\n\t83,\n\t249,\n\t164,\n\t147,\n\t13,\n\t246,\n\t241,\n\t98,\n\t222,\n\t186,\n\t111,\n\t223,\n\t250,\n\t252,\n\t99,\n\t8,\n\t55,\n\t73,\n\t138,\n\t122,\n\t235,\n\t51,\n\t78,\n\t176,\n\t239,\n\t16,\n\t25,\n\t204,\n\t79,\n\t166,\n\t121,\n\t145,\n\t75,\n\t253,\n\t102,\n\t190,\n\t98,\n\t99,\n\t142,\n\t237,\n\t239,\n\t237,\n\t166,\n\t236,\n\t35,\n\t108,\n\t108,\n\t165,\n\t10,\n\t239,\n\t179,\n\t87,\n\t77,\n\t110,\n\t51,\n\t163,\n\t255,\n\t3,\n\t251,\n\t135,\n\t84,\n\t101,\n\t103,\n\t34,\n\t134,\n\t203,\n\t202,\n\t28,\n\t115,\n\t141,\n\t60,\n\t80,\n\t191,\n\t4,\n\t159,\n\t139,\n\t250,\n\t197,\n\t240,\n\t191,\n\t43,\n\t124,\n\t249,\n\t217,\n\t124,\n\t201,\n\t119,\n\t173,\n\t147,\n\t242,\n\t251,\n\t153,\n\t24,\n\t107,\n\t49,\n\t163,\n\t254,\n\t142,\n\t227,\n\t169,\n\t237,\n\t152,\n\t218,\n\t170,\n\t21,\n\t191,\n\t227,\n\t166,\n\t205,\n\t191,\n\t132,\n\t117,\n\t120,\n\t172,\n\t242,\n\t135,\n\t210,\n\t203,\n\t211,\n\t226,\n\t155,\n\t45,\n\t83,\n\t187,\n\t118,\n\t181,\n\t159,\n\t110,\n\t253,\n\t151,\n\t106,\n\t108,\n\t146,\n\t245,\n\t51,\n\t3,\n\t250,\n\t59,\n\t206,\n\t133,\n\t202,\n\t222,\n\t35,\n\t97,\n\t162,\n\t43,\n\t27,\n\t63,\n\t102,\n\t140,\n\t75,\n\t124,\n\t148,\n\t82,\n\t248,\n\t62,\n\t213,\n\t68,\n\t234,\n\t250,\n\t45,\n\t27,\n\t99,\n\t250,\n\t126,\n\t151,\n\t95,\n\t252,\n\t102,\n\t81,\n\t177,\n\t238,\n\t236,\n\t221,\n\t183,\n\t248,\n\t6,\n\t212,\n\t165,\n\t252,\n\t50,\n\t27,\n\t40,\n\t199,\n\t45,\n\t199,\n\t239,\n\t153,\n\t251,\n\t202,\n\t58,\n\t43,\n\t172,\n\t253,\n\t20,\n\t243,\n\t176,\n\t42,\n\t196,\n\t102,\n\t94,\n\t38,\n\t141,\n\t151,\n\t176,\n\t190,\n\t232,\n\t214,\n\t17,\n\t166,\n\t57,\n\t91,\n\t168,\n\t109,\n\t99,\n\t239,\n\t103,\n\t248,\n\t246,\n\t171,\n\t46,\n\t99,\n\t134,\n\t235,\n\t119,\n\t246,\n\t166,\n\t111,\n\t134,\n\t85,\n\t115,\n\t196,\n\t208,\n\t250,\n\t196,\n\t135,\n\t247,\n\t206,\n\t75,\n\t172,\n\t71,\n\t188,\n\t136,\n\t245,\n\t137,\n\t157,\n\t243,\n\t235,\n\t37,\n\t22,\n\t214,\n\t109,\n\t191,\n\t157,\n\t194,\n\t126,\n\t49,\n\t234,\n\t143,\n\t171,\n\t253,\n\t164,\n\t182,\n\t75,\n\t188,\n\t55,\n\t169,\n\t107,\n\t127,\n\t252,\n\t185,\n\t216,\n\t207,\n\t105,\n\t237,\n\t19,\n\t75,\n\t199,\n\t214,\n\t224,\n\t220,\n\t200,\n\t166,\n\t173,\n\t199,\n\t90,\n\t199,\n\t248,\n\t72,\n\t140,\n\t60,\n\t67,\n\t117,\n\t73,\n\t145,\n\t191,\n\t139,\n\t62,\n\t190,\n\t246,\n\t141,\n\t53,\n\t70,\n\t134,\n\t250,\n\t59,\n\t180,\n\t62,\n\t196,\n\t182,\n\t117,\n\t140,\n\t122,\n\t27,\n\t43,\n\t173,\n\t84,\n\t250,\n\t149,\n\t149,\n\t190,\n\t141,\n\t132,\n\t166,\n\t229,\n\t170,\n\t207,\n\t48,\n\t250,\n\t62,\n\t134,\n\t190,\n\t166,\n\t248,\n\t101,\n\t139,\n\t76,\n\t39,\n\t241,\n\t154,\n\t191,\n\t239,\n\t99,\n\t51,\n\t155,\n\t103,\n\t125,\n\t210,\n\t142,\n\t85,\n\t55,\n\t92,\n\t125,\n\t100,\n\t171,\n\t179,\n\t109,\n\t56,\n\t47,\n\t169,\n\t108,\n\t20,\n\t34,\n\t41,\n\t252,\n\t21,\n\t42,\n\t101,\n\t212,\n\t37,\n\t215,\n\t188,\n\t84,\n\t113,\n\t83,\n\t72,\n\t168,\n\t205,\n\t83,\n\t216,\n\t36,\n\t52,\n\t109,\n\t23,\n\t123,\n\t133,\n\t166,\n\t25,\n\t250,\n\t92,\n\t12,\n\t137,\n\t81,\n\t71,\n\t67,\n\t237,\n\t40,\n\t211,\n\t39,\n\t203,\n\t250,\n\t159,\n\t215,\n\t213,\n\t109,\n\t83,\n\t155,\n\t144,\n\t165,\n\t169,\n\t211,\n\t77,\n\t101,\n\t115,\n\t213,\n\t81,\n\t150,\n\t167,\n\t78,\n\t127,\n\t155,\n\t244,\n\t100,\n\t207,\n\t155,\n\t202,\n\t103,\n\t91,\n\t126,\n\t157,\n\t77,\n\t124,\n\t109,\n\t27,\n\t171,\n\t110,\n\t216,\n\t228,\n\t147,\n\t50,\n\t127,\n\t23,\n\t137,\n\t145,\n\t78,\n\t168,\n\t254,\n\t41,\n\t202,\n\t31,\n\t195,\n\t182,\n\t101,\n\t248,\n\t34,\n\t117,\n\t190,\n\t161,\n\t254,\n\t13,\n\t213,\n\t39,\n\t180,\n\t28,\n\t85,\n\t181,\n\t139,\n\t208,\n\t252,\n\t109,\n\t234,\n\t185,\n\t107,\n\t62,\n\t166,\n\t184,\n\t41,\n\t244,\n\t54,\n\t229,\n\t173,\n\t179,\n\t151,\n\t143,\n\t196,\n\t240,\n\t103,\n\t76,\n\t255,\n\t135,\n\t202,\n\t255,\n\t0\n];\nvar trieData$1 = {\n\ttype: type$1,\n\tdata: data$1\n};\n\nfunction _createForOfIteratorHelperLoose$e(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$e(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$e(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$e(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$e(o, minLen); }\n\nfunction _arrayLikeToArray$e(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar decompositions$1 = useData.decompositions;\nvar trie$1 = new UnicodeTrie(new Uint8Array(trieData$1.data));\nvar stateMachine$1 = new StateMachine(indicMachine);\n/**\n * The IndicShaper supports indic scripts e.g. Devanagari, Kannada, etc.\n * Based on code from Harfbuzz: https://github.com/behdad/harfbuzz/blob/master/src/hb-ot-shape-complex-indic.cc\n */\n\nvar IndicShaper = /*#__PURE__*/function (_DefaultShaper) {\n _inheritsLoose(IndicShaper, _DefaultShaper);\n\n function IndicShaper() {\n return _DefaultShaper.apply(this, arguments) || this;\n }\n\n IndicShaper.planFeatures = function planFeatures(plan) {\n plan.addStage(setupSyllables$1);\n plan.addStage(['locl', 'ccmp']);\n plan.addStage(initialReordering);\n plan.addStage('nukt');\n plan.addStage('akhn');\n plan.addStage('rphf', false);\n plan.addStage('rkrf');\n plan.addStage('pref', false);\n plan.addStage('blwf', false);\n plan.addStage('abvf', false);\n plan.addStage('half', false);\n plan.addStage('pstf', false);\n plan.addStage('vatu');\n plan.addStage('cjct');\n plan.addStage('cfar', false);\n plan.addStage(finalReordering);\n plan.addStage({\n local: ['init'],\n global: ['pres', 'abvs', 'blws', 'psts', 'haln', 'dist', 'abvm', 'blwm', 'calt', 'clig']\n }); // Setup the indic config for the selected script\n\n plan.unicodeScript = fromOpenType(plan.script);\n plan.indicConfig = INDIC_CONFIGS[plan.unicodeScript] || INDIC_CONFIGS.Default;\n plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== '2'; // TODO: turn off kern (Khmer) and liga features.\n };\n\n IndicShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n var _loop = function _loop(i) {\n var codepoint = glyphs[i].codePoints[0];\n var d = INDIC_DECOMPOSITIONS[codepoint] || decompositions$1[codepoint];\n\n if (d) {\n var decomposed = d.map(function (c) {\n var g = plan.font.glyphForCodePoint(c);\n return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);\n });\n glyphs.splice.apply(glyphs, [i, 1].concat(decomposed));\n }\n };\n\n // Decompose split matras\n // TODO: do this in a more general unicode normalizer\n for (var i = glyphs.length - 1; i >= 0; i--) {\n _loop(i);\n }\n };\n\n return IndicShaper;\n}(DefaultShaper);\n\n_defineProperty(IndicShaper, \"zeroMarkWidths\", 'NONE');\n\nfunction indicCategory(glyph) {\n return trie$1.get(glyph.codePoints[0]) >> 8;\n}\n\nfunction indicPosition(glyph) {\n return 1 << (trie$1.get(glyph.codePoints[0]) & 0xff);\n}\n\nvar IndicInfo = function IndicInfo(category, position, syllableType, syllable) {\n this.category = category;\n this.position = position;\n this.syllableType = syllableType;\n this.syllable = syllable;\n};\n\nfunction setupSyllables$1(font, glyphs) {\n var syllable = 0;\n var last = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose$e(stateMachine$1.match(glyphs.map(indicCategory))), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n start = _step$value[0],\n end = _step$value[1],\n tags = _step$value[2];\n\n if (start > last) {\n ++syllable;\n\n for (var _i = last; _i < start; _i++) {\n glyphs[_i].shaperInfo = new IndicInfo(CATEGORIES.X, POSITIONS.End, 'non_indic_cluster', syllable);\n }\n }\n\n ++syllable; // Create shaper info\n\n for (var _i2 = start; _i2 <= end; _i2++) {\n glyphs[_i2].shaperInfo = new IndicInfo(1 << indicCategory(glyphs[_i2]), indicPosition(glyphs[_i2]), tags[0], syllable);\n }\n\n last = end + 1;\n }\n\n if (last < glyphs.length) {\n ++syllable;\n\n for (var i = last; i < glyphs.length; i++) {\n glyphs[i].shaperInfo = new IndicInfo(CATEGORIES.X, POSITIONS.End, 'non_indic_cluster', syllable);\n }\n }\n}\n\nfunction isConsonant(glyph) {\n return glyph.shaperInfo.category & CONSONANT_FLAGS;\n}\n\nfunction isJoiner(glyph) {\n return glyph.shaperInfo.category & JOINER_FLAGS;\n}\n\nfunction isHalantOrCoeng(glyph) {\n return glyph.shaperInfo.category & HALANT_OR_COENG_FLAGS;\n}\n\nfunction wouldSubstitute(glyphs, feature) {\n for (var _iterator2 = _createForOfIteratorHelperLoose$e(glyphs), _step2; !(_step2 = _iterator2()).done;) {\n var _glyph$features;\n\n var glyph = _step2.value;\n glyph.features = (_glyph$features = {}, _glyph$features[feature] = true, _glyph$features);\n }\n\n var GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;\n GSUB.applyFeatures([feature], glyphs);\n return glyphs.length === 1;\n}\n\nfunction consonantPosition(font, consonant, virama) {\n var glyphs = [virama, consonant, virama];\n\n if (wouldSubstitute(glyphs.slice(0, 2), 'blwf') || wouldSubstitute(glyphs.slice(1, 3), 'blwf')) {\n return POSITIONS.Below_C;\n } else if (wouldSubstitute(glyphs.slice(0, 2), 'pstf') || wouldSubstitute(glyphs.slice(1, 3), 'pstf')) {\n return POSITIONS.Post_C;\n } else if (wouldSubstitute(glyphs.slice(0, 2), 'pref') || wouldSubstitute(glyphs.slice(1, 3), 'pref')) {\n return POSITIONS.Post_C;\n }\n\n return POSITIONS.Base_C;\n}\n\nfunction initialReordering(font, glyphs, plan) {\n var indicConfig = plan.indicConfig;\n var features = font._layoutEngine.engine.GSUBProcessor.features;\n var dottedCircle = font.glyphForCodePoint(0x25cc).id;\n var virama = font.glyphForCodePoint(indicConfig.virama).id;\n\n if (virama) {\n var info = new GlyphInfo(font, virama, [indicConfig.virama]);\n\n for (var i = 0; i < glyphs.length; i++) {\n if (glyphs[i].shaperInfo.position === POSITIONS.Base_C) {\n glyphs[i].shaperInfo.position = consonantPosition(font, glyphs[i].copy(), info);\n }\n }\n }\n\n for (var start = 0, end = nextSyllable$1(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable$1(glyphs, start)) {\n var _glyphs$start$shaperI = glyphs[start].shaperInfo;\n _glyphs$start$shaperI.category;\n var syllableType = _glyphs$start$shaperI.syllableType;\n\n if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') {\n continue;\n }\n\n if (syllableType === 'broken_cluster' && dottedCircle) {\n var g = new GlyphInfo(font, dottedCircle, [0x25cc]);\n g.shaperInfo = new IndicInfo(1 << indicCategory(g), indicPosition(g), glyphs[start].shaperInfo.syllableType, glyphs[start].shaperInfo.syllable); // Insert after possible Repha.\n\n var _i3 = start;\n\n while (_i3 < end && glyphs[_i3].shaperInfo.category === CATEGORIES.Repha) {\n _i3++;\n }\n\n glyphs.splice(_i3++, 0, g);\n end++;\n } // 1. Find base consonant:\n //\n // The shaping engine finds the base consonant of the syllable, using the\n // following algorithm: starting from the end of the syllable, move backwards\n // until a consonant is found that does not have a below-base or post-base\n // form (post-base forms have to follow below-base forms), or that is not a\n // pre-base reordering Ra, or arrive at the first consonant. The consonant\n // stopped at will be the base.\n\n\n var base = end;\n var limit = start;\n var hasReph = false; // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n\n if (indicConfig.rephPos !== POSITIONS.Ra_To_Become_Reph && features.rphf && start + 3 <= end && (indicConfig.rephMode === 'Implicit' && !isJoiner(glyphs[start + 2]) || indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === CATEGORIES.ZWJ)) {\n // See if it matches the 'rphf' feature.\n var _g = [glyphs[start].copy(), glyphs[start + 1].copy(), glyphs[start + 2].copy()];\n\n if (wouldSubstitute(_g.slice(0, 2), 'rphf') || indicConfig.rephMode === 'Explicit' && wouldSubstitute(_g, 'rphf')) {\n limit += 2;\n\n while (limit < end && isJoiner(glyphs[limit])) {\n limit++;\n }\n\n base = start;\n hasReph = true;\n }\n } else if (indicConfig.rephMode === 'Log_Repha' && glyphs[start].shaperInfo.category === CATEGORIES.Repha) {\n limit++;\n\n while (limit < end && isJoiner(glyphs[limit])) {\n limit++;\n }\n\n base = start;\n hasReph = true;\n }\n\n switch (indicConfig.basePos) {\n case 'Last':\n {\n // starting from the end of the syllable, move backwards\n var _i4 = end;\n var seenBelow = false;\n\n do {\n var _info = glyphs[--_i4].shaperInfo; // until a consonant is found\n\n if (isConsonant(glyphs[_i4])) {\n // that does not have a below-base or post-base form\n // (post-base forms have to follow below-base forms),\n if (_info.position !== POSITIONS.Below_C && (_info.position !== POSITIONS.Post_C || seenBelow)) {\n base = _i4;\n break;\n } // or that is not a pre-base reordering Ra,\n //\n // IMPLEMENTATION NOTES:\n //\n // Our pre-base reordering Ra's are marked POS_POST_C, so will be skipped\n // by the logic above already.\n //\n // or arrive at the first consonant. The consonant stopped at will\n // be the base.\n\n\n if (_info.position === POSITIONS.Below_C) {\n seenBelow = true;\n }\n\n base = _i4;\n } else if (start < _i4 && _info.category === CATEGORIES.ZWJ && glyphs[_i4 - 1].shaperInfo.category === CATEGORIES.H) {\n // A ZWJ after a Halant stops the base search, and requests an explicit\n // half form.\n // A ZWJ before a Halant, requests a subjoined form instead, and hence\n // search continues. This is particularly important for Bengali\n // sequence Ra,H,Ya that should form Ya-Phalaa by subjoining Ya.\n break;\n }\n } while (_i4 > limit);\n\n break;\n }\n\n case 'First':\n {\n // The first consonant is always the base.\n base = start; // Mark all subsequent consonants as below.\n\n for (var _i5 = base + 1; _i5 < end; _i5++) {\n if (isConsonant(glyphs[_i5])) {\n glyphs[_i5].shaperInfo.position = POSITIONS.Below_C;\n }\n }\n }\n } // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n //\n // Only do this for unforced Reph. (ie. not for Ra,H,ZWJ)\n\n\n if (hasReph && base === start && limit - base <= 2) {\n hasReph = false;\n } // 2. Decompose and reorder Matras:\n //\n // Each matra and any syllable modifier sign in the cluster are moved to the\n // appropriate position relative to the consonant(s) in the cluster. The\n // shaping engine decomposes two- or three-part matras into their constituent\n // parts before any repositioning. Matra characters are classified by which\n // consonant in a conjunct they have affinity for and are reordered to the\n // following positions:\n //\n // o Before first half form in the syllable\n // o After subjoined consonants\n // o After post-form consonant\n // o After main consonant (for above marks)\n //\n // IMPLEMENTATION NOTES:\n //\n // The normalize() routine has already decomposed matras for us, so we don't\n // need to worry about that.\n // 3. Reorder marks to canonical order:\n //\n // Adjacent nukta and halant or nukta and vedic sign are always repositioned\n // if necessary, so that the nukta is first.\n //\n // IMPLEMENTATION NOTES:\n //\n // We don't need to do this: the normalize() routine already did this for us.\n // Reorder characters\n\n\n for (var _i6 = start; _i6 < base; _i6++) {\n var _info2 = glyphs[_i6].shaperInfo;\n _info2.position = Math.min(POSITIONS.Pre_C, _info2.position);\n }\n\n if (base < end) {\n glyphs[base].shaperInfo.position = POSITIONS.Base_C;\n } // Mark final consonants. A final consonant is one appearing after a matra,\n // like in Khmer.\n\n\n for (var _i7 = base + 1; _i7 < end; _i7++) {\n if (glyphs[_i7].shaperInfo.category === CATEGORIES.M) {\n for (var j = _i7 + 1; j < end; j++) {\n if (isConsonant(glyphs[j])) {\n glyphs[j].shaperInfo.position = POSITIONS.Final_C;\n break;\n }\n }\n\n break;\n }\n } // Handle beginning Ra\n\n\n if (hasReph) {\n glyphs[start].shaperInfo.position = POSITIONS.Ra_To_Become_Reph;\n } // For old-style Indic script tags, move the first post-base Halant after\n // last consonant.\n //\n // Reports suggest that in some scripts Uniscribe does this only if there\n // is *not* a Halant after last consonant already (eg. Kannada), while it\n // does it unconditionally in other scripts (eg. Malayalam). We don't\n // currently know about other scripts, so we single out Malayalam for now.\n //\n // Kannada test case:\n // U+0C9A,U+0CCD,U+0C9A,U+0CCD\n // With some versions of Lohit Kannada.\n // https://bugs.freedesktop.org/show_bug.cgi?id=59118\n //\n // Malayalam test case:\n // U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D\n // With lohit-ttf-20121122/Lohit-Malayalam.ttf\n\n\n if (plan.isOldSpec) {\n var disallowDoubleHalants = plan.unicodeScript !== 'Malayalam';\n\n for (var _i8 = base + 1; _i8 < end; _i8++) {\n if (glyphs[_i8].shaperInfo.category === CATEGORIES.H) {\n var _j = void 0;\n\n for (_j = end - 1; _j > _i8; _j--) {\n if (isConsonant(glyphs[_j]) || disallowDoubleHalants && glyphs[_j].shaperInfo.category === CATEGORIES.H) {\n break;\n }\n }\n\n if (glyphs[_j].shaperInfo.category !== CATEGORIES.H && _j > _i8) {\n // Move Halant to after last consonant.\n var t = glyphs[_i8];\n glyphs.splice.apply(glyphs, [_i8, 0].concat(glyphs.splice(_i8 + 1, _j - _i8)));\n glyphs[_j] = t;\n }\n\n break;\n }\n }\n } // Attach misc marks to previous char to move with them.\n\n\n var lastPos = POSITIONS.Start;\n\n for (var _i9 = start; _i9 < end; _i9++) {\n var _info3 = glyphs[_i9].shaperInfo;\n\n if (_info3.category & (JOINER_FLAGS | CATEGORIES.N | CATEGORIES.RS | CATEGORIES.CM | HALANT_OR_COENG_FLAGS & _info3.category)) {\n _info3.position = lastPos;\n\n if (_info3.category === CATEGORIES.H && _info3.position === POSITIONS.Pre_M) {\n // Uniscribe doesn't move the Halant with Left Matra.\n // TEST: U+092B,U+093F,U+094DE\n // We follow. This is important for the Sinhala\n // U+0DDA split matra since it decomposes to U+0DD9,U+0DCA\n // where U+0DD9 is a left matra and U+0DCA is the virama.\n // We don't want to move the virama with the left matra.\n // TEST: U+0D9A,U+0DDA\n for (var _j2 = _i9; _j2 > start; _j2--) {\n if (glyphs[_j2 - 1].shaperInfo.position !== POSITIONS.Pre_M) {\n _info3.position = glyphs[_j2 - 1].shaperInfo.position;\n break;\n }\n }\n }\n } else if (_info3.position !== POSITIONS.SMVD) {\n lastPos = _info3.position;\n }\n } // For post-base consonants let them own anything before them\n // since the last consonant or matra.\n\n\n var last = base;\n\n for (var _i10 = base + 1; _i10 < end; _i10++) {\n if (isConsonant(glyphs[_i10])) {\n for (var _j3 = last + 1; _j3 < _i10; _j3++) {\n if (glyphs[_j3].shaperInfo.position < POSITIONS.SMVD) {\n glyphs[_j3].shaperInfo.position = glyphs[_i10].shaperInfo.position;\n }\n }\n\n last = _i10;\n } else if (glyphs[_i10].shaperInfo.category === CATEGORIES.M) {\n last = _i10;\n }\n }\n\n var arr = glyphs.slice(start, end);\n arr.sort(function (a, b) {\n return a.shaperInfo.position - b.shaperInfo.position;\n });\n glyphs.splice.apply(glyphs, [start, arr.length].concat(arr)); // Find base again\n\n for (var _i11 = start; _i11 < end; _i11++) {\n if (glyphs[_i11].shaperInfo.position === POSITIONS.Base_C) {\n base = _i11;\n break;\n }\n } // Setup features now\n // Reph\n\n\n for (var _i12 = start; _i12 < end && glyphs[_i12].shaperInfo.position === POSITIONS.Ra_To_Become_Reph; _i12++) {\n glyphs[_i12].features.rphf = true;\n } // Pre-base\n\n\n var blwf = !plan.isOldSpec && indicConfig.blwfMode === 'Pre_And_Post';\n\n for (var _i13 = start; _i13 < base; _i13++) {\n glyphs[_i13].features.half = true;\n\n if (blwf) {\n glyphs[_i13].features.blwf = true;\n }\n } // Post-base\n\n\n for (var _i14 = base + 1; _i14 < end; _i14++) {\n glyphs[_i14].features.abvf = true;\n glyphs[_i14].features.pstf = true;\n glyphs[_i14].features.blwf = true;\n }\n\n if (plan.isOldSpec && plan.unicodeScript === 'Devanagari') {\n // Old-spec eye-lash Ra needs special handling. From the\n // spec:\n //\n // \"The feature 'below-base form' is applied to consonants\n // having below-base forms and following the base consonant.\n // The exception is vattu, which may appear below half forms\n // as well as below the base glyph. The feature 'below-base\n // form' will be applied to all such occurrences of Ra as well.\"\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+0915\n // with Sanskrit 2003 font.\n //\n // However, note that Ra,Halant,ZWJ is the correct way to\n // request eyelash form of Ra, so we wouldbn't inhibit it\n // in that sequence.\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915\n for (var _i15 = start; _i15 + 1 < base; _i15++) {\n if (glyphs[_i15].shaperInfo.category === CATEGORIES.Ra && glyphs[_i15 + 1].shaperInfo.category === CATEGORIES.H && (_i15 + 1 === base || glyphs[_i15 + 2].shaperInfo.category === CATEGORIES.ZWJ)) {\n glyphs[_i15].features.blwf = true;\n glyphs[_i15 + 1].features.blwf = true;\n }\n }\n }\n\n var prefLen = 2;\n\n if (features.pref && base + prefLen < end) {\n // Find a Halant,Ra sequence and mark it for pre-base reordering processing.\n for (var _i16 = base + 1; _i16 + prefLen - 1 < end; _i16++) {\n var _g2 = [glyphs[_i16].copy(), glyphs[_i16 + 1].copy()];\n\n if (wouldSubstitute(_g2, 'pref')) {\n for (var _j4 = 0; _j4 < prefLen; _j4++) {\n glyphs[_i16++].features.pref = true;\n } // Mark the subsequent stuff with 'cfar'. Used in Khmer.\n // Read the feature spec.\n // This allows distinguishing the following cases with MS Khmer fonts:\n // U+1784,U+17D2,U+179A,U+17D2,U+1782\n // U+1784,U+17D2,U+1782,U+17D2,U+179A\n\n\n if (features.cfar) {\n for (; _i16 < end; _i16++) {\n glyphs[_i16].features.cfar = true;\n }\n }\n\n break;\n }\n }\n } // Apply ZWJ/ZWNJ effects\n\n\n for (var _i17 = start + 1; _i17 < end; _i17++) {\n if (isJoiner(glyphs[_i17])) {\n var nonJoiner = glyphs[_i17].shaperInfo.category === CATEGORIES.ZWNJ;\n var _j5 = _i17;\n\n do {\n _j5--; // ZWJ/ZWNJ should disable CJCT. They do that by simply\n // being there, since we don't skip them for the CJCT\n // feature (ie. F_MANUAL_ZWJ)\n // A ZWNJ disables HALF.\n\n if (nonJoiner) {\n delete glyphs[_j5].features.half;\n }\n } while (_j5 > start && !isConsonant(glyphs[_j5]));\n }\n }\n }\n}\n\nfunction finalReordering(font, glyphs, plan) {\n var indicConfig = plan.indicConfig;\n var features = font._layoutEngine.engine.GSUBProcessor.features;\n\n for (var start = 0, end = nextSyllable$1(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable$1(glyphs, start)) {\n // 4. Final reordering:\n //\n // After the localized forms and basic shaping forms GSUB features have been\n // applied (see below), the shaping engine performs some final glyph\n // reordering before applying all the remaining font features to the entire\n // cluster.\n var tryPref = !!features.pref; // Find base again\n\n var base = start;\n\n for (; base < end; base++) {\n if (glyphs[base].shaperInfo.position >= POSITIONS.Base_C) {\n if (tryPref && base + 1 < end) {\n for (var i = base + 1; i < end; i++) {\n if (glyphs[i].features.pref) {\n if (!(glyphs[i].substituted && glyphs[i].isLigated && !glyphs[i].isMultiplied)) {\n // Ok, this was a 'pref' candidate but didn't form any.\n // Base is around here...\n base = i;\n\n while (base < end && isHalantOrCoeng(glyphs[base])) {\n base++;\n }\n\n glyphs[base].shaperInfo.position = POSITIONS.BASE_C;\n tryPref = false;\n }\n\n break;\n }\n }\n } // For Malayalam, skip over unformed below- (but NOT post-) forms.\n\n\n if (plan.unicodeScript === 'Malayalam') {\n for (var _i18 = base + 1; _i18 < end; _i18++) {\n while (_i18 < end && isJoiner(glyphs[_i18])) {\n _i18++;\n }\n\n if (_i18 === end || !isHalantOrCoeng(glyphs[_i18])) {\n break;\n }\n\n _i18++; // Skip halant.\n\n while (_i18 < end && isJoiner(glyphs[_i18])) {\n _i18++;\n }\n\n if (_i18 < end && isConsonant(glyphs[_i18]) && glyphs[_i18].shaperInfo.position === POSITIONS.Below_C) {\n base = _i18;\n glyphs[base].shaperInfo.position = POSITIONS.Base_C;\n }\n }\n }\n\n if (start < base && glyphs[base].shaperInfo.position > POSITIONS.Base_C) {\n base--;\n }\n\n break;\n }\n }\n\n if (base === end && start < base && glyphs[base - 1].shaperInfo.category === CATEGORIES.ZWJ) {\n base--;\n }\n\n if (base < end) {\n while (start < base && glyphs[base].shaperInfo.category & (CATEGORIES.N | HALANT_OR_COENG_FLAGS)) {\n base--;\n }\n } // o Reorder matras:\n //\n // If a pre-base matra character had been reordered before applying basic\n // features, the glyph can be moved closer to the main consonant based on\n // whether half-forms had been formed. Actual position for the matra is\n // defined as “after last standalone halant glyph, after initial matra\n // position and before the main consonant”. If ZWJ or ZWNJ follow this\n // halant, position is moved after it.\n //\n\n\n if (start + 1 < end && start < base) {\n // Otherwise there can't be any pre-base matra characters.\n // If we lost track of base, alas, position before last thingy.\n var newPos = base === end ? base - 2 : base - 1; // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while (newPos > start && !(glyphs[newPos].shaperInfo.category & (CATEGORIES.M | HALANT_OR_COENG_FLAGS))) {\n newPos--;\n } // If we found no Halant we are done.\n // Otherwise only proceed if the Halant does\n // not belong to the Matra itself!\n\n\n if (isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== POSITIONS.Pre_M) {\n // If ZWJ or ZWNJ follow this halant, position is moved after it.\n if (newPos + 1 < end && isJoiner(glyphs[newPos + 1])) {\n newPos++;\n }\n } else {\n newPos = start; // No move.\n }\n }\n\n if (start < newPos && glyphs[newPos].shaperInfo.position !== POSITIONS.Pre_M) {\n // Now go see if there's actually any matras...\n for (var _i19 = newPos; _i19 > start; _i19--) {\n if (glyphs[_i19 - 1].shaperInfo.position === POSITIONS.Pre_M) {\n var oldPos = _i19 - 1;\n\n if (oldPos < base && base <= newPos) {\n // Shouldn't actually happen.\n base--;\n }\n\n var tmp = glyphs[oldPos];\n glyphs.splice.apply(glyphs, [oldPos, 0].concat(glyphs.splice(oldPos + 1, newPos - oldPos)));\n glyphs[newPos] = tmp;\n newPos--;\n }\n }\n }\n } // o Reorder reph:\n //\n // Reph’s original position is always at the beginning of the syllable,\n // (i.e. it is not reordered at the character reordering stage). However,\n // it will be reordered according to the basic-forms shaping results.\n // Possible positions for reph, depending on the script, are; after main,\n // before post-base consonant forms, and after post-base consonant forms.\n // Two cases:\n //\n // - If repha is encoded as a sequence of characters (Ra,H or Ra,H,ZWJ), then\n // we should only move it if the sequence ligated to the repha form.\n //\n // - If repha is encoded separately and in the logical position, we should only\n // move it if it did NOT ligate. If it ligated, it's probably the font trying\n // to make it work without the reordering.\n\n\n if (start + 1 < end && glyphs[start].shaperInfo.position === POSITIONS.Ra_To_Become_Reph && glyphs[start].shaperInfo.category === CATEGORIES.Repha !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)) {\n var newRephPos = void 0;\n var rephPos = indicConfig.rephPos;\n var found = false; // 1. If reph should be positioned after post-base consonant forms,\n // proceed to step 5.\n\n if (rephPos !== POSITIONS.After_Post) {\n // 2. If the reph repositioning class is not after post-base: target\n // position is after the first explicit halant glyph between the\n // first post-reph consonant and last main consonant. If ZWJ or ZWNJ\n // are following this halant, position is moved after it. If such\n // position is found, this is the target position. Otherwise,\n // proceed to the next step.\n //\n // Note: in old-implementation fonts, where classifications were\n // fixed in shaping engine, there was no case where reph position\n // will be found on this step.\n newRephPos = start + 1;\n\n while (newRephPos < base && !isHalantOrCoeng(glyphs[newRephPos])) {\n newRephPos++;\n }\n\n if (newRephPos < base && isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && isJoiner(glyphs[newRephPos + 1])) {\n newRephPos++;\n }\n\n found = true;\n } // 3. If reph should be repositioned after the main consonant: find the\n // first consonant not ligated with main, or find the first\n // consonant that is not a potential pre-base reordering Ra.\n\n\n if (!found && rephPos === POSITIONS.After_Main) {\n newRephPos = base;\n\n while (newRephPos + 1 < end && glyphs[newRephPos + 1].shaperInfo.position <= POSITIONS.After_Main) {\n newRephPos++;\n }\n\n found = newRephPos < end;\n } // 4. If reph should be positioned before post-base consonant, find\n // first post-base classified consonant not ligated with main. If no\n // consonant is found, the target position should be before the\n // first matra, syllable modifier sign or vedic sign.\n //\n // This is our take on what step 4 is trying to say (and failing, BADLY).\n\n\n if (!found && rephPos === POSITIONS.After_Sub) {\n newRephPos = base;\n\n while (newRephPos + 1 < end && !(glyphs[newRephPos + 1].shaperInfo.position & (POSITIONS.Post_C | POSITIONS.After_Post | POSITIONS.SMVD))) {\n newRephPos++;\n }\n\n found = newRephPos < end;\n }\n } // 5. If no consonant is found in steps 3 or 4, move reph to a position\n // immediately before the first post-base matra, syllable modifier\n // sign or vedic sign that has a reordering class after the intended\n // reph position. For example, if the reordering position for reph\n // is post-main, it will skip above-base matras that also have a\n // post-main position.\n\n\n if (!found) {\n // Copied from step 2.\n newRephPos = start + 1;\n\n while (newRephPos < base && !isHalantOrCoeng(glyphs[newRephPos])) {\n newRephPos++;\n }\n\n if (newRephPos < base && isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && isJoiner(glyphs[newRephPos + 1])) {\n newRephPos++;\n }\n\n found = true;\n }\n } // 6. Otherwise, reorder reph to the end of the syllable.\n\n\n if (!found) {\n newRephPos = end - 1;\n\n while (newRephPos > start && glyphs[newRephPos].shaperInfo.position === POSITIONS.SMVD) {\n newRephPos--;\n } // If the Reph is to be ending up after a Matra,Halant sequence,\n // position it before that Halant so it can interact with the Matra.\n // However, if it's a plain Consonant,Halant we shouldn't do that.\n // Uniscribe doesn't do this.\n // TEST: U+0930,U+094D,U+0915,U+094B,U+094D\n\n\n if (isHalantOrCoeng(glyphs[newRephPos])) {\n for (var _i20 = base + 1; _i20 < newRephPos; _i20++) {\n if (glyphs[_i20].shaperInfo.category === CATEGORIES.M) {\n newRephPos--;\n }\n }\n }\n }\n\n var reph = glyphs[start];\n glyphs.splice.apply(glyphs, [start, 0].concat(glyphs.splice(start + 1, newRephPos - start)));\n glyphs[newRephPos] = reph;\n\n if (start < base && base <= newRephPos) {\n base--;\n }\n } // o Reorder pre-base reordering consonants:\n //\n // If a pre-base reordering consonant is found, reorder it according to\n // the following rules:\n\n\n if (tryPref && base + 1 < end) {\n for (var _i21 = base + 1; _i21 < end; _i21++) {\n if (glyphs[_i21].features.pref) {\n // 1. Only reorder a glyph produced by substitution during application\n // of the feature. (Note that a font may shape a Ra consonant with\n // the feature generally but block it in certain contexts.)\n // Note: We just check that something got substituted. We don't check that\n // the feature actually did it...\n //\n // Reorder pref only if it ligated.\n if (glyphs[_i21].isLigated && !glyphs[_i21].isMultiplied) {\n // 2. Try to find a target position the same way as for pre-base matra.\n // If it is found, reorder pre-base consonant glyph.\n //\n // 3. If position is not found, reorder immediately before main\n // consonant.\n var _newPos = base; // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while (_newPos > start && !(glyphs[_newPos - 1].shaperInfo.category & (CATEGORIES.M | HALANT_OR_COENG_FLAGS))) {\n _newPos--;\n } // In Khmer coeng model, a H,Ra can go *after* matras. If it goes after a\n // split matra, it should be reordered to *before* the left part of such matra.\n\n\n if (_newPos > start && glyphs[_newPos - 1].shaperInfo.category === CATEGORIES.M) {\n var _oldPos2 = _i21;\n\n for (var j = base + 1; j < _oldPos2; j++) {\n if (glyphs[j].shaperInfo.category === CATEGORIES.M) {\n _newPos--;\n break;\n }\n }\n }\n }\n\n if (_newPos > start && isHalantOrCoeng(glyphs[_newPos - 1])) {\n // -> If ZWJ or ZWNJ follow this halant, position is moved after it.\n if (_newPos < end && isJoiner(glyphs[_newPos])) {\n _newPos++;\n }\n }\n\n var _oldPos = _i21;\n var _tmp = glyphs[_oldPos];\n glyphs.splice.apply(glyphs, [_newPos + 1, 0].concat(glyphs.splice(_newPos, _oldPos - _newPos)));\n glyphs[_newPos] = _tmp;\n\n if (_newPos <= base && base < _oldPos) {\n base++;\n }\n }\n\n break;\n }\n }\n } // Apply 'init' to the Left Matra if it's a word start.\n\n\n if (glyphs[start].shaperInfo.position === POSITIONS.Pre_M && (!start || !/Cf|Mn/.test(unicode.getCategory(glyphs[start - 1].codePoints[0])))) {\n glyphs[start].features.init = true;\n }\n }\n}\n\nfunction nextSyllable$1(glyphs, start) {\n if (start >= glyphs.length) return start;\n var syllable = glyphs[start].shaperInfo.syllable;\n\n while (++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable) {\n }\n\n return start;\n}\n\nvar type = \"Buffer\";\nvar data = [\n\t0,\n\t2,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t186,\n\t16,\n\t1,\n\t5,\n\t14,\n\t250,\n\t241,\n\t237,\n\t156,\n\t123,\n\t140,\n\t95,\n\t69,\n\t21,\n\t199,\n\t103,\n\t119,\n\t187,\n\t251,\n\t123,\n\t109,\n\t119,\n\t187,\n\t22,\n\t90,\n\t160,\n\t188,\n\t31,\n\t166,\n\t165,\n\t8,\n\t69,\n\t154,\n\t24,\n\t164,\n\t49,\n\t16,\n\t32,\n\t209,\n\t148,\n\t38,\n\t106,\n\t67,\n\t20,\n\t249,\n\t195,\n\t214,\n\t7,\n\t54,\n\t98,\n\t176,\n\t65,\n\t141,\n\t141,\n\t74,\n\t104,\n\t136,\n\t134,\n\t2,\n\t18,\n\t9,\n\t134,\n\t80,\n\t99,\n\t132,\n\t26,\n\t163,\n\t149,\n\t52,\n\t245,\n\t25,\n\t80,\n\t99,\n\t64,\n\t249,\n\t3,\n\t72,\n\t5,\n\t77,\n\t138,\n\t68,\n\t65,\n\t5,\n\t21,\n\t35,\n\t1,\n\t81,\n\t132,\n\t72,\n\t72,\n\t197,\n\t196,\n\t248,\n\t29,\n\t239,\n\t156,\n\t252,\n\t206,\n\t206,\n\t158,\n\t121,\n\t222,\n\t215,\n\t22,\n\t126,\n\t39,\n\t249,\n\t100,\n\t238,\n\t99,\n\t158,\n\t231,\n\t204,\n\t204,\n\t157,\n\t153,\n\t59,\n\t247,\n\t174,\n\t154,\n\t80,\n\t234,\n\t20,\n\t176,\n\t22,\n\t156,\n\t3,\n\t46,\n\t4,\n\t27,\n\t193,\n\t102,\n\t112,\n\t185,\n\t185,\n\t118,\n\t94,\n\t5,\n\t238,\n\t22,\n\t176,\n\t13,\n\t108,\n\t7,\n\t59,\n\t60,\n\t254,\n\t118,\n\t130,\n\t93,\n\t194,\n\t245,\n\t27,\n\t193,\n\t173,\n\t96,\n\t55,\n\t216,\n\t3,\n\t190,\n\t13,\n\t190,\n\t7,\n\t238,\n\t1,\n\t247,\n\t25,\n\t30,\n\t100,\n\t254,\n\t127,\n\t1,\n\t30,\n\t5,\n\t191,\n\t3,\n\t79,\n\t11,\n\t241,\n\t61,\n\t5,\n\t158,\n\t1,\n\t171,\n\t192,\n\t11,\n\t38,\n\t111,\n\t171,\n\t204,\n\t253,\n\t85,\n\t140,\n\t87,\n\t192,\n\t33,\n\t160,\n\t150,\n\t40,\n\t213,\n\t5,\n\t203,\n\t192,\n\t10,\n\t112,\n\t60,\n\t120,\n\t35,\n\t56,\n\t19,\n\t172,\n\t7,\n\t27,\n\t192,\n\t69,\n\t224,\n\t18,\n\t240,\n\t110,\n\t240,\n\t62,\n\t240,\n\t1,\n\t240,\n\t81,\n\t176,\n\t29,\n\t236,\n\t0,\n\t59,\n\t193,\n\t46,\n\t112,\n\t11,\n\t216,\n\t13,\n\t238,\n\t4,\n\t123,\n\t193,\n\t126,\n\t112,\n\t55,\n\t184,\n\t23,\n\t60,\n\t0,\n\t30,\n\t6,\n\t191,\n\t6,\n\t191,\n\t7,\n\t127,\n\t1,\n\t207,\n\t130,\n\t23,\n\t193,\n\t33,\n\t160,\n\t38,\n\t149,\n\t234,\n\t128,\n\t89,\n\t176,\n\t18,\n\t156,\n\t0,\n\t78,\n\t5,\n\t103,\n\t76,\n\t22,\n\t121,\n\t95,\n\t15,\n\t247,\n\t60,\n\t112,\n\t161,\n\t57,\n\t223,\n\t8,\n\t119,\n\t51,\n\t184,\n\t28,\n\t108,\n\t1,\n\t219,\n\t192,\n\t199,\n\t193,\n\t167,\n\t205,\n\t253,\n\t107,\n\t225,\n\t126,\n\t1,\n\t220,\n\t12,\n\t110,\n\t3,\n\t95,\n\t155,\n\t28,\n\t150,\n\t253,\n\t155,\n\t147,\n\t243,\n\t117,\n\t81,\n\t150,\n\t253,\n\t136,\n\t239,\n\t251,\n\t21,\n\t199,\n\t201,\n\t249,\n\t177,\n\t21,\n\t247,\n\t125,\n\t56,\n\t127,\n\t16,\n\t252,\n\t10,\n\t252,\n\t6,\n\t60,\n\t53,\n\t89,\n\t148,\n\t247,\n\t25,\n\t240,\n\t2,\n\t120,\n\t5,\n\t252,\n\t55,\n\t144,\n\t159,\n\t169,\n\t41,\n\t165,\n\t102,\n\t192,\n\t10,\n\t176,\n\t106,\n\t170,\n\t8,\n\t127,\n\t10,\n\t220,\n\t53,\n\t224,\n\t108,\n\t112,\n\t174,\n\t185,\n\t118,\n\t1,\n\t220,\n\t119,\n\t128,\n\t119,\n\t129,\n\t203,\n\t166,\n\t10,\n\t221,\n\t106,\n\t182,\n\t226,\n\t248,\n\t67,\n\t224,\n\t99,\n\t224,\n\t147,\n\t224,\n\t115,\n\t224,\n\t243,\n\t38,\n\t204,\n\t77,\n\t198,\n\t253,\n\t50,\n\t220,\n\t175,\n\t130,\n\t27,\n\t88,\n\t186,\n\t223,\n\t192,\n\t249,\n\t190,\n\t41,\n\t127,\n\t222,\n\t126,\n\t16,\n\t184,\n\t31,\n\t195,\n\t79,\n\t16,\n\t199,\n\t253,\n\t224,\n\t0,\n\t56,\n\t8,\n\t158,\n\t48,\n\t229,\n\t210,\n\t247,\n\t158,\n\t132,\n\t251,\n\t87,\n\t240,\n\t15,\n\t240,\n\t178,\n\t185,\n\t246,\n\t42,\n\t220,\n\t241,\n\t14,\n\t234,\n\t32,\n\t88,\n\t218,\n\t9,\n\t199,\n\t127,\n\t36,\n\t252,\n\t28,\n\t215,\n\t41,\n\t226,\n\t60,\n\t17,\n\t238,\n\t106,\n\t112,\n\t22,\n\t88,\n\t15,\n\t214,\n\t153,\n\t180,\n\t54,\n\t224,\n\t248,\n\t12,\n\t19,\n\t215,\n\t219,\n\t140,\n\t95,\n\t205,\n\t197,\n\t236,\n\t152,\n\t179,\n\t9,\n\t215,\n\t47,\n\t5,\n\t151,\n\t89,\n\t247,\n\t183,\n\t58,\n\t252,\n\t19,\n\t31,\n\t49,\n\t105,\n\t159,\n\t205,\n\t244,\n\t230,\n\t243,\n\t207,\n\t253,\n\t229,\n\t162,\n\t227,\n\t248,\n\t48,\n\t210,\n\t188,\n\t10,\n\t92,\n\t13,\n\t118,\n\t116,\n\t226,\n\t227,\n\t223,\n\t105,\n\t233,\n\t247,\n\t76,\n\t193,\n\t207,\n\t46,\n\t248,\n\t185,\n\t5,\n\t236,\n\t238,\n\t20,\n\t245,\n\t109,\n\t15,\n\t139,\n\t127,\n\t169,\n\t71,\n\t31,\n\t123,\n\t113,\n\t111,\n\t63,\n\t184,\n\t27,\n\t220,\n\t235,\n\t176,\n\t163,\n\t212,\n\t254,\n\t31,\n\t232,\n\t12,\n\t203,\n\t245,\n\t8,\n\t142,\n\t31,\n\t3,\n\t127,\n\t0,\n\t79,\n\t155,\n\t180,\n\t244,\n\t241,\n\t223,\n\t204,\n\t241,\n\t99,\n\t1,\n\t123,\n\t84,\n\t161,\n\t223,\n\t17,\n\t35,\n\t94,\n\t143,\n\t140,\n\t218,\n\t207,\n\t136,\n\t17,\n\t35,\n\t70,\n\t140,\n\t24,\n\t49,\n\t98,\n\t196,\n\t136,\n\t215,\n\t2,\n\t235,\n\t58,\n\t195,\n\t53,\n\t129,\n\t27,\n\t34,\n\t252,\n\t255,\n\t147,\n\t205,\n\t93,\n\t255,\n\t101,\n\t205,\n\t99,\n\t191,\n\t24,\n\t17,\n\t254,\n\t63,\n\t8,\n\t51,\n\t209,\n\t45,\n\t214,\n\t97,\n\t6,\n\t112,\n\t151,\n\t131,\n\t21,\n\t224,\n\t56,\n\t112,\n\t154,\n\t185,\n\t254,\n\t38,\n\t184,\n\t235,\n\t187,\n\t133,\n\t255,\n\t13,\n\t112,\n\t207,\n\t7,\n\t111,\n\t7,\n\t239,\n\t52,\n\t247,\n\t223,\n\t11,\n\t119,\n\t11,\n\t216,\n\t102,\n\t206,\n\t183,\n\t195,\n\t221,\n\t1,\n\t118,\n\t118,\n\t221,\n\t233,\n\t106,\n\t127,\n\t187,\n\t60,\n\t247,\n\t71,\n\t140,\n\t24,\n\t49,\n\t98,\n\t68,\n\t189,\n\t156,\n\t211,\n\t50,\n\t109,\n\t151,\n\t127,\n\t196,\n\t136,\n\t17,\n\t245,\n\t80,\n\t119,\n\t251,\n\t254,\n\t18,\n\t198,\n\t143,\n\t183,\n\t119,\n\t139,\n\t247,\n\t66,\n\t119,\n\t192,\n\t253,\n\t150,\n\t48,\n\t158,\n\t252,\n\t78,\n\t183,\n\t120,\n\t183,\n\t175,\n\t143,\n\t239,\n\t177,\n\t238,\n\t223,\n\t183,\n\t8,\n\t198,\n\t159,\n\t127,\n\t159,\n\t46,\n\t152,\n\t94,\n\t170,\n\t212,\n\t37,\n\t224,\n\t145,\n\t233,\n\t48,\n\t59,\n\t225,\n\t239,\n\t231,\n\t150,\n\t95,\n\t53,\n\t51,\n\t60,\n\t94,\n\t141,\n\t227,\n\t45,\n\t96,\n\t15,\n\t120,\n\t28,\n\t28,\n\t50,\n\t247,\n\t86,\n\t207,\n\t98,\n\t140,\n\t62,\n\t59,\n\t244,\n\t183,\n\t3,\n\t199,\n\t123,\n\t160,\n\t131,\n\t63,\n\t129,\n\t19,\n\t123,\n\t8,\n\t3,\n\t246,\n\t244,\n\t138,\n\t177,\n\t252,\n\t29,\n\t83,\n\t133,\n\t251,\n\t176,\n\t57,\n\t231,\n\t12,\n\t250,\n\t240,\n\t55,\n\t54,\n\t100,\n\t99,\n\t127,\n\t161,\n\t159,\n\t155,\n\t112,\n\t109,\n\t31,\n\t187,\n\t254,\n\t60,\n\t142,\n\t215,\n\t14,\n\t148,\n\t186,\n\t18,\n\t236,\n\t3,\n\t207,\n\t131,\n\t181,\n\t211,\n\t237,\n\t63,\n\t127,\n\t218,\n\t38,\n\t212,\n\t94,\n\t30,\n\t132,\n\t238,\n\t14,\n\t152,\n\t122,\n\t122,\n\t16,\n\t238,\n\t227,\n\t198,\n\t94,\n\t122,\n\t158,\n\t248,\n\t108,\n\t55,\n\t253,\n\t121,\n\t186,\n\t223,\n\t184,\n\t103,\n\t70,\n\t250,\n\t231,\n\t188,\n\t152,\n\t145,\n\t158,\n\t212,\n\t39,\n\t72,\n\t225,\n\t95,\n\t70,\n\t220,\n\t175,\n\t118,\n\t231,\n\t251,\n\t163,\n\t252,\n\t238,\n\t247,\n\t164,\n\t55,\n\t142,\n\t250,\n\t217,\n\t3,\n\t115,\n\t189,\n\t97,\n\t217,\n\t180,\n\t191,\n\t163,\n\t112,\n\t126,\n\t108,\n\t175,\n\t56,\n\t63,\n\t185,\n\t55,\n\t244,\n\t127,\n\t122,\n\t111,\n\t126,\n\t62,\n\t98,\n\t251,\n\t171,\n\t88,\n\t91,\n\t186,\n\t202,\n\t247,\n\t230,\n\t158,\n\t124,\n\t239,\n\t173,\n\t184,\n\t190,\n\t1,\n\t92,\n\t4,\n\t54,\n\t130,\n\t205,\n\t224,\n\t61,\n\t224,\n\t73,\n\t115,\n\t255,\n\t253,\n\t56,\n\t190,\n\t2,\n\t92,\n\t5,\n\t174,\n\t54,\n\t247,\n\t63,\n\t3,\n\t174,\n\t3,\n\t55,\n\t130,\n\t91,\n\t193,\n\t237,\n\t44,\n\t238,\n\t59,\n\t113,\n\t188,\n\t23,\n\t236,\n\t3,\n\t63,\n\t4,\n\t63,\n\t5,\n\t247,\n\t131,\n\t3,\n\t224,\n\t160,\n\t144,\n\t7,\n\t61,\n\t15,\n\t127,\n\t2,\n\t215,\n\t255,\n\t108,\n\t238,\n\t233,\n\t253,\n\t52,\n\t207,\n\t225,\n\t248,\n\t37,\n\t193,\n\t47,\n\t249,\n\t255,\n\t55,\n\t238,\n\t141,\n\t245,\n\t135,\n\t231,\n\t61,\n\t28,\n\t207,\n\t129,\n\t163,\n\t251,\n\t197,\n\t249,\n\t73,\n\t253,\n\t98,\n\t111,\n\t137,\n\t190,\n\t191,\n\t6,\n\t199,\n\t103,\n\t247,\n\t221,\n\t58,\n\t211,\n\t254,\n\t207,\n\t237,\n\t203,\n\t58,\n\t115,\n\t233,\n\t253,\n\t2,\n\t248,\n\t191,\n\t24,\n\t108,\n\t2,\n\t151,\n\t130,\n\t203,\n\t192,\n\t86,\n\t147,\n\t246,\n\t182,\n\t126,\n\t209,\n\t102,\n\t98,\n\t237,\n\t182,\n\t29,\n\t254,\n\t63,\n\t5,\n\t174,\n\t1,\n\t215,\n\t129,\n\t235,\n\t193,\n\t205,\n\t44,\n\t63,\n\t183,\n\t225,\n\t248,\n\t43,\n\t224,\n\t235,\n\t224,\n\t46,\n\t240,\n\t93,\n\t86,\n\t182,\n\t16,\n\t63,\n\t242,\n\t148,\n\t251,\n\t81,\n\t228,\n\t241,\n\t103,\n\t253,\n\t118,\n\t158,\n\t57,\n\t46,\n\t93,\n\t63,\n\t20,\n\t200,\n\t207,\n\t98,\n\t234,\n\t43,\n\t171,\n\t212,\n\t65,\n\t27,\n\t233,\n\t255,\n\t178,\n\t63,\n\t63,\n\t222,\n\t131,\n\t70,\n\t247,\n\t191,\n\t133,\n\t251,\n\t199,\n\t126,\n\t185,\n\t124,\n\t198,\n\t150,\n\t227,\n\t105,\n\t79,\n\t187,\n\t179,\n\t211,\n\t191,\n\t171,\n\t226,\n\t242,\n\t47,\n\t198,\n\t250,\n\t85,\n\t133,\n\t253,\n\t203,\n\t212,\n\t147,\n\t182,\n\t203,\n\t151,\n\t90,\n\t254,\n\t231,\n\t250,\n\t205,\n\t230,\n\t219,\n\t183,\n\t143,\n\t106,\n\t175,\n\t89,\n\t55,\n\t127,\n\t169,\n\t95,\n\t184,\n\t135,\n\t224,\n\t42,\n\t140,\n\t49,\n\t167,\n\t6,\n\t197,\n\t249,\n\t244,\n\t96,\n\t232,\n\t247,\n\t136,\n\t129,\n\t92,\n\t54,\n\t186,\n\t191,\n\t166,\n\t35,\n\t151,\n\t171,\n\t238,\n\t250,\n\t31,\n\t34,\n\t180,\n\t151,\n\t44,\n\t102,\n\t175,\n\t217,\n\t202,\n\t65,\n\t225,\n\t30,\n\t15,\n\t247,\n\t180,\n\t193,\n\t225,\n\t81,\n\t239,\n\t108,\n\t253,\n\t135,\n\t238,\n\t159,\n\t46,\n\t216,\n\t55,\n\t20,\n\t239,\n\t67,\n\t194,\n\t216,\n\t118,\n\t177,\n\t17,\n\t219,\n\t239,\n\t220,\n\t208,\n\t96,\n\t94,\n\t206,\n\t26,\n\t204,\n\t191,\n\t118,\n\t77,\n\t70,\n\t254,\n\t207,\n\t153,\n\t136,\n\t171,\n\t135,\n\t186,\n\t14,\n\t191,\n\t133,\n\t181,\n\t99,\n\t189,\n\t191,\n\t115,\n\t3,\n\t206,\n\t207,\n\t31,\n\t20,\n\t237,\n\t127,\n\t29,\n\t219,\n\t111,\n\t121,\n\t177,\n\t241,\n\t55,\n\t48,\n\t249,\n\t219,\n\t4,\n\t247,\n\t210,\n\t65,\n\t177,\n\t239,\n\t246,\n\t114,\n\t184,\n\t31,\n\t20,\n\t234,\n\t136,\n\t175,\n\t237,\n\t172,\n\t142,\n\t216,\n\t203,\n\t153,\n\t139,\n\t206,\n\t251,\n\t149,\n\t131,\n\t249,\n\t215,\n\t248,\n\t222,\n\t213,\n\t231,\n\t80,\n\t55,\n\t175,\n\t232,\n\t12,\n\t203,\n\t254,\n\t9,\n\t227,\n\t126,\n\t22,\n\t238,\n\t93,\n\t157,\n\t97,\n\t254,\n\t79,\n\t101,\n\t97,\n\t174,\n\t53,\n\t126,\n\t174,\n\t135,\n\t123,\n\t179,\n\t16,\n\t247,\n\t173,\n\t184,\n\t182,\n\t59,\n\t177,\n\t157,\n\t180,\n\t205,\n\t49,\n\t19,\n\t99,\n\t106,\n\t49,\n\t200,\n\t24,\n\t99,\n\t220,\n\t58,\n\t231,\n\t126,\n\t200,\n\t157,\n\t96,\n\t247,\n\t151,\n\t68,\n\t98,\n\t199,\n\t167,\n\t28,\n\t215,\n\t234,\n\t150,\n\t197,\n\t161,\n\t241,\n\t145,\n\t144,\n\t80,\n\t93,\n\t26,\n\t23,\n\t32,\n\t91,\n\t141,\n\t11,\n\t225,\n\t198,\n\t45,\n\t119,\n\t210,\n\t64,\n\t18,\n\t83,\n\t183,\n\t234,\n\t174,\n\t11,\n\t19,\n\t53,\n\t199,\n\t95,\n\t181,\n\t76,\n\t181,\n\t157,\n\t129,\n\t18,\n\t18,\n\t99,\n\t203,\n\t215,\n\t83,\n\t219,\n\t151,\n\t218,\n\t204,\n\t235,\n\t73,\n\t198,\n\t28,\n\t44,\n\t6,\n\t177,\n\t243,\n\t193,\n\t251,\n\t188,\n\t195,\n\t93,\n\t164,\n\t49,\n\t131,\n\t125,\n\t124,\n\t184,\n\t72,\n\t110,\n\t157,\n\t145,\n\t198,\n\t82,\n\t57,\n\t246,\n\t181,\n\t245,\n\t119,\n\t56,\n\t233,\n\t176,\n\t169,\n\t118,\n\t23,\n\t27,\n\t119,\n\t138,\n\t238,\n\t171,\n\t110,\n\t135,\n\t220,\n\t246,\n\t174,\n\t126,\n\t41,\n\t196,\n\t107,\n\t93,\n\t92,\n\t243,\n\t14,\n\t126,\n\t191,\n\t10,\n\t187,\n\t228,\n\t234,\n\t159,\n\t242,\n\t212,\n\t97,\n\t96,\n\t26,\n\t27,\n\t61,\n\t255,\n\t169,\n\t154,\n\t30,\n\t48,\n\t75,\n\t130,\n\t255,\n\t63,\n\t215,\n\t199,\n\t211,\n\t198,\n\t93,\n\t106,\n\t209,\n\t179,\n\t232,\n\t91,\n\t204,\n\t176,\n\t176,\n\t84,\n\t198,\n\t89,\n\t166,\n\t179,\n\t30,\n\t139,\n\t43,\n\t54,\n\t127,\n\t228,\n\t63,\n\t103,\n\t158,\n\t168,\n\t74,\n\t232,\n\t101,\n\t130,\n\t217,\n\t166,\n\t27,\n\t25,\n\t151,\n\t178,\n\t252,\n\t217,\n\t231,\n\t169,\n\t132,\n\t194,\n\t42,\n\t53,\n\t63,\n\t29,\n\t201,\n\t63,\n\t73,\n\t140,\n\t125,\n\t73,\n\t166,\n\t13,\n\t246,\n\t185,\n\t182,\n\t111,\n\t76,\n\t31,\n\t210,\n\t23,\n\t174,\n\t185,\n\t202,\n\t100,\n\t167,\n\t157,\n\t170,\n\t163,\n\t80,\n\t123,\n\t166,\n\t251,\n\t84,\n\t39,\n\t248,\n\t220,\n\t142,\n\t183,\n\t63,\n\t95,\n\t218,\n\t190,\n\t178,\n\t228,\n\t228,\n\t57,\n\t213,\n\t190,\n\t161,\n\t99,\n\t45,\n\t3,\n\t227,\n\t74,\n\t246,\n\t181,\n\t133,\n\t218,\n\t175,\n\t125,\n\t62,\n\t99,\n\t249,\n\t155,\n\t85,\n\t126,\n\t137,\n\t169,\n\t143,\n\t161,\n\t48,\n\t46,\n\t180,\n\t93,\n\t150,\n\t169,\n\t162,\n\t29,\n\t210,\n\t252,\n\t119,\n\t78,\n\t165,\n\t61,\n\t195,\n\t98,\n\t237,\n\t235,\n\t179,\n\t73,\n\t74,\n\t158,\n\t171,\n\t178,\n\t111,\n\t110,\n\t251,\n\t37,\n\t155,\n\t242,\n\t62,\n\t90,\n\t169,\n\t249,\n\t253,\n\t115,\n\t85,\n\t82,\n\t182,\n\t253,\n\t210,\n\t88,\n\t54,\n\t148,\n\t6,\n\t127,\n\t78,\n\t46,\n\t99,\n\t40,\n\t117,\n\t248,\n\t244,\n\t207,\n\t169,\n\t246,\n\t165,\n\t103,\n\t107,\n\t78,\n\t255,\n\t28,\n\t18,\n\t187,\n\t237,\n\t219,\n\t58,\n\t176,\n\t243,\n\t153,\n\t107,\n\t223,\n\t113,\n\t53,\n\t191,\n\t124,\n\t185,\n\t162,\n\t109,\n\t28,\n\t122,\n\t150,\n\t75,\n\t229,\n\t112,\n\t233,\n\t92,\n\t242,\n\t171,\n\t4,\n\t255,\n\t46,\n\t127,\n\t174,\n\t116,\n\t164,\n\t235,\n\t177,\n\t117,\n\t136,\n\t11,\n\t181,\n\t85,\n\t62,\n\t190,\n\t226,\n\t50,\n\t173,\n\t230,\n\t219,\n\t159,\n\t159,\n\t199,\n\t182,\n\t111,\n\t233,\n\t249,\n\t236,\n\t146,\n\t156,\n\t114,\n\t72,\n\t107,\n\t176,\n\t161,\n\t181,\n\t9,\n\t222,\n\t150,\n\t187,\n\t230,\n\t60,\n\t181,\n\t253,\n\t165,\n\t228,\n\t55,\n\t167,\n\t61,\n\t167,\n\t234,\n\t65,\n\t159,\n\t251,\n\t198,\n\t203,\n\t74,\n\t45,\n\t236,\n\t171,\n\t249,\n\t121,\n\t200,\n\t158,\n\t52,\n\t158,\n\t150,\n\t244,\n\t96,\n\t75,\n\t217,\n\t246,\n\t236,\n\t147,\n\t208,\n\t51,\n\t153,\n\t250,\n\t2,\n\t110,\n\t227,\n\t152,\n\t177,\n\t188,\n\t84,\n\t174,\n\t166,\n\t236,\n\t235,\n\t242,\n\t75,\n\t98,\n\t247,\n\t215,\n\t117,\n\t216,\n\t87,\n\t106,\n\t255,\n\t182,\n\t216,\n\t121,\n\t45,\n\t99,\n\t223,\n\t55,\n\t24,\n\t114,\n\t132,\n\t143,\n\t181,\n\t82,\n\t158,\n\t199,\n\t85,\n\t183,\n\t191,\n\t28,\n\t200,\n\t30,\n\t100,\n\t79,\n\t27,\n\t174,\n\t211,\n\t80,\n\t255,\n\t187,\n\t92,\n\t201,\n\t125,\n\t28,\n\t159,\n\t255,\n\t199,\n\t216,\n\t180,\n\t206,\n\t246,\n\t74,\n\t98,\n\t175,\n\t149,\n\t72,\n\t235,\n\t38,\n\t41,\n\t246,\n\t204,\n\t201,\n\t91,\n\t213,\n\t182,\n\t140,\n\t141,\n\t83,\n\t169,\n\t249,\n\t121,\n\t137,\n\t205,\n\t175,\n\t212,\n\t102,\n\t121,\n\t93,\n\t161,\n\t186,\n\t68,\n\t54,\n\t91,\n\t202,\n\t252,\n\t76,\n\t59,\n\t240,\n\t213,\n\t135,\n\t84,\n\t157,\n\t82,\n\t62,\n\t114,\n\t214,\n\t250,\n\t218,\n\t104,\n\t123,\n\t62,\n\t219,\n\t244,\n\t216,\n\t53,\n\t123,\n\t237,\n\t73,\n\t26,\n\t23,\n\t147,\n\t140,\n\t43,\n\t127,\n\t220,\n\t58,\n\t124,\n\t71,\n\t45,\n\t156,\n\t91,\n\t116,\n\t204,\n\t189,\n\t178,\n\t251,\n\t17,\n\t108,\n\t125,\n\t42,\n\t203,\n\t205,\n\t173,\n\t179,\n\t57,\n\t58,\n\t140,\n\t137,\n\t155,\n\t252,\n\t196,\n\t234,\n\t91,\n\t159,\n\t207,\n\t177,\n\t176,\n\t190,\n\t114,\n\t145,\n\t216,\n\t250,\n\t86,\n\t204,\n\t77,\n\t41,\n\t191,\n\t203,\n\t191,\n\t22,\n\t251,\n\t157,\n\t127,\n\t46,\n\t227,\n\t204,\n\t181,\n\t199,\n\t172,\n\t174,\n\t49,\n\t109,\n\t213,\n\t246,\n\t211,\n\t113,\n\t78,\n\t90,\n\t46,\n\t205,\n\t123,\n\t37,\n\t137,\n\t181,\n\t113,\n\t157,\n\t216,\n\t194,\n\t215,\n\t140,\n\t93,\n\t107,\n\t200,\n\t54,\n\t52,\n\t134,\n\t224,\n\t231,\n\t29,\n\t53,\n\t92,\n\t3,\n\t246,\n\t149,\n\t247,\n\t136,\n\t4,\n\t84,\n\t162,\n\t255,\n\t58,\n\t208,\n\t18,\n\t154,\n\t43,\n\t77,\n\t122,\n\t238,\n\t241,\n\t240,\n\t174,\n\t122,\n\t44,\n\t181,\n\t9,\n\t73,\n\t234,\n\t174,\n\t27,\n\t41,\n\t72,\n\t207,\n\t82,\n\t205,\n\t180,\n\t146,\n\t235,\n\t139,\n\t94,\n\t167,\n\t212,\n\t117,\n\t102,\n\t198,\n\t92,\n\t59,\n\t18,\n\t172,\n\t80,\n\t69,\n\t31,\n\t53,\n\t151,\n\t152,\n\t182,\n\t189,\n\t47,\n\t141,\n\t142,\n\t67,\n\t121,\n\t117,\n\t189,\n\t215,\n\t152,\n\t83,\n\t243,\n\t243,\n\t209,\n\t87,\n\t195,\n\t49,\n\t149,\n\t29,\n\t71,\n\t87,\n\t128,\n\t199,\n\t101,\n\t151,\n\t61,\n\t71,\n\t183,\n\t115,\n\t106,\n\t56,\n\t22,\n\t161,\n\t120,\n\t164,\n\t116,\n\t187,\n\t70,\n\t175,\n\t75,\n\t132,\n\t124,\n\t248,\n\t160,\n\t176,\n\t100,\n\t191,\n\t54,\n\t246,\n\t35,\n\t72,\n\t117,\n\t188,\n\t237,\n\t119,\n\t163,\n\t161,\n\t118,\n\t94,\n\t133,\n\t158,\n\t248,\n\t94,\n\t183,\n\t42,\n\t165,\n\t14,\n\t29,\n\t229,\n\t62,\n\t95,\n\t236,\n\t107,\n\t188,\n\t127,\n\t168,\n\t59,\n\t125,\n\t9,\n\t158,\n\t126,\n\t138,\n\t142,\n\t170,\n\t78,\n\t63,\n\t85,\n\t170,\n\t208,\n\t191,\n\t106,\n\t56,\n\t253,\n\t80,\n\t222,\n\t180,\n\t240,\n\t231,\n\t134,\n\t52,\n\t118,\n\t117,\n\t205,\n\t193,\n\t8,\n\t26,\n\t127,\n\t244,\n\t213,\n\t112,\n\t236,\n\t161,\n\t159,\n\t193,\n\t43,\n\t85,\n\t49,\n\t254,\n\t154,\n\t100,\n\t208,\n\t26,\n\t142,\n\t62,\n\t182,\n\t219,\n\t136,\n\t253,\n\t28,\n\t38,\n\t91,\n\t165,\n\t150,\n\t191,\n\t46,\n\t241,\n\t245,\n\t129,\n\t77,\n\t244,\n\t139,\n\t250,\n\t185,\n\t90,\n\t117,\n\t29,\n\t72,\n\t209,\n\t41,\n\t175,\n\t27,\n\t246,\n\t120,\n\t131,\n\t176,\n\t199,\n\t106,\n\t92,\n\t142,\n\t50,\n\t204,\n\t178,\n\t99,\n\t155,\n\t163,\n\t77,\n\t60,\n\t147,\n\t66,\n\t120,\n\t187,\n\t175,\n\t79,\n\t221,\n\t223,\n\t80,\n\t117,\n\t187,\n\t41,\n\t91,\n\t247,\n\t114,\n\t211,\n\t205,\n\t13,\n\t111,\n\t195,\n\t215,\n\t169,\n\t202,\n\t230,\n\t143,\n\t75,\n\t236,\n\t115,\n\t187,\n\t110,\n\t234,\n\t172,\n\t3,\n\t212,\n\t14,\n\t104,\n\t45,\n\t138,\n\t247,\n\t83,\n\t117,\n\t214,\n\t75,\n\t26,\n\t163,\n\t235,\n\t246,\n\t181,\n\t210,\n\t112,\n\t140,\n\t146,\n\t231,\n\t73,\n\t51,\n\t44,\n\t111,\n\t174,\n\t246,\n\t202,\n\t231,\n\t152,\n\t212,\n\t174,\n\t165,\n\t62,\n\t94,\n\t90,\n\t255,\n\t33,\n\t168,\n\t189,\n\t242,\n\t54,\n\t59,\n\t153,\n\t80,\n\t38,\n\t151,\n\t148,\n\t13,\n\t31,\n\t26,\n\t183,\n\t214,\n\t61,\n\t166,\n\t229,\n\t58,\n\t210,\n\t118,\n\t106,\n\t122,\n\t207,\n\t154,\n\t126,\n\t246,\n\t74,\n\t115,\n\t66,\n\t123,\n\t93,\n\t65,\n\t178,\n\t53,\n\t61,\n\t167,\n\t235,\n\t232,\n\t143,\n\t66,\n\t235,\n\t72,\n\t49,\n\t172,\n\t2,\n\t199,\n\t26,\n\t215,\n\t69,\n\t234,\n\t220,\n\t161,\n\t45,\n\t59,\n\t113,\n\t120,\n\t27,\n\t150,\n\t250,\n\t24,\n\t106,\n\t203,\n\t51,\n\t204,\n\t95,\n\t221,\n\t245,\n\t198,\n\t94,\n\t171,\n\t39,\n\t151,\n\t250,\n\t159,\n\t152,\n\t119,\n\t110,\n\t90,\n\t108,\n\t91,\n\t187,\n\t202,\n\t110,\n\t247,\n\t65,\n\t124,\n\t189,\n\t96,\n\t165,\n\t135,\n\t227,\n\t12,\n\t186,\n\t239,\n\t161,\n\t189,\n\t93,\n\t174,\n\t180,\n\t83,\n\t250,\n\t103,\n\t46,\n\t49,\n\t253,\n\t78,\n\t172,\n\t148,\n\t157,\n\t91,\n\t243,\n\t254,\n\t69,\n\t251,\n\t159,\n\t117,\n\t64,\n\t126,\n\t164,\n\t235,\n\t93,\n\t79,\n\t56,\n\t105,\n\t47,\n\t155,\n\t116,\n\t141,\n\t242,\n\t171,\n\t227,\n\t163,\n\t247,\n\t161,\n\t180,\n\t31,\n\t65,\n\t211,\n\t198,\n\t183,\n\t88,\n\t210,\n\t248,\n\t49,\n\t36,\n\t199,\n\t131,\n\t19,\n\t216,\n\t249,\n\t132,\n\t131,\n\t88,\n\t251,\n\t216,\n\t235,\n\t97,\n\t169,\n\t246,\n\t77,\n\t89,\n\t127,\n\t137,\n\t185,\n\t158,\n\t26,\n\t183,\n\t253,\n\t172,\n\t76,\n\t9,\n\t167,\n\t229,\n\t196,\n\t136,\n\t50,\n\t166,\n\t72,\n\t142,\n\t77,\n\t41,\n\t156,\n\t61,\n\t62,\n\t105,\n\t66,\n\t58,\n\t97,\n\t47,\n\t94,\n\t145,\n\t214,\n\t172,\n\t165,\n\t107,\n\t41,\n\t241,\n\t197,\n\t132,\n\t11,\n\t173,\n\t157,\n\t75,\n\t174,\n\t148,\n\t78,\n\t74,\n\t190,\n\t202,\n\t150,\n\t163,\n\t202,\n\t245,\n\t210,\n\t148,\n\t252,\n\t248,\n\t198,\n\t20,\n\t33,\n\t155,\n\t249,\n\t236,\n\t235,\n\t10,\n\t87,\n\t5,\n\t82,\n\t57,\n\t235,\n\t72,\n\t199,\n\t55,\n\t214,\n\t138,\n\t145,\n\t212,\n\t248,\n\t234,\n\t202,\n\t111,\n\t89,\n\t63,\n\t117,\n\t234,\n\t179,\n\t141,\n\t116,\n\t115,\n\t108,\n\t25,\n\t35,\n\t109,\n\t151,\n\t161,\n\t233,\n\t242,\n\t134,\n\t164,\n\t77,\n\t91,\n\t164,\n\t164,\n\t95,\n\t103,\n\t221,\n\t77,\n\t201,\n\t199,\n\t68,\n\t205,\n\t121,\n\t246,\n\t233,\n\t221,\n\t30,\n\t35,\n\t150,\n\t213,\n\t95,\n\t21,\n\t250,\n\t111,\n\t66,\n\t66,\n\t105,\n\t53,\n\t161,\n\t255,\n\t166,\n\t236,\n\t156,\n\t163,\n\t239,\n\t170,\n\t109,\n\t147,\n\t243,\n\t238,\n\t193,\n\t53,\n\t47,\n\t112,\n\t197,\n\t25,\n\t90,\n\t47,\n\t115,\n\t133,\n\t207,\n\t45,\n\t67,\n\t206,\n\t220,\n\t66,\n\t242,\n\t175,\n\t50,\n\t226,\n\t74,\n\t153,\n\t143,\n\t133,\n\t164,\n\t201,\n\t126,\n\t167,\n\t137,\n\t250,\n\t222,\n\t180,\n\t62,\n\t36,\n\t225,\n\t246,\n\t201,\n\t205,\n\t91,\n\t110,\n\t185,\n\t234,\n\t234,\n\t67,\n\t67,\n\t229,\n\t173,\n\t202,\n\t14,\n\t174,\n\t120,\n\t154,\n\t174,\n\t7,\n\t177,\n\t210,\n\t84,\n\t251,\n\t41,\n\t91,\n\t214,\n\t182,\n\t242,\n\t80,\n\t214,\n\t38,\n\t139,\n\t161,\n\t111,\n\t168,\n\t178,\n\t191,\n\t181,\n\t227,\n\t77,\n\t245,\n\t75,\n\t235,\n\t184,\n\t246,\n\t190,\n\t48,\n\t233,\n\t189,\n\t71,\n\t204,\n\t183,\n\t85,\n\t101,\n\t224,\n\t107,\n\t220,\n\t180,\n\t198,\n\t158,\n\t171,\n\t251,\n\t216,\n\t112,\n\t85,\n\t151,\n\t33,\n\t245,\n\t121,\n\t42,\n\t237,\n\t215,\n\t107,\n\t18,\n\t189,\n\t231,\n\t81,\n\t250,\n\t118,\n\t197,\n\t133,\n\t174,\n\t23,\n\t49,\n\t107,\n\t122,\n\t84,\n\t254,\n\t156,\n\t247,\n\t11,\n\t92,\n\t92,\n\t239,\n\t91,\n\t83,\n\t113,\n\t165,\n\t227,\n\t26,\n\t59,\n\t73,\n\t109,\n\t130,\n\t35,\n\t237,\n\t65,\n\t230,\n\t239,\n\t12,\n\t82,\n\t203,\n\t31,\n\t131,\n\t253,\n\t222,\n\t210,\n\t126,\n\t151,\n\t201,\n\t223,\n\t3,\n\t233,\n\t125,\n\t36,\n\t41,\n\t223,\n\t107,\n\t82,\n\t217,\n\t219,\n\t124,\n\t87,\n\t107,\n\t67,\n\t239,\n\t224,\n\t92,\n\t123,\n\t122,\n\t233,\n\t61,\n\t173,\n\t222,\n\t11,\n\t160,\n\t235,\n\t241,\n\t73,\n\t106,\n\t248,\n\t175,\n\t137,\n\t220,\n\t113,\n\t111,\n\t110,\n\t125,\n\t245,\n\t217,\n\t155,\n\t246,\n\t69,\n\t212,\n\t173,\n\t175,\n\t216,\n\t52,\n\t164,\n\t253,\n\t15,\n\t252,\n\t29,\n\t56,\n\t93,\n\t179,\n\t247,\n\t67,\n\t199,\n\t8,\n\t79,\n\t103,\n\t101,\n\t68,\n\t94,\n\t168,\n\t174,\n\t74,\n\t225,\n\t99,\n\t244,\n\t111,\n\t219,\n\t177,\n\t106,\n\t29,\n\t242,\n\t245,\n\t12,\n\t254,\n\t60,\n\t209,\n\t247,\n\t232,\n\t253,\n\t94,\n\t149,\n\t237,\n\t164,\n\t199,\n\t92,\n\t178,\n\t131,\n\t109,\n\t55,\n\t87,\n\t56,\n\t234,\n\t231,\n\t200,\n\t109,\n\t82,\n\t114,\n\t244,\n\t175,\n\t235,\n\t26,\n\t175,\n\t123,\n\t125,\n\t37,\n\t63,\n\t55,\n\t105,\n\t143,\n\t126,\n\t140,\n\t240,\n\t248,\n\t165,\n\t111,\n\t226,\n\t249,\n\t190,\n\t189,\n\t49,\n\t19,\n\t119,\n\t93,\n\t223,\n\t73,\n\t214,\n\t33,\n\t246,\n\t120,\n\t230,\n\t228,\n\t146,\n\t196,\n\t174,\n\t49,\n\t248,\n\t36,\n\t102,\n\t77,\n\t66,\n\t186,\n\t23,\n\t242,\n\t235,\n\t74,\n\t199,\n\t231,\n\t143,\n\t230,\n\t142,\n\t117,\n\t140,\n\t175,\n\t165,\n\t124,\n\t140,\n\t43,\n\t191,\n\t206,\n\t164,\n\t117,\n\t163,\n\t148,\n\t52,\n\t236,\n\t107,\n\t74,\n\t201,\n\t186,\n\t110,\n\t74,\n\t236,\n\t250,\n\t103,\n\t143,\n\t177,\n\t125,\n\t115,\n\t237,\n\t42,\n\t210,\n\t171,\n\t107,\n\t238,\n\t148,\n\t35,\n\t139,\n\t101,\n\t253,\n\t160,\n\t204,\n\t28,\n\t86,\n\t178,\n\t95,\n\t153,\n\t185,\n\t112,\n\t83,\n\t101,\n\t118,\n\t73,\n\t93,\n\t235,\n\t18,\n\t77,\n\t216,\n\t184,\n\t238,\n\t58,\n\t93,\n\t119,\n\t252,\n\t49,\n\t250,\n\t208,\n\t207,\n\t78,\n\t251,\n\t27,\n\t108,\n\t223,\n\t183,\n\t32,\n\t228,\n\t143,\n\t246,\n\t106,\n\t133,\n\t198,\n\t107,\n\t246,\n\t121,\n\t93,\n\t144,\n\t232,\n\t57,\n\t202,\n\t64,\n\t45,\n\t220,\n\t107,\n\t167,\n\t37,\n\t180,\n\t119,\n\t52,\n\t102,\n\t44,\n\t81,\n\t245,\n\t154,\n\t125,\n\t221,\n\t237,\n\t179,\n\t206,\n\t119,\n\t11,\n\t135,\n\t75,\n\t30,\n\t154,\n\t78,\n\t51,\n\t165,\n\t156,\n\t124,\n\t206,\n\t66,\n\t251,\n\t20,\n\t155,\n\t104,\n\t47,\n\t246,\n\t28,\n\t198,\n\t181,\n\t31,\n\t219,\n\t245,\n\t189,\n\t119,\n\t104,\n\t94,\n\t111,\n\t203,\n\t41,\n\t37,\n\t105,\n\t98,\n\t30,\n\t112,\n\t170,\n\t106,\n\t255,\n\t95,\n\t174,\n\t210,\n\t127,\n\t1,\n\t237,\n\t61,\n\t207,\n\t90,\n\t247,\n\t186,\n\t127,\n\t147,\n\t198,\n\t237,\n\t210,\n\t26,\n\t91,\n\t91,\n\t72,\n\t245,\n\t74,\n\t250,\n\t246,\n\t155,\n\t238,\n\t209,\n\t119,\n\t223,\n\t42,\n\t33,\n\t13,\n\t105,\n\t189,\n\t33,\n\t118,\n\t239,\n\t119,\n\t74,\n\t58,\n\t49,\n\t216,\n\t54,\n\t105,\n\t58,\n\t125,\n\t223,\n\t63,\n\t37,\n\t125,\n\t237,\n\t88,\n\t135,\n\t93,\n\t110,\n\t80,\n\t106,\n\t161,\n\t78,\n\t105,\n\t239,\n\t58,\n\t217,\n\t42,\n\t119,\n\t125,\n\t78,\n\t154,\n\t99,\n\t86,\n\t173,\n\t3,\n\t74,\n\t43,\n\t86,\n\t170,\n\t76,\n\t51,\n\t215,\n\t102,\n\t246,\n\t123,\n\t22,\n\t251,\n\t191,\n\t8,\n\t218,\n\t70,\n\t244,\n\t191,\n\t76,\n\t87,\n\t127,\n\t75,\n\t239,\n\t0,\n\t98,\n\t242,\n\t40,\n\t249,\n\t43,\n\t171,\n\t139,\n\t148,\n\t240,\n\t190,\n\t246,\n\t81,\n\t117,\n\t93,\n\t72,\n\t65,\n\t235,\n\t208,\n\t215,\n\t255,\n\t18,\n\t3,\n\t229,\n\t30,\n\t31,\n\t151,\n\t173,\n\t163,\n\t185,\n\t255,\n\t95,\n\t83,\n\t158,\n\t243,\n\t170,\n\t109,\n\t105,\n\t167,\n\t229,\n\t242,\n\t67,\n\t227,\n\t112,\n\t94,\n\t207,\n\t237,\n\t111,\n\t119,\n\t120,\n\t63,\n\t93,\n\t230,\n\t127,\n\t168,\n\t74,\n\t249,\n\t251,\n\t124,\n\t87,\n\t187,\n\t35,\n\t241,\n\t189,\n\t171,\n\t82,\n\t1,\n\t127,\n\t41,\n\t82,\n\t71,\n\t189,\n\t77,\n\t233,\n\t247,\n\t237,\n\t247,\n\t134,\n\t84,\n\t215,\n\t200,\n\t78,\n\t92,\n\t164,\n\t126,\n\t38,\n\t165,\n\t14,\n\t241,\n\t254,\n\t62,\n\t229,\n\t219,\n\t203,\n\t178,\n\t101,\n\t165,\n\t49,\n\t6,\n\t255,\n\t86,\n\t139,\n\t254,\n\t9,\n\t64,\n\t229,\n\t165,\n\t49,\n\t148,\n\t157,\n\t215,\n\t144,\n\t148,\n\t109,\n\t223,\n\t117,\n\t149,\n\t157,\n\t68,\n\t250,\n\t15,\n\t130,\n\t93,\n\t230,\n\t152,\n\t57,\n\t108,\n\t46,\n\t118,\n\t158,\n\t203,\n\t254,\n\t23,\n\t222,\n\t213,\n\t110,\n\t83,\n\t234,\n\t58,\n\t47,\n\t127,\n\t207,\n\t202,\n\t111,\n\t170,\n\t148,\n\t181,\n\t127,\n\t142,\n\t78,\n\t171,\n\t148,\n\t20,\n\t93,\n\t243,\n\t127,\n\t120,\n\t133,\n\t158,\n\t137,\n\t118,\n\t123,\n\t170,\n\t34,\n\t253,\n\t178,\n\t144,\n\t232,\n\t119,\n\t165,\n\t250,\n\t189,\n\t233,\n\t105,\n\t42,\n\t252,\n\t79,\n\t42,\n\t187,\n\t108,\n\t101,\n\t243,\n\t207,\n\t237,\n\t56,\n\t158,\n\t17,\n\t222,\n\t215,\n\t230,\n\t165,\n\t177,\n\t162,\n\t221,\n\t206,\n\t83,\n\t243,\n\t159,\n\t91,\n\t206,\n\t170,\n\t251,\n\t49,\n\t187,\n\t13,\n\t211,\n\t120,\n\t136,\n\t230,\n\t43,\n\t84,\n\t54,\n\t62,\n\t94,\n\t104,\n\t66,\n\t150,\n\t168,\n\t133,\n\t255,\n\t40,\n\t144,\n\t144,\n\t254,\n\t33,\n\t86,\n\t53,\n\t147,\n\t38,\n\t29,\n\t123,\n\t60,\n\t162,\n\t245,\n\t164,\n\t231,\n\t114,\n\t115,\n\t22,\n\t174,\n\t111,\n\t62,\n\t233,\n\t122,\n\t204,\n\t56,\n\t203,\n\t87,\n\t126,\n\t169,\n\t95,\n\t182,\n\t243,\n\t188,\n\t220,\n\t193,\n\t209,\n\t137,\n\t80,\n\t57,\n\t151,\n\t169,\n\t133,\n\t107,\n\t81,\n\t75,\n\t148,\n\t251,\n\t121,\n\t228,\n\t170,\n\t243,\n\t77,\n\t244,\n\t71,\n\t190,\n\t255,\n\t30,\n\t240,\n\t181,\n\t119,\n\t187,\n\t77,\n\t243,\n\t118,\n\t109,\n\t247,\n\t41,\n\t109,\n\t172,\n\t55,\n\t112,\n\t73,\n\t29,\n\t23,\n\t198,\n\t198,\n\t93,\n\t230,\n\t95,\n\t140,\n\t190,\n\t251,\n\t212,\n\t215,\n\t243,\n\t61,\n\t141,\n\t41,\n\t227,\n\t248,\n\t216,\n\t122,\n\t20,\n\t242,\n\t91,\n\t6,\n\t87,\n\t127,\n\t195,\n\t165,\n\t199,\n\t92,\n\t126,\n\t76,\n\t101,\n\t229,\n\t235,\n\t57,\n\t244,\n\t191,\n\t235,\n\t152,\n\t61,\n\t69,\n\t57,\n\t117,\n\t36,\n\t38,\n\t188,\n\t114,\n\t28,\n\t215,\n\t217,\n\t22,\n\t125,\n\t255,\n\t121,\n\t87,\n\t74,\n\t30,\n\t63,\n\t86,\n\t165,\n\t159,\n\t16,\n\t19,\n\t106,\n\t225,\n\t191,\n\t54,\n\t98,\n\t218,\n\t122,\n\t155,\n\t239,\n\t80,\n\t171,\n\t24,\n\t171,\n\t214,\n\t53,\n\t254,\n\t173,\n\t243,\n\t221,\n\t79,\n\t91,\n\t239,\n\t177,\n\t104,\n\t76,\n\t233,\n\t179,\n\t219,\n\t152,\n\t227,\n\t122,\n\t19,\n\t82,\n\t231,\n\t60,\n\t38,\n\t86,\n\t236,\n\t189,\n\t42,\n\t169,\n\t123,\n\t48,\n\t154,\n\t218,\n\t159,\n\t208,\n\t196,\n\t30,\n\t149,\n\t152,\n\t248,\n\t155,\n\t42,\n\t243,\n\t98,\n\t220,\n\t239,\n\t33,\n\t137,\n\t148,\n\t70,\n\t91,\n\t237,\n\t169,\n\t170,\n\t114,\n\t199,\n\t232,\n\t51,\n\t69,\n\t247,\n\t116,\n\t92,\n\t247,\n\t218,\n\t133,\n\t84,\n\t142,\n\t170,\n\t227,\n\t40,\n\t27,\n\t231,\n\t98,\n\t108,\n\t23,\n\t101,\n\t227,\n\t168,\n\t178,\n\t125,\n\t214,\n\t213,\n\t214,\n\t171,\n\t212,\n\t91,\n\t217,\n\t188,\n\t248,\n\t164,\n\t238,\n\t116,\n\t203,\n\t228,\n\t205,\n\t151,\n\t191,\n\t166,\n\t164,\n\t201,\n\t250,\n\t149,\n\t147,\n\t126,\n\t85,\n\t249,\n\t207,\n\t13,\n\t95,\n\t85,\n\t250,\n\t49,\n\t233,\n\t148,\n\t213,\n\t115,\n\t200,\n\t111,\n\t29,\n\t249,\n\t78,\n\t73,\n\t191,\n\t142,\n\t184,\n\t109,\n\t73,\n\t177,\n\t157,\n\t36,\n\t185,\n\t245,\n\t192,\n\t37,\n\t255,\n\t3\n];\nvar trieData = {\n\ttype: type,\n\tdata: data\n};\n\nfunction _createForOfIteratorHelperLoose$d(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$d(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$d(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$d(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$d(o, minLen); }\n\nfunction _arrayLikeToArray$d(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar categories = useData.categories,\n decompositions = useData.decompositions;\nvar trie = new UnicodeTrie(new Uint8Array(trieData.data));\nvar stateMachine = new StateMachine(useData);\n/**\n * This shaper is an implementation of the Universal Shaping Engine, which\n * uses Unicode data to shape a number of scripts without a dedicated shaping engine.\n * See https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm.\n */\n\nvar UniversalShaper = /*#__PURE__*/function (_DefaultShaper) {\n _inheritsLoose(UniversalShaper, _DefaultShaper);\n\n function UniversalShaper() {\n return _DefaultShaper.apply(this, arguments) || this;\n }\n\n UniversalShaper.planFeatures = function planFeatures(plan) {\n plan.addStage(setupSyllables); // Default glyph pre-processing group\n\n plan.addStage(['locl', 'ccmp', 'nukt', 'akhn']); // Reordering group\n\n plan.addStage(clearSubstitutionFlags);\n plan.addStage(['rphf'], false);\n plan.addStage(recordRphf);\n plan.addStage(clearSubstitutionFlags);\n plan.addStage(['pref']);\n plan.addStage(recordPref); // Orthographic unit shaping group\n\n plan.addStage(['rkrf', 'abvf', 'blwf', 'half', 'pstf', 'vatu', 'cjct']);\n plan.addStage(reorder); // Topographical features\n // Scripts that need this are handled by the Arabic shaper, not implemented here for now.\n // plan.addStage(['isol', 'init', 'medi', 'fina', 'med2', 'fin2', 'fin3'], false);\n // Standard topographic presentation and positional feature application\n\n plan.addStage(['abvs', 'blws', 'pres', 'psts', 'dist', 'abvm', 'blwm']);\n };\n\n UniversalShaper.assignFeatures = function assignFeatures(plan, glyphs) {\n var _loop = function _loop(i) {\n var codepoint = glyphs[i].codePoints[0];\n\n if (decompositions[codepoint]) {\n var decomposed = decompositions[codepoint].map(function (c) {\n var g = plan.font.glyphForCodePoint(c);\n return new GlyphInfo(plan.font, g.id, [c], glyphs[i].features);\n });\n glyphs.splice.apply(glyphs, [i, 1].concat(decomposed));\n }\n };\n\n // Decompose split vowels\n // TODO: do this in a more general unicode normalizer\n for (var i = glyphs.length - 1; i >= 0; i--) {\n _loop(i);\n }\n };\n\n return UniversalShaper;\n}(DefaultShaper);\n\n_defineProperty(UniversalShaper, \"zeroMarkWidths\", 'BEFORE_GPOS');\n\nfunction useCategory(glyph) {\n return trie.get(glyph.codePoints[0]);\n}\n\nvar USEInfo = function USEInfo(category, syllableType, syllable) {\n this.category = category;\n this.syllableType = syllableType;\n this.syllable = syllable;\n};\n\nfunction setupSyllables(font, glyphs) {\n var syllable = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose$d(stateMachine.match(glyphs.map(useCategory))), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n start = _step$value[0],\n end = _step$value[1],\n tags = _step$value[2];\n ++syllable; // Create shaper info\n\n for (var i = start; i <= end; i++) {\n glyphs[i].shaperInfo = new USEInfo(categories[useCategory(glyphs[i])], tags[0], syllable);\n } // Assign rphf feature\n\n\n var limit = glyphs[start].shaperInfo.category === 'R' ? 1 : Math.min(3, end - start);\n\n for (var _i = start; _i < start + limit; _i++) {\n glyphs[_i].features.rphf = true;\n }\n }\n}\n\nfunction clearSubstitutionFlags(font, glyphs) {\n for (var _iterator2 = _createForOfIteratorHelperLoose$d(glyphs), _step2; !(_step2 = _iterator2()).done;) {\n var glyph = _step2.value;\n glyph.substituted = false;\n }\n}\n\nfunction recordRphf(font, glyphs) {\n for (var _iterator3 = _createForOfIteratorHelperLoose$d(glyphs), _step3; !(_step3 = _iterator3()).done;) {\n var glyph = _step3.value;\n\n if (glyph.substituted && glyph.features.rphf) {\n // Mark a substituted repha.\n glyph.shaperInfo.category = 'R';\n }\n }\n}\n\nfunction recordPref(font, glyphs) {\n for (var _iterator4 = _createForOfIteratorHelperLoose$d(glyphs), _step4; !(_step4 = _iterator4()).done;) {\n var glyph = _step4.value;\n\n if (glyph.substituted) {\n // Mark a substituted pref as VPre, as they behave the same way.\n glyph.shaperInfo.category = 'VPre';\n }\n }\n}\n\nfunction reorder(font, glyphs) {\n var dottedCircle = font.glyphForCodePoint(0x25cc).id;\n\n for (var start = 0, end = nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = nextSyllable(glyphs, start)) {\n var i = void 0,\n j = void 0;\n var info = glyphs[start].shaperInfo;\n var type = info.syllableType; // Only a few syllable types need reordering.\n\n if (type !== 'virama_terminated_cluster' && type !== 'standard_cluster' && type !== 'broken_cluster') {\n continue;\n } // Insert a dotted circle glyph in broken clusters.\n\n\n if (type === 'broken_cluster' && dottedCircle) {\n var g = new GlyphInfo(font, dottedCircle, [0x25cc]);\n g.shaperInfo = info; // Insert after possible Repha.\n\n for (i = start; i < end && glyphs[i].shaperInfo.category === 'R'; i++) {\n }\n\n glyphs.splice(++i, 0, g);\n end++;\n } // Move things forward.\n\n\n if (info.category === 'R' && end - start > 1) {\n // Got a repha. Reorder it to after first base, before first halant.\n for (i = start + 1; i < end; i++) {\n info = glyphs[i].shaperInfo;\n\n if (isBase(info) || isHalant(glyphs[i])) {\n // If we hit a halant, move before it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n if (isHalant(glyphs[i])) {\n i--;\n }\n\n glyphs.splice.apply(glyphs, [start, 0].concat(glyphs.splice(start + 1, i - start), [glyphs[i]]));\n break;\n }\n }\n } // Move things back.\n\n\n for (i = start, j = end; i < end; i++) {\n info = glyphs[i].shaperInfo;\n\n if (isBase(info) || isHalant(glyphs[i])) {\n // If we hit a halant, move after it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n j = isHalant(glyphs[i]) ? i + 1 : i;\n } else if ((info.category === 'VPre' || info.category === 'VMPre') && j < i) {\n glyphs.splice.apply(glyphs, [j, 1, glyphs[i]].concat(glyphs.splice(j, i - j)));\n }\n }\n }\n}\n\nfunction nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n var syllable = glyphs[start].shaperInfo.syllable;\n\n while (++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable) {\n }\n\n return start;\n}\n\nfunction isHalant(glyph) {\n return glyph.shaperInfo.category === 'H' && !glyph.isLigated;\n}\n\nfunction isBase(info) {\n return info.category === 'B' || info.category === 'GB';\n}\n\nfunction _createForOfIteratorHelperLoose$c(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$c(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$c(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$c(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$c(o, minLen); }\n\nfunction _arrayLikeToArray$c(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar SHAPERS = {\n arab: ArabicShaper,\n // Arabic\n mong: ArabicShaper,\n // Mongolian\n syrc: ArabicShaper,\n // Syriac\n 'nko ': ArabicShaper,\n // N'Ko\n phag: ArabicShaper,\n // Phags Pa\n mand: ArabicShaper,\n // Mandaic\n mani: ArabicShaper,\n // Manichaean\n phlp: ArabicShaper,\n // Psalter Pahlavi\n hang: HangulShaper,\n // Hangul\n bng2: IndicShaper,\n // Bengali\n beng: IndicShaper,\n // Bengali\n dev2: IndicShaper,\n // Devanagari\n deva: IndicShaper,\n // Devanagari\n gjr2: IndicShaper,\n // Gujarati\n gujr: IndicShaper,\n // Gujarati\n guru: IndicShaper,\n // Gurmukhi\n gur2: IndicShaper,\n // Gurmukhi\n knda: IndicShaper,\n // Kannada\n knd2: IndicShaper,\n // Kannada\n mlm2: IndicShaper,\n // Malayalam\n mlym: IndicShaper,\n // Malayalam\n ory2: IndicShaper,\n // Oriya\n orya: IndicShaper,\n // Oriya\n taml: IndicShaper,\n // Tamil\n tml2: IndicShaper,\n // Tamil\n telu: IndicShaper,\n // Telugu\n tel2: IndicShaper,\n // Telugu\n khmr: IndicShaper,\n // Khmer\n bali: UniversalShaper,\n // Balinese\n batk: UniversalShaper,\n // Batak\n brah: UniversalShaper,\n // Brahmi\n bugi: UniversalShaper,\n // Buginese\n buhd: UniversalShaper,\n // Buhid\n cakm: UniversalShaper,\n // Chakma\n cham: UniversalShaper,\n // Cham\n dupl: UniversalShaper,\n // Duployan\n egyp: UniversalShaper,\n // Egyptian Hieroglyphs\n gran: UniversalShaper,\n // Grantha\n hano: UniversalShaper,\n // Hanunoo\n java: UniversalShaper,\n // Javanese\n kthi: UniversalShaper,\n // Kaithi\n kali: UniversalShaper,\n // Kayah Li\n khar: UniversalShaper,\n // Kharoshthi\n khoj: UniversalShaper,\n // Khojki\n sind: UniversalShaper,\n // Khudawadi\n lepc: UniversalShaper,\n // Lepcha\n limb: UniversalShaper,\n // Limbu\n mahj: UniversalShaper,\n // Mahajani\n // mand: UniversalShaper, // Mandaic\n // mani: UniversalShaper, // Manichaean\n mtei: UniversalShaper,\n // Meitei Mayek\n modi: UniversalShaper,\n // Modi\n // mong: UniversalShaper, // Mongolian\n // 'nko ': UniversalShaper, // N’Ko\n hmng: UniversalShaper,\n // Pahawh Hmong\n // phag: UniversalShaper, // Phags-pa\n // phlp: UniversalShaper, // Psalter Pahlavi\n rjng: UniversalShaper,\n // Rejang\n saur: UniversalShaper,\n // Saurashtra\n shrd: UniversalShaper,\n // Sharada\n sidd: UniversalShaper,\n // Siddham\n sinh: UniversalShaper,\n // Sinhala\n sund: UniversalShaper,\n // Sundanese\n sylo: UniversalShaper,\n // Syloti Nagri\n tglg: UniversalShaper,\n // Tagalog\n tagb: UniversalShaper,\n // Tagbanwa\n tale: UniversalShaper,\n // Tai Le\n lana: UniversalShaper,\n // Tai Tham\n tavt: UniversalShaper,\n // Tai Viet\n takr: UniversalShaper,\n // Takri\n tibt: UniversalShaper,\n // Tibetan\n tfng: UniversalShaper,\n // Tifinagh\n tirh: UniversalShaper,\n // Tirhuta\n latn: DefaultShaper,\n // Latin\n DFLT: DefaultShaper // Default\n\n};\nfunction choose(script) {\n if (!Array.isArray(script)) {\n script = [script];\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose$c(script), _step; !(_step = _iterator()).done;) {\n var s = _step.value;\n var shaper = SHAPERS[s];\n\n if (shaper) {\n return shaper;\n }\n }\n\n return DefaultShaper;\n}\n\nfunction _createForOfIteratorHelperLoose$b(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$b(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$b(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$b(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$b(o, minLen); }\n\nfunction _arrayLikeToArray$b(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar GSUBProcessor = /*#__PURE__*/function (_OTProcessor) {\n _inheritsLoose(GSUBProcessor, _OTProcessor);\n\n function GSUBProcessor() {\n return _OTProcessor.apply(this, arguments) || this;\n }\n\n var _proto = GSUBProcessor.prototype;\n\n _proto.applyLookup = function applyLookup(lookupType, table) {\n var _this = this;\n\n switch (lookupType) {\n case 1:\n {\n // Single Substitution\n var index = this.coverageIndex(table.coverage);\n\n if (index === -1) {\n return false;\n }\n\n var glyph = this.glyphIterator.cur;\n\n switch (table.version) {\n case 1:\n glyph.id = glyph.id + table.deltaGlyphID & 0xffff;\n break;\n\n case 2:\n glyph.id = table.substitute.get(index);\n break;\n }\n\n return true;\n }\n\n case 2:\n {\n // Multiple Substitution\n var _index = this.coverageIndex(table.coverage);\n\n if (_index !== -1) {\n var _this$glyphs;\n\n var sequence = table.sequences.get(_index);\n\n if (sequence.length === 0) {\n // If the sequence length is zero, delete the glyph.\n // The OpenType spec disallows this, but seems like Harfbuzz and Uniscribe allow it.\n this.glyphs.splice(this.glyphIterator.index, 1);\n return true;\n }\n\n this.glyphIterator.cur.id = sequence[0];\n this.glyphIterator.cur.ligatureComponent = 0;\n var features = this.glyphIterator.cur.features;\n var curGlyph = this.glyphIterator.cur;\n var replacement = sequence.slice(1).map(function (gid, i) {\n var glyph = new GlyphInfo(_this.font, gid, undefined, features);\n glyph.shaperInfo = curGlyph.shaperInfo;\n glyph.isLigated = curGlyph.isLigated;\n glyph.ligatureComponent = i + 1;\n glyph.substituted = true;\n glyph.isMultiplied = true;\n return glyph;\n });\n\n (_this$glyphs = this.glyphs).splice.apply(_this$glyphs, [this.glyphIterator.index + 1, 0].concat(replacement));\n\n return true;\n }\n\n return false;\n }\n\n case 3:\n {\n // Alternate Substitution\n var _index2 = this.coverageIndex(table.coverage);\n\n if (_index2 !== -1) {\n var USER_INDEX = 0; // TODO\n\n this.glyphIterator.cur.id = table.alternateSet.get(_index2)[USER_INDEX];\n return true;\n }\n\n return false;\n }\n\n case 4:\n {\n // Ligature Substitution\n var _index3 = this.coverageIndex(table.coverage);\n\n if (_index3 === -1) {\n return false;\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose$b(table.ligatureSets.get(_index3)), _step; !(_step = _iterator()).done;) {\n var ligature = _step.value;\n var matched = this.sequenceMatchIndices(1, ligature.components);\n\n if (!matched) {\n continue;\n }\n\n var _curGlyph = this.glyphIterator.cur; // Concatenate all of the characters the new ligature will represent\n\n var characters = _curGlyph.codePoints.slice();\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$b(matched), _step2; !(_step2 = _iterator2()).done;) {\n var _index4 = _step2.value;\n characters.push.apply(characters, this.glyphs[_index4].codePoints);\n } // Create the replacement ligature glyph\n\n\n var ligatureGlyph = new GlyphInfo(this.font, ligature.glyph, characters, _curGlyph.features);\n ligatureGlyph.shaperInfo = _curGlyph.shaperInfo;\n ligatureGlyph.isLigated = true;\n ligatureGlyph.substituted = true; // From Harfbuzz:\n // - If it *is* a mark ligature, we don't allocate a new ligature id, and leave\n // the ligature to keep its old ligature id. This will allow it to attach to\n // a base ligature in GPOS. Eg. if the sequence is: LAM,LAM,SHADDA,FATHA,HEH,\n // and LAM,LAM,HEH for a ligature, they will leave SHADDA and FATHA with a\n // ligature id and component value of 2. Then if SHADDA,FATHA form a ligature\n // later, we don't want them to lose their ligature id/component, otherwise\n // GPOS will fail to correctly position the mark ligature on top of the\n // LAM,LAM,HEH ligature. See https://bugzilla.gnome.org/show_bug.cgi?id=676343\n //\n // - If a ligature is formed of components that some of which are also ligatures\n // themselves, and those ligature components had marks attached to *their*\n // components, we have to attach the marks to the new ligature component\n // positions! Now *that*'s tricky! And these marks may be following the\n // last component of the whole sequence, so we should loop forward looking\n // for them and update them.\n //\n // Eg. the sequence is LAM,LAM,SHADDA,FATHA,HEH, and the font first forms a\n // 'calt' ligature of LAM,HEH, leaving the SHADDA and FATHA with a ligature\n // id and component == 1. Now, during 'liga', the LAM and the LAM-HEH ligature\n // form a LAM-LAM-HEH ligature. We need to reassign the SHADDA and FATHA to\n // the new ligature with a component value of 2.\n //\n // This in fact happened to a font... See https://bugzilla.gnome.org/show_bug.cgi?id=437633\n\n var isMarkLigature = _curGlyph.isMark;\n\n for (var i = 0; i < matched.length && isMarkLigature; i++) {\n isMarkLigature = this.glyphs[matched[i]].isMark;\n }\n\n ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;\n var lastLigID = _curGlyph.ligatureID;\n var lastNumComps = _curGlyph.codePoints.length;\n var curComps = lastNumComps;\n var idx = this.glyphIterator.index + 1; // Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence.\n // This allows GPOS to attach marks to the correct ligature components.\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$b(matched), _step3; !(_step3 = _iterator3()).done;) {\n var matchIndex = _step3.value;\n\n // Don't assign new ligature components for mark ligatures (see above)\n if (isMarkLigature) {\n idx = matchIndex;\n } else {\n while (idx < matchIndex) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);\n this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;\n this.glyphs[idx].ligatureComponent = ligatureComponent;\n idx++;\n }\n }\n\n lastLigID = this.glyphs[idx].ligatureID;\n lastNumComps = this.glyphs[idx].codePoints.length;\n curComps += lastNumComps;\n idx++; // skip base glyph\n } // Adjust ligature components for any marks following\n\n\n if (lastLigID && !isMarkLigature) {\n for (var _i = idx; _i < this.glyphs.length; _i++) {\n if (this.glyphs[_i].ligatureID === lastLigID) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[_i].ligatureComponent || 1, lastNumComps);\n this.glyphs[_i].ligatureComponent = ligatureComponent;\n } else {\n break;\n }\n }\n } // Delete the matched glyphs, and replace the current glyph with the ligature glyph\n\n\n for (var _i2 = matched.length - 1; _i2 >= 0; _i2--) {\n this.glyphs.splice(matched[_i2], 1);\n }\n\n this.glyphs[this.glyphIterator.index] = ligatureGlyph;\n return true;\n }\n\n return false;\n }\n\n case 5:\n // Contextual Substitution\n return this.applyContext(table);\n\n case 6:\n // Chaining Contextual Substitution\n return this.applyChainingContext(table);\n\n case 7:\n // Extension Substitution\n return this.applyLookup(table.lookupType, table.extension);\n\n default:\n throw new Error(\"GSUB lookupType \" + lookupType + \" is not supported\");\n }\n };\n\n return GSUBProcessor;\n}(OTProcessor);\n\nfunction _createForOfIteratorHelperLoose$a(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$a(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$a(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$a(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$a(o, minLen); }\n\nfunction _arrayLikeToArray$a(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar GPOSProcessor = /*#__PURE__*/function (_OTProcessor) {\n _inheritsLoose(GPOSProcessor, _OTProcessor);\n\n function GPOSProcessor() {\n return _OTProcessor.apply(this, arguments) || this;\n }\n\n var _proto = GPOSProcessor.prototype;\n\n _proto.applyPositionValue = function applyPositionValue(sequenceIndex, value) {\n var position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];\n\n if (value.xAdvance != null) {\n position.xAdvance += value.xAdvance;\n }\n\n if (value.yAdvance != null) {\n position.yAdvance += value.yAdvance;\n }\n\n if (value.xPlacement != null) {\n position.xOffset += value.xPlacement;\n }\n\n if (value.yPlacement != null) {\n position.yOffset += value.yPlacement;\n } // Adjustments for font variations\n\n\n var variationProcessor = this.font._variationProcessor;\n var variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n\n if (variationProcessor && variationStore) {\n if (value.xPlaDevice) {\n position.xOffset += variationProcessor.getDelta(variationStore, value.xPlaDevice.a, value.xPlaDevice.b);\n }\n\n if (value.yPlaDevice) {\n position.yOffset += variationProcessor.getDelta(variationStore, value.yPlaDevice.a, value.yPlaDevice.b);\n }\n\n if (value.xAdvDevice) {\n position.xAdvance += variationProcessor.getDelta(variationStore, value.xAdvDevice.a, value.xAdvDevice.b);\n }\n\n if (value.yAdvDevice) {\n position.yAdvance += variationProcessor.getDelta(variationStore, value.yAdvDevice.a, value.yAdvDevice.b);\n }\n } // TODO: device tables\n\n };\n\n _proto.applyLookup = function applyLookup(lookupType, table) {\n switch (lookupType) {\n case 1:\n {\n // Single positioning value\n var index = this.coverageIndex(table.coverage);\n\n if (index === -1) {\n return false;\n }\n\n switch (table.version) {\n case 1:\n this.applyPositionValue(0, table.value);\n break;\n\n case 2:\n this.applyPositionValue(0, table.values.get(index));\n break;\n }\n\n return true;\n }\n\n case 2:\n {\n // Pair Adjustment Positioning\n var nextGlyph = this.glyphIterator.peek();\n\n if (!nextGlyph) {\n return false;\n }\n\n var _index = this.coverageIndex(table.coverage);\n\n if (_index === -1) {\n return false;\n }\n\n switch (table.version) {\n case 1:\n // Adjustments for glyph pairs\n var set = table.pairSets.get(_index);\n\n for (var _iterator = _createForOfIteratorHelperLoose$a(set), _step; !(_step = _iterator()).done;) {\n var _pair = _step.value;\n\n if (_pair.secondGlyph === nextGlyph.id) {\n this.applyPositionValue(0, _pair.value1);\n this.applyPositionValue(1, _pair.value2);\n return true;\n }\n }\n\n return false;\n\n case 2:\n // Class pair adjustment\n var class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);\n var class2 = this.getClassID(nextGlyph.id, table.classDef2);\n\n if (class1 === -1 || class2 === -1) {\n return false;\n }\n\n var pair = table.classRecords.get(class1).get(class2);\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n }\n\n case 3:\n {\n // Cursive Attachment Positioning\n var nextIndex = this.glyphIterator.peekIndex();\n var _nextGlyph = this.glyphs[nextIndex];\n\n if (!_nextGlyph) {\n return false;\n }\n\n var curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];\n\n if (!curRecord || !curRecord.exitAnchor) {\n return false;\n }\n\n var nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, _nextGlyph.id)];\n\n if (!nextRecord || !nextRecord.entryAnchor) {\n return false;\n }\n\n var entry = this.getAnchor(nextRecord.entryAnchor);\n var exit = this.getAnchor(curRecord.exitAnchor);\n var cur = this.positions[this.glyphIterator.index];\n var next = this.positions[nextIndex];\n\n switch (this.direction) {\n case 'ltr':\n cur.xAdvance = exit.x + cur.xOffset;\n var d = entry.x + next.xOffset;\n next.xAdvance -= d;\n next.xOffset -= d;\n break;\n\n case 'rtl':\n d = exit.x + cur.xOffset;\n cur.xAdvance -= d;\n cur.xOffset -= d;\n next.xAdvance = entry.x + next.xOffset;\n break;\n }\n\n if (this.glyphIterator.flags.rightToLeft) {\n this.glyphIterator.cur.cursiveAttachment = nextIndex;\n cur.yOffset = entry.y - exit.y;\n } else {\n _nextGlyph.cursiveAttachment = this.glyphIterator.index;\n cur.yOffset = exit.y - entry.y;\n }\n\n return true;\n }\n\n case 4:\n {\n // Mark to base positioning\n var markIndex = this.coverageIndex(table.markCoverage);\n\n if (markIndex === -1) {\n return false;\n } // search backward for a base glyph\n\n\n var baseGlyphIndex = this.glyphIterator.index;\n\n while (--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0)) {\n }\n\n if (baseGlyphIndex < 0) {\n return false;\n }\n\n var baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);\n\n if (baseIndex === -1) {\n return false;\n }\n\n var markRecord = table.markArray[markIndex];\n var baseAnchor = table.baseArray[baseIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n\n case 5:\n {\n // Mark to ligature positioning\n var _markIndex = this.coverageIndex(table.markCoverage);\n\n if (_markIndex === -1) {\n return false;\n } // search backward for a base glyph\n\n\n var _baseGlyphIndex = this.glyphIterator.index;\n\n while (--_baseGlyphIndex >= 0 && this.glyphs[_baseGlyphIndex].isMark) {\n }\n\n if (_baseGlyphIndex < 0) {\n return false;\n }\n\n var ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[_baseGlyphIndex].id);\n\n if (ligIndex === -1) {\n return false;\n }\n\n var ligAttach = table.ligatureArray[ligIndex];\n var markGlyph = this.glyphIterator.cur;\n var ligGlyph = this.glyphs[_baseGlyphIndex];\n var compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && markGlyph.ligatureComponent > 0 ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1 : ligGlyph.codePoints.length - 1;\n var _markRecord = table.markArray[_markIndex];\n var _baseAnchor = ligAttach[compIndex][_markRecord.class];\n this.applyAnchor(_markRecord, _baseAnchor, _baseGlyphIndex);\n return true;\n }\n\n case 6:\n {\n // Mark to mark positioning\n var mark1Index = this.coverageIndex(table.mark1Coverage);\n\n if (mark1Index === -1) {\n return false;\n } // get the previous mark to attach to\n\n\n var prevIndex = this.glyphIterator.peekIndex(-1);\n var prev = this.glyphs[prevIndex];\n\n if (!prev || !prev.isMark) {\n return false;\n }\n\n var _cur = this.glyphIterator.cur; // The following logic was borrowed from Harfbuzz\n\n var good = false;\n\n if (_cur.ligatureID === prev.ligatureID) {\n if (!_cur.ligatureID) {\n // Marks belonging to the same base\n good = true;\n } else if (_cur.ligatureComponent === prev.ligatureComponent) {\n // Marks belonging to the same ligature component\n good = true;\n }\n } else {\n // If ligature ids don't match, it may be the case that one of the marks\n // itself is a ligature, in which case match.\n if (_cur.ligatureID && !_cur.ligatureComponent || prev.ligatureID && !prev.ligatureComponent) {\n good = true;\n }\n }\n\n if (!good) {\n return false;\n }\n\n var mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);\n\n if (mark2Index === -1) {\n return false;\n }\n\n var _markRecord2 = table.mark1Array[mark1Index];\n var _baseAnchor2 = table.mark2Array[mark2Index][_markRecord2.class];\n this.applyAnchor(_markRecord2, _baseAnchor2, prevIndex);\n return true;\n }\n\n case 7:\n // Contextual positioning\n return this.applyContext(table);\n\n case 8:\n // Chaining contextual positioning\n return this.applyChainingContext(table);\n\n case 9:\n // Extension positioning\n return this.applyLookup(table.lookupType, table.extension);\n\n default:\n throw new Error(\"Unsupported GPOS table: \" + lookupType);\n }\n };\n\n _proto.applyAnchor = function applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {\n var baseCoords = this.getAnchor(baseAnchor);\n var markCoords = this.getAnchor(markRecord.markAnchor);\n this.positions[baseGlyphIndex];\n var markPos = this.positions[this.glyphIterator.index];\n markPos.xOffset = baseCoords.x - markCoords.x;\n markPos.yOffset = baseCoords.y - markCoords.y;\n this.glyphIterator.cur.markAttachment = baseGlyphIndex;\n };\n\n _proto.getAnchor = function getAnchor(anchor) {\n // TODO: contour point, device tables\n var x = anchor.xCoordinate;\n var y = anchor.yCoordinate; // Adjustments for font variations\n\n var variationProcessor = this.font._variationProcessor;\n var variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n\n if (variationProcessor && variationStore) {\n if (anchor.xDeviceTable) {\n x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);\n }\n\n if (anchor.yDeviceTable) {\n y += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);\n }\n }\n\n return {\n x: x,\n y: y\n };\n };\n\n _proto.applyFeatures = function applyFeatures(userFeatures, glyphs, advances) {\n _OTProcessor.prototype.applyFeatures.call(this, userFeatures, glyphs, advances);\n\n for (var i = 0; i < this.glyphs.length; i++) {\n this.fixCursiveAttachment(i);\n }\n\n this.fixMarkAttachment();\n };\n\n _proto.fixCursiveAttachment = function fixCursiveAttachment(i) {\n var glyph = this.glyphs[i];\n\n if (glyph.cursiveAttachment != null) {\n var j = glyph.cursiveAttachment;\n glyph.cursiveAttachment = null;\n this.fixCursiveAttachment(j);\n this.positions[i].yOffset += this.positions[j].yOffset;\n }\n };\n\n _proto.fixMarkAttachment = function fixMarkAttachment() {\n for (var i = 0; i < this.glyphs.length; i++) {\n var glyph = this.glyphs[i];\n\n if (glyph.markAttachment != null) {\n var j = glyph.markAttachment;\n this.positions[i].xOffset += this.positions[j].xOffset;\n this.positions[i].yOffset += this.positions[j].yOffset;\n\n if (this.direction === 'ltr') {\n for (var k = j; k < i; k++) {\n this.positions[i].xOffset -= this.positions[k].xAdvance;\n this.positions[i].yOffset -= this.positions[k].yAdvance;\n }\n } else {\n for (var _k = j + 1; _k < i + 1; _k++) {\n this.positions[i].xOffset += this.positions[_k].xAdvance;\n this.positions[i].yOffset += this.positions[_k].yAdvance;\n }\n }\n }\n }\n };\n\n return GPOSProcessor;\n}(OTProcessor);\n\nvar OTLayoutEngine = /*#__PURE__*/function () {\n function OTLayoutEngine(font) {\n this.font = font;\n this.glyphInfos = null;\n this.plan = null;\n this.GSUBProcessor = null;\n this.GPOSProcessor = null;\n this.fallbackPosition = true;\n\n if (font.GSUB) {\n this.GSUBProcessor = new GSUBProcessor(font, font.GSUB);\n }\n\n if (font.GPOS) {\n this.GPOSProcessor = new GPOSProcessor(font, font.GPOS);\n }\n }\n\n var _proto = OTLayoutEngine.prototype;\n\n _proto.setup = function setup(glyphRun) {\n var _this = this;\n\n // Map glyphs to GlyphInfo objects so data can be passed between\n // GSUB and GPOS without mutating the real (shared) Glyph objects.\n this.glyphInfos = glyphRun.glyphs.map(function (glyph) {\n return new GlyphInfo(_this.font, glyph.id, [].concat(glyph.codePoints));\n }); // Select a script based on what is available in GSUB/GPOS.\n\n var script = null;\n\n if (this.GPOSProcessor) {\n script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n }\n\n if (this.GSUBProcessor) {\n script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n } // Choose a shaper based on the script, and setup a shaping plan.\n // This determines which features to apply to which glyphs.\n\n\n this.shaper = choose(script);\n this.plan = new ShapingPlan(this.font, script, glyphRun.direction);\n this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features); // Assign chosen features to output glyph run\n\n for (var key in this.plan.allFeatures) {\n glyphRun.features[key] = true;\n }\n };\n\n _proto.substitute = function substitute(glyphRun) {\n var _this2 = this;\n\n if (this.GSUBProcessor) {\n this.plan.process(this.GSUBProcessor, this.glyphInfos); // Map glyph infos back to normal Glyph objects\n\n glyphRun.glyphs = this.glyphInfos.map(function (glyphInfo) {\n return _this2.font.getGlyph(glyphInfo.id, glyphInfo.codePoints);\n });\n }\n };\n\n _proto.position = function position(glyphRun) {\n if (this.shaper.zeroMarkWidths === 'BEFORE_GPOS') {\n this.zeroMarkAdvances(glyphRun.positions);\n }\n\n if (this.GPOSProcessor) {\n this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);\n }\n\n if (this.shaper.zeroMarkWidths === 'AFTER_GPOS') {\n this.zeroMarkAdvances(glyphRun.positions);\n } // Reverse the glyphs and positions if the script is right-to-left\n\n\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n glyphRun.positions.reverse();\n }\n\n return this.GPOSProcessor && this.GPOSProcessor.features;\n };\n\n _proto.zeroMarkAdvances = function zeroMarkAdvances(positions) {\n for (var i = 0; i < this.glyphInfos.length; i++) {\n if (this.glyphInfos[i].isMark) {\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n };\n\n _proto.cleanup = function cleanup() {\n this.glyphInfos = null;\n this.plan = null;\n this.shaper = null;\n };\n\n _proto.getAvailableFeatures = function getAvailableFeatures(script, language) {\n var features = [];\n\n if (this.GSUBProcessor) {\n this.GSUBProcessor.selectScript(script, language);\n features.push.apply(features, Object.keys(this.GSUBProcessor.features));\n }\n\n if (this.GPOSProcessor) {\n this.GPOSProcessor.selectScript(script, language);\n features.push.apply(features, Object.keys(this.GPOSProcessor.features));\n }\n\n return features;\n };\n\n return OTLayoutEngine;\n}();\n\nfunction _createForOfIteratorHelperLoose$9(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$9(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$9(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$9(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$9(o, minLen); }\n\nfunction _arrayLikeToArray$9(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar LayoutEngine = /*#__PURE__*/function () {\n function LayoutEngine(font) {\n this.font = font;\n this.unicodeLayoutEngine = null;\n this.kernProcessor = null; // Choose an advanced layout engine. We try the AAT morx table first since more\n // scripts are currently supported because the shaping logic is built into the font.\n\n if (this.font.morx) {\n this.engine = new AATLayoutEngine(this.font);\n } else if (this.font.GSUB || this.font.GPOS) {\n this.engine = new OTLayoutEngine(this.font);\n }\n }\n\n var _proto = LayoutEngine.prototype;\n\n _proto.layout = function layout(string, features, script, language, direction) {\n // Make the features parameter optional\n if (typeof features === 'string') {\n direction = language;\n language = script;\n script = features;\n features = [];\n } // Map string to glyphs if needed\n\n\n if (typeof string === 'string') {\n // Attempt to detect the script from the string if not provided.\n if (script == null) {\n script = forString(string);\n }\n\n var glyphs = this.font.glyphsForString(string);\n } else {\n // Attempt to detect the script from the glyph code points if not provided.\n if (script == null) {\n var codePoints = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose$9(string), _step; !(_step = _iterator()).done;) {\n var glyph = _step.value;\n codePoints.push.apply(codePoints, glyph.codePoints);\n }\n\n script = forCodePoints(codePoints);\n }\n\n var glyphs = string;\n }\n\n var glyphRun = new GlyphRun(glyphs, features, script, language, direction); // Return early if there are no glyphs\n\n if (glyphs.length === 0) {\n glyphRun.positions = [];\n return glyphRun;\n } // Setup the advanced layout engine\n\n\n if (this.engine && this.engine.setup) {\n this.engine.setup(glyphRun);\n } // Substitute and position the glyphs\n\n\n this.substitute(glyphRun);\n this.position(glyphRun);\n this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions); // Let the layout engine clean up any state it might have\n\n if (this.engine && this.engine.cleanup) {\n this.engine.cleanup();\n }\n\n return glyphRun;\n };\n\n _proto.substitute = function substitute(glyphRun) {\n // Call the advanced layout engine to make substitutions\n if (this.engine && this.engine.substitute) {\n this.engine.substitute(glyphRun);\n }\n };\n\n _proto.position = function position(glyphRun) {\n // Get initial glyph positions\n glyphRun.positions = glyphRun.glyphs.map(function (glyph) {\n return new GlyphPosition(glyph.advanceWidth);\n });\n var positioned = null; // Call the advanced layout engine. Returns the features applied.\n\n if (this.engine && this.engine.position) {\n positioned = this.engine.position(glyphRun);\n } // if there is no GPOS table, use unicode properties to position marks.\n\n\n if (!positioned && (!this.engine || this.engine.fallbackPosition)) {\n if (!this.unicodeLayoutEngine) {\n this.unicodeLayoutEngine = new UnicodeLayoutEngine(this.font);\n }\n\n this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);\n } // if kerning is not supported by GPOS, do kerning with the TrueType/AAT kern table\n\n\n if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {\n if (!this.kernProcessor) {\n this.kernProcessor = new KernProcessor(this.font);\n }\n\n this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);\n glyphRun.features.kern = true;\n }\n };\n\n _proto.hideDefaultIgnorables = function hideDefaultIgnorables(glyphs, positions) {\n var space = this.font.glyphForCodePoint(0x20);\n\n for (var i = 0; i < glyphs.length; i++) {\n if (this.isDefaultIgnorable(glyphs[i].codePoints[0])) {\n glyphs[i] = space;\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n };\n\n _proto.isDefaultIgnorable = function isDefaultIgnorable(ch) {\n // From DerivedCoreProperties.txt in the Unicode database,\n // minus U+115F, U+1160, U+3164 and U+FFA0, which is what\n // Harfbuzz and Uniscribe do.\n var plane = ch >> 16;\n\n if (plane === 0) {\n // BMP\n switch (ch >> 8) {\n case 0x00:\n return ch === 0x00AD;\n\n case 0x03:\n return ch === 0x034F;\n\n case 0x06:\n return ch === 0x061C;\n\n case 0x17:\n return 0x17B4 <= ch && ch <= 0x17B5;\n\n case 0x18:\n return 0x180B <= ch && ch <= 0x180E;\n\n case 0x20:\n return 0x200B <= ch && ch <= 0x200F || 0x202A <= ch && ch <= 0x202E || 0x2060 <= ch && ch <= 0x206F;\n\n case 0xFE:\n return 0xFE00 <= ch && ch <= 0xFE0F || ch === 0xFEFF;\n\n case 0xFF:\n return 0xFFF0 <= ch && ch <= 0xFFF8;\n\n default:\n return false;\n }\n } else {\n // Other planes\n switch (plane) {\n case 0x01:\n return 0x1BCA0 <= ch && ch <= 0x1BCA3 || 0x1D173 <= ch && ch <= 0x1D17A;\n\n case 0x0E:\n return 0xE0000 <= ch && ch <= 0xE0FFF;\n\n default:\n return false;\n }\n }\n };\n\n _proto.getAvailableFeatures = function getAvailableFeatures(script, language) {\n var features = [];\n\n if (this.engine) {\n features.push.apply(features, this.engine.getAvailableFeatures(script, language));\n }\n\n if (this.font.kern && features.indexOf('kern') === -1) {\n features.push('kern');\n }\n\n return features;\n };\n\n _proto.stringsForGlyph = function stringsForGlyph(gid) {\n var result = new Set();\n\n var codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$9(codePoints), _step2; !(_step2 = _iterator2()).done;) {\n var codePoint = _step2.value;\n result.add(String.fromCodePoint(codePoint));\n }\n\n if (this.engine && this.engine.stringsForGlyph) {\n for (var _iterator3 = _createForOfIteratorHelperLoose$9(this.engine.stringsForGlyph(gid)), _step3; !(_step3 = _iterator3()).done;) {\n var string = _step3.value;\n result.add(string);\n }\n }\n\n return Array.from(result);\n };\n\n return LayoutEngine;\n}();\n\nfunction _createForOfIteratorHelperLoose$8(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$8(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$8(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$8(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$8(o, minLen); }\n\nfunction _arrayLikeToArray$8(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar SVG_COMMANDS = {\n moveTo: 'M',\n lineTo: 'L',\n quadraticCurveTo: 'Q',\n bezierCurveTo: 'C',\n closePath: 'Z'\n};\n/**\n * Path objects are returned by glyphs and represent the actual\n * vector outlines for each glyph in the font. Paths can be converted\n * to SVG path data strings, or to functions that can be applied to\n * render the path to a graphics context.\n */\n\nvar Path = /*#__PURE__*/function () {\n function Path() {\n this.commands = [];\n this._bbox = null;\n this._cbox = null;\n }\n /**\n * Compiles the path to a JavaScript function that can be applied with\n * a graphics context in order to render the path.\n * @return {string}\n */\n\n\n var _proto = Path.prototype;\n\n _proto.toFunction = function toFunction() {\n var _this = this;\n\n return function (ctx) {\n _this.commands.forEach(function (c) {\n return ctx[c.command].apply(ctx, c.args);\n });\n };\n }\n /**\n * Converts the path to an SVG path data string\n * @return {string}\n */\n ;\n\n _proto.toSVG = function toSVG() {\n var cmds = this.commands.map(function (c) {\n var args = c.args.map(function (arg) {\n return Math.round(arg * 100) / 100;\n });\n return \"\" + SVG_COMMANDS[c.command] + args.join(' ');\n });\n return cmds.join('');\n }\n /**\n * Gets the \"control box\" of a path.\n * This is like the bounding box, but it includes all points including\n * control points of bezier segments and is much faster to compute than\n * the real bounding box.\n * @type {BBox}\n */\n ;\n\n /**\n * Applies a mapping function to each point in the path.\n * @param {function} fn\n * @return {Path}\n */\n _proto.mapPoints = function mapPoints(fn) {\n var path = new Path();\n\n for (var _iterator = _createForOfIteratorHelperLoose$8(this.commands), _step; !(_step = _iterator()).done;) {\n var c = _step.value;\n var args = [];\n\n for (var i = 0; i < c.args.length; i += 2) {\n var _fn = fn(c.args[i], c.args[i + 1]),\n x = _fn[0],\n y = _fn[1];\n\n args.push(x, y);\n }\n\n path[c.command].apply(path, args);\n }\n\n return path;\n }\n /**\n * Transforms the path by the given matrix.\n */\n ;\n\n _proto.transform = function transform(m0, m1, m2, m3, m4, m5) {\n return this.mapPoints(function (x, y) {\n x = m0 * x + m2 * y + m4;\n y = m1 * x + m3 * y + m5;\n return [x, y];\n });\n }\n /**\n * Translates the path by the given offset.\n */\n ;\n\n _proto.translate = function translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n }\n /**\n * Rotates the path by the given angle (in radians).\n */\n ;\n\n _proto.rotate = function rotate(angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n return this.transform(cos, sin, -sin, cos, 0, 0);\n }\n /**\n * Scales the path.\n */\n ;\n\n _proto.scale = function scale(scaleX, scaleY) {\n if (scaleY === void 0) {\n scaleY = scaleX;\n }\n\n return this.transform(scaleX, 0, 0, scaleY, 0, 0);\n };\n\n _createClass(Path, [{\n key: \"cbox\",\n get: function get() {\n if (!this._cbox) {\n var cbox = new BBox();\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$8(this.commands), _step2; !(_step2 = _iterator2()).done;) {\n var command = _step2.value;\n\n for (var i = 0; i < command.args.length; i += 2) {\n cbox.addPoint(command.args[i], command.args[i + 1]);\n }\n }\n\n this._cbox = Object.freeze(cbox);\n }\n\n return this._cbox;\n }\n /**\n * Gets the exact bounding box of the path by evaluating curve segments.\n * Slower to compute than the control box, but more accurate.\n * @type {BBox}\n */\n\n }, {\n key: \"bbox\",\n get: function get() {\n if (this._bbox) {\n return this._bbox;\n }\n\n var bbox = new BBox();\n var cx = 0,\n cy = 0;\n\n var f = function f(t) {\n return Math.pow(1 - t, 3) * p0[i] + 3 * Math.pow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * Math.pow(t, 2) * p2[i] + Math.pow(t, 3) * p3[i];\n };\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$8(this.commands), _step3; !(_step3 = _iterator3()).done;) {\n var c = _step3.value;\n\n switch (c.command) {\n case 'moveTo':\n case 'lineTo':\n var _c$args = c.args,\n x = _c$args[0],\n y = _c$args[1];\n bbox.addPoint(x, y);\n cx = x;\n cy = y;\n break;\n\n case 'quadraticCurveTo':\n case 'bezierCurveTo':\n if (c.command === 'quadraticCurveTo') {\n // http://fontforge.org/bezier.html\n var _c$args2 = c.args,\n qp1x = _c$args2[0],\n qp1y = _c$args2[1],\n p3x = _c$args2[2],\n p3y = _c$args2[3];\n var cp1x = cx + 2 / 3 * (qp1x - cx); // CP1 = QP0 + 2/3 * (QP1-QP0)\n\n var cp1y = cy + 2 / 3 * (qp1y - cy);\n var cp2x = p3x + 2 / 3 * (qp1x - p3x); // CP2 = QP2 + 2/3 * (QP1-QP2)\n\n var cp2y = p3y + 2 / 3 * (qp1y - p3y);\n } else {\n var _c$args3 = c.args,\n cp1x = _c$args3[0],\n cp1y = _c$args3[1],\n cp2x = _c$args3[2],\n cp2y = _c$args3[3],\n p3x = _c$args3[4],\n p3y = _c$args3[5];\n } // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n bbox.addPoint(p3x, p3y);\n var p0 = [cx, cy];\n var p1 = [cp1x, cp1y];\n var p2 = [cp2x, cp2y];\n var p3 = [p3x, p3y];\n\n for (var i = 0; i <= 1; i++) {\n var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n\n if (a === 0) {\n if (b === 0) {\n continue;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (i === 0) {\n bbox.addPoint(f(t), bbox.maxY);\n } else if (i === 1) {\n bbox.addPoint(bbox.maxX, f(t));\n }\n }\n\n continue;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n continue;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (i === 0) {\n bbox.addPoint(f(t1), bbox.maxY);\n } else if (i === 1) {\n bbox.addPoint(bbox.maxX, f(t1));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (i === 0) {\n bbox.addPoint(f(t2), bbox.maxY);\n } else if (i === 1) {\n bbox.addPoint(bbox.maxX, f(t2));\n }\n }\n }\n\n cx = p3x;\n cy = p3y;\n break;\n }\n }\n\n return this._bbox = Object.freeze(bbox);\n }\n }]);\n\n return Path;\n}();\n\nvar _loop = function _loop() {\n var command = _arr[_i];\n\n Path.prototype[command] = function () {\n this._bbox = this._cbox = null;\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.commands.push({\n command: command,\n args: args\n });\n return this;\n };\n};\n\nfor (var _i = 0, _arr = ['moveTo', 'lineTo', 'quadraticCurveTo', 'bezierCurveTo', 'closePath']; _i < _arr.length; _i++) {\n _loop();\n}\n\nvar StandardNames = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', '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', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', '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', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n\nvar _class$1;\n/**\n * Glyph objects represent a glyph in the font. They have various properties for accessing metrics and\n * the actual vector path the glyph represents, and methods for rendering the glyph to a graphics context.\n *\n * You do not create glyph objects directly. They are created by various methods on the font object.\n * There are several subclasses of the base Glyph class internally that may be returned depending\n * on the font format, but they all inherit from this class.\n */\n\nvar Glyph = (_class$1 = /*#__PURE__*/function () {\n function Glyph(id, codePoints, font) {\n /**\n * The glyph id in the font\n * @type {number}\n */\n this.id = id;\n /**\n * An array of unicode code points that are represented by this glyph.\n * There can be multiple code points in the case of ligatures and other glyphs\n * that represent multiple visual characters.\n * @type {number[]}\n */\n\n this.codePoints = codePoints;\n this._font = font; // TODO: get this info from GDEF if available\n\n this.isMark = this.codePoints.length > 0 && this.codePoints.every(unicode.isMark);\n this.isLigature = this.codePoints.length > 1;\n }\n\n var _proto = Glyph.prototype;\n\n _proto._getPath = function _getPath() {\n return new Path();\n };\n\n _proto._getCBox = function _getCBox() {\n return this.path.cbox;\n };\n\n _proto._getBBox = function _getBBox() {\n return this.path.bbox;\n };\n\n _proto._getTableMetrics = function _getTableMetrics(table) {\n if (this.id < table.metrics.length) {\n return table.metrics.get(this.id);\n }\n\n var metric = table.metrics.get(table.metrics.length - 1);\n var res = {\n advance: metric ? metric.advance : 0,\n bearing: table.bearings.get(this.id - table.metrics.length) || 0\n };\n return res;\n };\n\n _proto._getMetrics = function _getMetrics(cbox) {\n if (this._metrics) {\n return this._metrics;\n }\n\n var _this$_getTableMetric = this._getTableMetrics(this._font.hmtx),\n advanceWidth = _this$_getTableMetric.advance,\n leftBearing = _this$_getTableMetric.bearing; // For vertical metrics, use vmtx if available, or fall back to global data from OS/2 or hhea\n\n\n if (this._font.vmtx) {\n var _this$_getTableMetric2 = this._getTableMetrics(this._font.vmtx),\n advanceHeight = _this$_getTableMetric2.advance,\n topBearing = _this$_getTableMetric2.bearing;\n } else {\n var os2;\n\n if (typeof cbox === 'undefined' || cbox === null) {\n cbox = this.cbox;\n }\n\n if ((os2 = this._font['OS/2']) && os2.version > 0) {\n var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);\n var topBearing = os2.typoAscender - cbox.maxY;\n } else {\n var hhea = this._font.hhea;\n var advanceHeight = Math.abs(hhea.ascent - hhea.descent);\n var topBearing = hhea.ascent - cbox.maxY;\n }\n }\n\n if (this._font._variationProcessor && this._font.HVAR) {\n advanceWidth += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);\n }\n\n return this._metrics = {\n advanceWidth: advanceWidth,\n advanceHeight: advanceHeight,\n leftBearing: leftBearing,\n topBearing: topBearing\n };\n }\n /**\n * The glyph’s control box.\n * This is often the same as the bounding box, but is faster to compute.\n * Because of the way bezier curves are defined, some of the control points\n * can be outside of the bounding box. Where `bbox` takes this into account,\n * `cbox` does not. Thus, cbox is less accurate, but faster to compute.\n * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)\n * for a more detailed description.\n *\n * @type {BBox}\n */\n ;\n\n /**\n * Returns a path scaled to the given font size.\n * @param {number} size\n * @return {Path}\n */\n _proto.getScaledPath = function getScaledPath(size) {\n var scale = 1 / this._font.unitsPerEm * size;\n return this.path.scale(scale);\n }\n /**\n * The glyph's advance width.\n * @type {number}\n */\n ;\n\n _proto._getName = function _getName() {\n var post = this._font.post;\n\n if (!post) {\n return null;\n }\n\n switch (post.version) {\n case 1:\n return StandardNames[this.id];\n\n case 2:\n var id = post.glyphNameIndex[this.id];\n\n if (id < StandardNames.length) {\n return StandardNames[id];\n }\n\n return post.names[id - StandardNames.length];\n\n case 2.5:\n return StandardNames[this.id + post.offsets[this.id]];\n\n case 4:\n return String.fromCharCode(post.map[this.id]);\n }\n }\n /**\n * The glyph's name\n * @type {string}\n */\n ;\n\n /**\n * Renders the glyph to the given graphics context, at the specified font size.\n * @param {CanvasRenderingContext2d} ctx\n * @param {number} size\n */\n _proto.render = function render(ctx, size) {\n ctx.save();\n var scale = 1 / this._font.head.unitsPerEm * size;\n ctx.scale(scale, scale);\n var fn = this.path.toFunction();\n fn(ctx);\n ctx.fill();\n ctx.restore();\n };\n\n _createClass(Glyph, [{\n key: \"cbox\",\n get: function get() {\n return this._getCBox();\n }\n /**\n * The glyph’s bounding box, i.e. the rectangle that encloses the\n * glyph outline as tightly as possible.\n * @type {BBox}\n */\n\n }, {\n key: \"bbox\",\n get: function get() {\n return this._getBBox();\n }\n /**\n * A vector Path object representing the glyph outline.\n * @type {Path}\n */\n\n }, {\n key: \"path\",\n get: function get() {\n // Cache the path so we only decode it once\n // Decoding is actually performed by subclasses\n return this._getPath();\n }\n }, {\n key: \"advanceWidth\",\n get: function get() {\n return this._getMetrics().advanceWidth;\n }\n /**\n * The glyph's advance height.\n * @type {number}\n */\n\n }, {\n key: \"advanceHeight\",\n get: function get() {\n return this._getMetrics().advanceHeight;\n }\n }, {\n key: \"ligatureCaretPositions\",\n get: function get() {}\n }, {\n key: \"name\",\n get: function get() {\n return this._getName();\n }\n }]);\n\n return Glyph;\n}(), (_applyDecoratedDescriptor(_class$1.prototype, \"cbox\", [cache], Object.getOwnPropertyDescriptor(_class$1.prototype, \"cbox\"), _class$1.prototype), _applyDecoratedDescriptor(_class$1.prototype, \"bbox\", [cache], Object.getOwnPropertyDescriptor(_class$1.prototype, \"bbox\"), _class$1.prototype), _applyDecoratedDescriptor(_class$1.prototype, \"path\", [cache], Object.getOwnPropertyDescriptor(_class$1.prototype, \"path\"), _class$1.prototype), _applyDecoratedDescriptor(_class$1.prototype, \"advanceWidth\", [cache], Object.getOwnPropertyDescriptor(_class$1.prototype, \"advanceWidth\"), _class$1.prototype), _applyDecoratedDescriptor(_class$1.prototype, \"advanceHeight\", [cache], Object.getOwnPropertyDescriptor(_class$1.prototype, \"advanceHeight\"), _class$1.prototype), _applyDecoratedDescriptor(_class$1.prototype, \"name\", [cache], Object.getOwnPropertyDescriptor(_class$1.prototype, \"name\"), _class$1.prototype)), _class$1);\n\nfunction _createForOfIteratorHelperLoose$7(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$7(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$7(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$7(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$7(o, minLen); }\n\nfunction _arrayLikeToArray$7(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar GlyfHeader = new r.Struct({\n numberOfContours: r.int16,\n // if negative, this is a composite glyph\n xMin: r.int16,\n yMin: r.int16,\n xMax: r.int16,\n yMax: r.int16\n}); // Flags for simple glyphs\n\nvar ON_CURVE$1 = 1 << 0;\nvar X_SHORT_VECTOR$1 = 1 << 1;\nvar Y_SHORT_VECTOR$1 = 1 << 2;\nvar REPEAT$1 = 1 << 3;\nvar SAME_X$1 = 1 << 4;\nvar SAME_Y$1 = 1 << 5; // Flags for composite glyphs\n\nvar ARG_1_AND_2_ARE_WORDS = 1 << 0;\nvar WE_HAVE_A_SCALE = 1 << 3;\nvar MORE_COMPONENTS = 1 << 5;\nvar WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nvar WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nvar WE_HAVE_INSTRUCTIONS = 1 << 8;\n\nvar Point$1 = /*#__PURE__*/function () {\n function Point(onCurve, endContour, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n this.onCurve = onCurve;\n this.endContour = endContour;\n this.x = x;\n this.y = y;\n }\n\n var _proto = Point.prototype;\n\n _proto.copy = function copy() {\n return new Point(this.onCurve, this.endContour, this.x, this.y);\n };\n\n return Point;\n}(); // Represents a component in a composite glyph\n\nvar Component = function Component(glyphID, dx, dy) {\n this.glyphID = glyphID;\n this.dx = dx;\n this.dy = dy;\n this.pos = 0;\n this.scaleX = this.scaleY = 1;\n this.scale01 = this.scale10 = 0;\n};\n/**\n * Represents a TrueType glyph.\n */\n\n\nvar TTFGlyph = /*#__PURE__*/function (_Glyph) {\n _inheritsLoose(TTFGlyph, _Glyph);\n\n function TTFGlyph() {\n return _Glyph.apply(this, arguments) || this;\n }\n\n var _proto2 = TTFGlyph.prototype;\n\n // Parses just the glyph header and returns the bounding box\n _proto2._getCBox = function _getCBox(internal) {\n // We need to decode the glyph if variation processing is requested,\n // so it's easier just to recompute the path's cbox after decoding.\n if (this._font._variationProcessor && !internal) {\n return this.path.cbox;\n }\n\n var stream = this._font._getTableStream('glyf');\n\n stream.pos += this._font.loca.offsets[this.id];\n var glyph = GlyfHeader.decode(stream);\n var cbox = new BBox(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);\n return Object.freeze(cbox);\n } // Parses a single glyph coordinate\n ;\n\n _proto2._parseGlyphCoord = function _parseGlyphCoord(stream, prev, short, same) {\n if (short) {\n var val = stream.readUInt8();\n\n if (!same) {\n val = -val;\n }\n\n val += prev;\n } else {\n if (same) {\n var val = prev;\n } else {\n var val = prev + stream.readInt16BE();\n }\n }\n\n return val;\n } // Decodes the glyph data into points for simple glyphs,\n // or components for composite glyphs\n ;\n\n _proto2._decode = function _decode() {\n var glyfPos = this._font.loca.offsets[this.id];\n var nextPos = this._font.loca.offsets[this.id + 1]; // Nothing to do if there is no data for this glyph\n\n if (glyfPos === nextPos) {\n return null;\n }\n\n var stream = this._font._getTableStream('glyf');\n\n stream.pos += glyfPos;\n var startPos = stream.pos;\n var glyph = GlyfHeader.decode(stream);\n\n if (glyph.numberOfContours > 0) {\n this._decodeSimple(glyph, stream);\n } else if (glyph.numberOfContours < 0) {\n this._decodeComposite(glyph, stream, startPos);\n }\n\n return glyph;\n };\n\n _proto2._decodeSimple = function _decodeSimple(glyph, stream) {\n // this is a simple glyph\n glyph.points = [];\n var endPtsOfContours = new r.Array(r.uint16, glyph.numberOfContours).decode(stream);\n glyph.instructions = new r.Array(r.uint8, r.uint16).decode(stream);\n var flags = [];\n var numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n\n while (flags.length < numCoords) {\n var flag = stream.readUInt8();\n flags.push(flag); // check for repeat flag\n\n if (flag & REPEAT$1) {\n var count = stream.readUInt8();\n\n for (var j = 0; j < count; j++) {\n flags.push(flag);\n }\n }\n }\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags[i];\n var point = new Point$1(!!(flag & ON_CURVE$1), endPtsOfContours.indexOf(i) >= 0, 0, 0);\n glyph.points.push(point);\n }\n\n var px = 0;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags[i];\n glyph.points[i].x = px = this._parseGlyphCoord(stream, px, flag & X_SHORT_VECTOR$1, flag & SAME_X$1);\n }\n\n var py = 0;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags[i];\n glyph.points[i].y = py = this._parseGlyphCoord(stream, py, flag & Y_SHORT_VECTOR$1, flag & SAME_Y$1);\n }\n\n if (this._font._variationProcessor) {\n var points = glyph.points.slice();\n points.push.apply(points, this._getPhantomPoints(glyph));\n\n this._font._variationProcessor.transformPoints(this.id, points);\n\n glyph.phantomPoints = points.slice(-4);\n }\n\n return;\n };\n\n _proto2._decodeComposite = function _decodeComposite(glyph, stream, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n // this is a composite glyph\n glyph.components = [];\n var haveInstructions = false;\n var flags = MORE_COMPONENTS;\n\n while (flags & MORE_COMPONENTS) {\n flags = stream.readUInt16BE();\n var gPos = stream.pos - offset;\n var glyphID = stream.readUInt16BE();\n\n if (!haveInstructions) {\n haveInstructions = (flags & WE_HAVE_INSTRUCTIONS) !== 0;\n }\n\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n var dx = stream.readInt16BE();\n var dy = stream.readInt16BE();\n } else {\n var dx = stream.readInt8();\n var dy = stream.readInt8();\n }\n\n var component = new Component(glyphID, dx, dy);\n component.pos = gPos;\n\n if (flags & WE_HAVE_A_SCALE) {\n // fixed number with 14 bits of fraction\n component.scaleX = component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale01 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale10 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n }\n\n glyph.components.push(component);\n }\n\n if (this._font._variationProcessor) {\n var points = [];\n\n for (var j = 0; j < glyph.components.length; j++) {\n var component = glyph.components[j];\n points.push(new Point$1(true, true, component.dx, component.dy));\n }\n\n points.push.apply(points, this._getPhantomPoints(glyph));\n\n this._font._variationProcessor.transformPoints(this.id, points);\n\n glyph.phantomPoints = points.splice(-4, 4);\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i];\n glyph.components[i].dx = point.x;\n glyph.components[i].dy = point.y;\n }\n }\n\n return haveInstructions;\n };\n\n _proto2._getPhantomPoints = function _getPhantomPoints(glyph) {\n var cbox = this._getCBox(true);\n\n if (this._metrics == null) {\n this._metrics = Glyph.prototype._getMetrics.call(this, cbox);\n }\n\n var _this$_metrics = this._metrics,\n advanceWidth = _this$_metrics.advanceWidth,\n advanceHeight = _this$_metrics.advanceHeight,\n leftBearing = _this$_metrics.leftBearing,\n topBearing = _this$_metrics.topBearing;\n return [new Point$1(false, true, glyph.xMin - leftBearing, 0), new Point$1(false, true, glyph.xMin - leftBearing + advanceWidth, 0), new Point$1(false, true, 0, glyph.yMax + topBearing), new Point$1(false, true, 0, glyph.yMax + topBearing + advanceHeight)];\n } // Decodes font data, resolves composite glyphs, and returns an array of contours\n ;\n\n _proto2._getContours = function _getContours() {\n var glyph = this._decode();\n\n if (!glyph) {\n return [];\n }\n\n var points = [];\n\n if (glyph.numberOfContours < 0) {\n // resolve composite glyphs\n for (var _iterator = _createForOfIteratorHelperLoose$7(glyph.components), _step; !(_step = _iterator()).done;) {\n var component = _step.value;\n\n var _contours = this._font.getGlyph(component.glyphID)._getContours();\n\n for (var i = 0; i < _contours.length; i++) {\n var contour = _contours[i];\n\n for (var j = 0; j < contour.length; j++) {\n var _point = contour[j];\n var x = _point.x * component.scaleX + _point.y * component.scale01 + component.dx;\n var y = _point.y * component.scaleY + _point.x * component.scale10 + component.dy;\n points.push(new Point$1(_point.onCurve, _point.endContour, x, y));\n }\n }\n }\n } else {\n points = glyph.points || [];\n } // Recompute and cache metrics if we performed variation processing, and don't have an HVAR table\n\n\n if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {\n this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;\n this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;\n this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;\n this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;\n }\n\n var contours = [];\n var cur = [];\n\n for (var k = 0; k < points.length; k++) {\n var point = points[k];\n cur.push(point);\n\n if (point.endContour) {\n contours.push(cur);\n cur = [];\n }\n }\n\n return contours;\n };\n\n _proto2._getMetrics = function _getMetrics() {\n if (this._metrics) {\n return this._metrics;\n }\n\n var cbox = this._getCBox(true);\n\n _Glyph.prototype._getMetrics.call(this, cbox);\n\n if (this._font._variationProcessor && !this._font.HVAR) {\n // No HVAR table, decode the glyph. This triggers recomputation of metrics.\n this.path;\n }\n\n return this._metrics;\n } // Converts contours to a Path object that can be rendered\n ;\n\n _proto2._getPath = function _getPath() {\n var contours = this._getContours();\n\n var path = new Path();\n\n for (var i = 0; i < contours.length; i++) {\n var contour = contours[i];\n var firstPt = contour[0];\n var lastPt = contour[contour.length - 1];\n var start = 0;\n\n if (firstPt.onCurve) {\n // The first point will be consumed by the moveTo command, so skip in the loop\n var curvePt = null;\n start = 1;\n } else {\n if (lastPt.onCurve) {\n // Start at the last point if the first point is off curve and the last point is on curve\n firstPt = lastPt;\n } else {\n // Start at the middle if both the first and last points are off curve\n firstPt = new Point$1(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);\n }\n\n var curvePt = firstPt;\n }\n\n path.moveTo(firstPt.x, firstPt.y);\n\n for (var j = start; j < contour.length; j++) {\n var pt = contour[j];\n var prevPt = j === 0 ? firstPt : contour[j - 1];\n\n if (prevPt.onCurve && pt.onCurve) {\n path.lineTo(pt.x, pt.y);\n } else if (prevPt.onCurve && !pt.onCurve) {\n var curvePt = pt;\n } else if (!prevPt.onCurve && !pt.onCurve) {\n var midX = (prevPt.x + pt.x) / 2;\n var midY = (prevPt.y + pt.y) / 2;\n path.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);\n var curvePt = pt;\n } else if (!prevPt.onCurve && pt.onCurve) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);\n var curvePt = null;\n } else {\n throw new Error(\"Unknown TTF path state\");\n }\n } // Connect the first and last points\n\n\n if (curvePt) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);\n }\n\n path.closePath();\n }\n\n return path;\n };\n\n return TTFGlyph;\n}(Glyph);\n\n/**\n * Represents an OpenType PostScript glyph, in the Compact Font Format.\n */\n\nvar CFFGlyph = /*#__PURE__*/function (_Glyph) {\n _inheritsLoose(CFFGlyph, _Glyph);\n\n function CFFGlyph() {\n return _Glyph.apply(this, arguments) || this;\n }\n\n var _proto = CFFGlyph.prototype;\n\n _proto._getName = function _getName() {\n if (this._font.CFF2) {\n return _Glyph.prototype._getName.call(this);\n }\n\n return this._font['CFF '].getGlyphName(this.id);\n };\n\n _proto.bias = function bias(s) {\n if (s.length < 1240) {\n return 107;\n } else if (s.length < 33900) {\n return 1131;\n } else {\n return 32768;\n }\n };\n\n _proto._getPath = function _getPath() {\n var cff = this._font.CFF2 || this._font['CFF '];\n var stream = cff.stream;\n var str = cff.topDict.CharStrings[this.id];\n var end = str.offset + str.length;\n stream.pos = str.offset;\n var path = new Path();\n var stack = [];\n var trans = [];\n var width = null;\n var nStems = 0;\n var x = 0,\n y = 0;\n var usedGsubrs;\n var usedSubrs;\n var open = false;\n this._usedGsubrs = usedGsubrs = {};\n this._usedSubrs = usedSubrs = {};\n var gsubrs = cff.globalSubrIndex || [];\n var gsubrsBias = this.bias(gsubrs);\n var privateDict = cff.privateDictForGlyph(this.id) || {};\n var subrs = privateDict.Subrs || [];\n var subrsBias = this.bias(subrs);\n var vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;\n var vsindex = privateDict.vsindex;\n var variationProcessor = this._font._variationProcessor;\n\n function checkWidth() {\n if (width == null) {\n width = stack.shift() + privateDict.nominalWidthX;\n }\n }\n\n function parseStems() {\n if (stack.length % 2 !== 0) {\n checkWidth();\n }\n\n nStems += stack.length >> 1;\n return stack.length = 0;\n }\n\n function moveTo(x, y) {\n if (open) {\n path.closePath();\n }\n\n path.moveTo(x, y);\n open = true;\n }\n\n var parse = function parse() {\n while (stream.pos < end) {\n var op = stream.readUInt8();\n\n if (op < 32) {\n switch (op) {\n case 1: // hstem\n\n case 3: // vstem\n\n case 18: // hstemhm\n\n case 23:\n // vstemhm\n parseStems();\n break;\n\n case 4:\n // vmoveto\n if (stack.length > 1) {\n checkWidth();\n }\n\n y += stack.shift();\n moveTo(x, y);\n break;\n\n case 5:\n // rlineto\n while (stack.length >= 2) {\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n\n break;\n\n case 6: // hlineto\n\n case 7:\n // vlineto\n var phase = op === 6;\n\n while (stack.length >= 1) {\n if (phase) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n\n path.lineTo(x, y);\n phase = !phase;\n }\n\n break;\n\n case 8:\n // rrcurveto\n while (stack.length > 0) {\n var c1x = x + stack.shift();\n var c1y = y + stack.shift();\n var c2x = c1x + stack.shift();\n var c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n\n case 10:\n // callsubr\n var index = stack.pop() + subrsBias;\n var subr = subrs[index];\n\n if (subr) {\n usedSubrs[index] = true;\n var p = stream.pos;\n var e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n\n break;\n\n case 11:\n // return\n if (cff.version >= 2) {\n break;\n }\n\n return;\n\n case 14:\n // endchar\n if (cff.version >= 2) {\n break;\n }\n\n if (stack.length > 0) {\n checkWidth();\n }\n\n if (open) {\n path.closePath();\n open = false;\n }\n\n break;\n\n case 15:\n {\n // vsindex\n if (cff.version < 2) {\n throw new Error('vsindex operator not supported in CFF v1');\n }\n\n vsindex = stack.pop();\n break;\n }\n\n case 16:\n {\n // blend\n if (cff.version < 2) {\n throw new Error('blend operator not supported in CFF v1');\n }\n\n if (!variationProcessor) {\n throw new Error('blend operator in non-variation font');\n }\n\n var blendVector = variationProcessor.getBlendVector(vstore, vsindex);\n var numBlends = stack.pop();\n var numOperands = numBlends * blendVector.length;\n var delta = stack.length - numOperands;\n var base = delta - numBlends;\n\n for (var i = 0; i < numBlends; i++) {\n var sum = stack[base + i];\n\n for (var j = 0; j < blendVector.length; j++) {\n sum += blendVector[j] * stack[delta++];\n }\n\n stack[base + i] = sum;\n }\n\n while (numOperands--) {\n stack.pop();\n }\n\n break;\n }\n\n case 19: // hintmask\n\n case 20:\n // cntrmask\n parseStems();\n stream.pos += nStems + 7 >> 3;\n break;\n\n case 21:\n // rmoveto\n if (stack.length > 2) {\n checkWidth();\n }\n\n x += stack.shift();\n y += stack.shift();\n moveTo(x, y);\n break;\n\n case 22:\n // hmoveto\n if (stack.length > 1) {\n checkWidth();\n }\n\n x += stack.shift();\n moveTo(x, y);\n break;\n\n case 24:\n // rcurveline\n while (stack.length >= 8) {\n var c1x = x + stack.shift();\n var c1y = y + stack.shift();\n var c2x = c1x + stack.shift();\n var c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n break;\n\n case 25:\n // rlinecurve\n while (stack.length >= 8) {\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n\n var c1x = x + stack.shift();\n var c1y = y + stack.shift();\n var c2x = c1x + stack.shift();\n var c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n\n case 26:\n // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n\n while (stack.length >= 4) {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n\n case 27:\n // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n\n while (stack.length >= 4) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n\n break;\n\n case 28:\n // shortint\n stack.push(stream.readInt16BE());\n break;\n\n case 29:\n // callgsubr\n index = stack.pop() + gsubrsBias;\n subr = gsubrs[index];\n\n if (subr) {\n usedGsubrs[index] = true;\n var p = stream.pos;\n var e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n\n break;\n\n case 30: // vhcurveto\n\n case 31:\n // hvcurveto\n phase = op === 31;\n\n while (stack.length >= 4) {\n if (phase) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n } else {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n }\n\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n phase = !phase;\n }\n\n break;\n\n case 12:\n op = stream.readUInt8();\n\n switch (op) {\n case 3:\n // and\n var a = stack.pop();\n var b = stack.pop();\n stack.push(a && b ? 1 : 0);\n break;\n\n case 4:\n // or\n a = stack.pop();\n b = stack.pop();\n stack.push(a || b ? 1 : 0);\n break;\n\n case 5:\n // not\n a = stack.pop();\n stack.push(a ? 0 : 1);\n break;\n\n case 9:\n // abs\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n\n case 10:\n // add\n a = stack.pop();\n b = stack.pop();\n stack.push(a + b);\n break;\n\n case 11:\n // sub\n a = stack.pop();\n b = stack.pop();\n stack.push(a - b);\n break;\n\n case 12:\n // div\n a = stack.pop();\n b = stack.pop();\n stack.push(a / b);\n break;\n\n case 14:\n // neg\n a = stack.pop();\n stack.push(-a);\n break;\n\n case 15:\n // eq\n a = stack.pop();\n b = stack.pop();\n stack.push(a === b ? 1 : 0);\n break;\n\n case 18:\n // drop\n stack.pop();\n break;\n\n case 20:\n // put\n var val = stack.pop();\n var idx = stack.pop();\n trans[idx] = val;\n break;\n\n case 21:\n // get\n idx = stack.pop();\n stack.push(trans[idx] || 0);\n break;\n\n case 22:\n // ifelse\n var s1 = stack.pop();\n var s2 = stack.pop();\n var v1 = stack.pop();\n var v2 = stack.pop();\n stack.push(v1 <= v2 ? s1 : s2);\n break;\n\n case 23:\n // random\n stack.push(Math.random());\n break;\n\n case 24:\n // mul\n a = stack.pop();\n b = stack.pop();\n stack.push(a * b);\n break;\n\n case 26:\n // sqrt\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n\n case 27:\n // dup\n a = stack.pop();\n stack.push(a, a);\n break;\n\n case 28:\n // exch\n a = stack.pop();\n b = stack.pop();\n stack.push(b, a);\n break;\n\n case 29:\n // index\n idx = stack.pop();\n\n if (idx < 0) {\n idx = 0;\n } else if (idx > stack.length - 1) {\n idx = stack.length - 1;\n }\n\n stack.push(stack[idx]);\n break;\n\n case 30:\n // roll\n var n = stack.pop();\n\n var _j = stack.pop();\n\n if (_j >= 0) {\n while (_j > 0) {\n var t = stack[n - 1];\n\n for (var _i = n - 2; _i >= 0; _i--) {\n stack[_i + 1] = stack[_i];\n }\n\n stack[0] = t;\n _j--;\n }\n } else {\n while (_j < 0) {\n var t = stack[0];\n\n for (var _i2 = 0; _i2 <= n; _i2++) {\n stack[_i2] = stack[_i2 + 1];\n }\n\n stack[n - 1] = t;\n _j++;\n }\n }\n\n break;\n\n case 34:\n // hflex\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n var c3x = c2x + stack.shift();\n var c3y = c2y;\n var c4x = c3x + stack.shift();\n var c4y = c3y;\n var c5x = c4x + stack.shift();\n var c5y = c4y;\n var c6x = c5x + stack.shift();\n var c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n\n case 35:\n // flex\n var pts = [];\n\n for (var _i3 = 0; _i3 <= 5; _i3++) {\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n\n path.bezierCurveTo.apply(path, pts.slice(0, 6));\n path.bezierCurveTo.apply(path, pts.slice(6));\n stack.shift(); // fd\n\n break;\n\n case 36:\n // hflex1\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y + stack.shift();\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n\n case 37:\n // flex1\n var startx = x;\n var starty = y;\n pts = [];\n\n for (var _i4 = 0; _i4 <= 4; _i4++) {\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n\n if (Math.abs(x - startx) > Math.abs(y - starty)) {\n // horizontal\n x += stack.shift();\n y = starty;\n } else {\n x = startx;\n y += stack.shift();\n }\n\n pts.push(x, y);\n path.bezierCurveTo.apply(path, pts.slice(0, 6));\n path.bezierCurveTo.apply(path, pts.slice(6));\n break;\n\n default:\n throw new Error(\"Unknown op: 12 \" + op);\n }\n\n break;\n\n default:\n throw new Error(\"Unknown op: \" + op);\n }\n } else if (op < 247) {\n stack.push(op - 139);\n } else if (op < 251) {\n var b1 = stream.readUInt8();\n stack.push((op - 247) * 256 + b1 + 108);\n } else if (op < 255) {\n var b1 = stream.readUInt8();\n stack.push(-(op - 251) * 256 - b1 - 108);\n } else {\n stack.push(stream.readInt32BE() / 65536);\n }\n }\n };\n\n parse();\n\n if (open) {\n path.closePath();\n }\n\n return path;\n };\n\n return CFFGlyph;\n}(Glyph);\n\nvar SBIXImage = new r.Struct({\n originX: r.uint16,\n originY: r.uint16,\n type: new r.String(4),\n data: new r.Buffer(function (t) {\n return t.parent.buflen - t._currentOffset;\n })\n});\n/**\n * Represents a color (e.g. emoji) glyph in Apple's SBIX format.\n */\n\nvar SBIXGlyph = /*#__PURE__*/function (_TTFGlyph) {\n _inheritsLoose(SBIXGlyph, _TTFGlyph);\n\n function SBIXGlyph() {\n return _TTFGlyph.apply(this, arguments) || this;\n }\n\n var _proto = SBIXGlyph.prototype;\n\n /**\n * Returns an object representing a glyph image at the given point size.\n * The object has a data property with a Buffer containing the actual image data,\n * along with the image type, and origin.\n *\n * @param {number} size\n * @return {object}\n */\n _proto.getImageForSize = function getImageForSize(size) {\n for (var i = 0; i < this._font.sbix.imageTables.length; i++) {\n var table = this._font.sbix.imageTables[i];\n\n if (table.ppem >= size) {\n break;\n }\n }\n\n var offsets = table.imageOffsets;\n var start = offsets[this.id];\n var end = offsets[this.id + 1];\n\n if (start === end) {\n return null;\n }\n\n this._font.stream.pos = start;\n return SBIXImage.decode(this._font.stream, {\n buflen: end - start\n });\n };\n\n _proto.render = function render(ctx, size) {\n var img = this.getImageForSize(size);\n\n if (img != null) {\n var scale = size / this._font.unitsPerEm;\n ctx.image(img.data, {\n height: size,\n x: img.originX,\n y: (this.bbox.minY - img.originY) * scale\n });\n }\n\n if (this._font.sbix.flags.renderOutlines) {\n _TTFGlyph.prototype.render.call(this, ctx, size);\n }\n };\n\n return SBIXGlyph;\n}(TTFGlyph);\n\nfunction _createForOfIteratorHelperLoose$6(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$6(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$6(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$6(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$6(o, minLen); }\n\nfunction _arrayLikeToArray$6(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar COLRLayer = function COLRLayer(glyph, color) {\n this.glyph = glyph;\n this.color = color;\n};\n/**\n * Represents a color (e.g. emoji) glyph in Microsoft's COLR format.\n * Each glyph in this format contain a list of colored layers, each\n * of which is another vector glyph.\n */\n\n\nvar COLRGlyph = /*#__PURE__*/function (_Glyph) {\n _inheritsLoose(COLRGlyph, _Glyph);\n\n function COLRGlyph() {\n return _Glyph.apply(this, arguments) || this;\n }\n\n var _proto = COLRGlyph.prototype;\n\n _proto._getBBox = function _getBBox() {\n var bbox = new BBox();\n\n for (var i = 0; i < this.layers.length; i++) {\n var layer = this.layers[i];\n var b = layer.glyph.bbox;\n bbox.addPoint(b.minX, b.minY);\n bbox.addPoint(b.maxX, b.maxY);\n }\n\n return bbox;\n }\n /**\n * Returns an array of objects containing the glyph and color for\n * each layer in the composite color glyph.\n * @type {object[]}\n */\n ;\n\n _proto.render = function render(ctx, size) {\n for (var _iterator = _createForOfIteratorHelperLoose$6(this.layers), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n glyph = _step$value.glyph,\n color = _step$value.color;\n ctx.fillColor([color.red, color.green, color.blue], color.alpha / 255 * 100);\n glyph.render(ctx, size);\n }\n\n return;\n };\n\n _createClass(COLRGlyph, [{\n key: \"layers\",\n get: function get() {\n var cpal = this._font.CPAL;\n var colr = this._font.COLR;\n var low = 0;\n var high = colr.baseGlyphRecord.length - 1;\n\n while (low <= high) {\n var mid = low + high >> 1;\n var rec = colr.baseGlyphRecord[mid];\n\n if (this.id < rec.gid) {\n high = mid - 1;\n } else if (this.id > rec.gid) {\n low = mid + 1;\n } else {\n var baseLayer = rec;\n break;\n }\n } // if base glyph not found in COLR table,\n // default to normal glyph from glyf or CFF\n\n\n if (baseLayer == null) {\n var g = this._font._getBaseGlyph(this.id);\n\n var color = {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 255\n };\n return [new COLRLayer(g, color)];\n } // otherwise, return an array of all the layers\n\n\n var layers = [];\n\n for (var i = baseLayer.firstLayerIndex; i < baseLayer.firstLayerIndex + baseLayer.numLayers; i++) {\n var rec = colr.layerRecords[i];\n var color = cpal.colorRecords[rec.paletteIndex];\n\n var g = this._font._getBaseGlyph(rec.gid);\n\n layers.push(new COLRLayer(g, color));\n }\n\n return layers;\n }\n }]);\n\n return COLRGlyph;\n}(Glyph);\n\nvar TUPLES_SHARE_POINT_NUMBERS = 0x8000;\nvar TUPLE_COUNT_MASK = 0x0fff;\nvar EMBEDDED_TUPLE_COORD = 0x8000;\nvar INTERMEDIATE_TUPLE = 0x4000;\nvar PRIVATE_POINT_NUMBERS = 0x2000;\nvar TUPLE_INDEX_MASK = 0x0fff;\nvar POINTS_ARE_WORDS = 0x80;\nvar POINT_RUN_COUNT_MASK = 0x7f;\nvar DELTAS_ARE_ZERO = 0x80;\nvar DELTAS_ARE_WORDS = 0x40;\nvar DELTA_RUN_COUNT_MASK = 0x3f;\n/**\n * This class is transforms TrueType glyphs according to the data from\n * the Apple Advanced Typography variation tables (fvar, gvar, and avar).\n * These tables allow infinite adjustments to glyph weight, width, slant,\n * and optical size without the designer needing to specify every exact style.\n *\n * Apple's documentation for these tables is not great, so thanks to the\n * Freetype project for figuring much of this out.\n *\n * @private\n */\n\nvar GlyphVariationProcessor = /*#__PURE__*/function () {\n function GlyphVariationProcessor(font, coords) {\n this.font = font;\n this.normalizedCoords = this.normalizeCoords(coords);\n this.blendVectors = new Map();\n }\n\n var _proto = GlyphVariationProcessor.prototype;\n\n _proto.normalizeCoords = function normalizeCoords(coords) {\n // the default mapping is linear along each axis, in two segments:\n // from the minValue to defaultValue, and from defaultValue to maxValue.\n var normalized = [];\n\n for (var i = 0; i < this.font.fvar.axis.length; i++) {\n var axis = this.font.fvar.axis[i];\n\n if (coords[i] < axis.defaultValue) {\n normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.defaultValue - axis.minValue + Number.EPSILON));\n } else {\n normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.maxValue - axis.defaultValue + Number.EPSILON));\n }\n } // if there is an avar table, the normalized value is calculated\n // by interpolating between the two nearest mapped values.\n\n\n if (this.font.avar) {\n for (var i = 0; i < this.font.avar.segment.length; i++) {\n var segment = this.font.avar.segment[i];\n\n for (var j = 0; j < segment.correspondence.length; j++) {\n var pair = segment.correspondence[j];\n\n if (j >= 1 && normalized[i] < pair.fromCoord) {\n var prev = segment.correspondence[j - 1];\n normalized[i] = ((normalized[i] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + Number.EPSILON) / (pair.fromCoord - prev.fromCoord + Number.EPSILON) + prev.toCoord;\n break;\n }\n }\n }\n }\n\n return normalized;\n };\n\n _proto.transformPoints = function transformPoints(gid, glyphPoints) {\n if (!this.font.fvar || !this.font.gvar) {\n return;\n }\n\n var gvar = this.font.gvar;\n\n if (gid >= gvar.glyphCount) {\n return;\n }\n\n var offset = gvar.offsets[gid];\n\n if (offset === gvar.offsets[gid + 1]) {\n return;\n } // Read the gvar data for this glyph\n\n\n var stream = this.font.stream;\n stream.pos = offset;\n\n if (stream.pos >= stream.length) {\n return;\n }\n\n var tupleCount = stream.readUInt16BE();\n var offsetToData = offset + stream.readUInt16BE();\n\n if (tupleCount & TUPLES_SHARE_POINT_NUMBERS) {\n var here = stream.pos;\n stream.pos = offsetToData;\n var sharedPoints = this.decodePoints();\n offsetToData = stream.pos;\n stream.pos = here;\n }\n\n var origPoints = glyphPoints.map(function (pt) {\n return pt.copy();\n });\n tupleCount &= TUPLE_COUNT_MASK;\n\n for (var i = 0; i < tupleCount; i++) {\n var tupleDataSize = stream.readUInt16BE();\n var tupleIndex = stream.readUInt16BE();\n\n if (tupleIndex & EMBEDDED_TUPLE_COORD) {\n var tupleCoords = [];\n\n for (var a = 0; a < gvar.axisCount; a++) {\n tupleCoords.push(stream.readInt16BE() / 16384);\n }\n } else {\n if ((tupleIndex & TUPLE_INDEX_MASK) >= gvar.globalCoordCount) {\n throw new Error('Invalid gvar table');\n }\n\n var tupleCoords = gvar.globalCoords[tupleIndex & TUPLE_INDEX_MASK];\n }\n\n if (tupleIndex & INTERMEDIATE_TUPLE) {\n var startCoords = [];\n\n for (var _a = 0; _a < gvar.axisCount; _a++) {\n startCoords.push(stream.readInt16BE() / 16384);\n }\n\n var endCoords = [];\n\n for (var _a2 = 0; _a2 < gvar.axisCount; _a2++) {\n endCoords.push(stream.readInt16BE() / 16384);\n }\n } // Get the factor at which to apply this tuple\n\n\n var factor = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);\n\n if (factor === 0) {\n offsetToData += tupleDataSize;\n continue;\n }\n\n var here = stream.pos;\n stream.pos = offsetToData;\n\n if (tupleIndex & PRIVATE_POINT_NUMBERS) {\n var points = this.decodePoints();\n } else {\n var points = sharedPoints;\n } // points.length = 0 means there are deltas for all points\n\n\n var nPoints = points.length === 0 ? glyphPoints.length : points.length;\n var xDeltas = this.decodeDeltas(nPoints);\n var yDeltas = this.decodeDeltas(nPoints);\n\n if (points.length === 0) {\n // all points\n for (var _i = 0; _i < glyphPoints.length; _i++) {\n var point = glyphPoints[_i];\n point.x += Math.round(xDeltas[_i] * factor);\n point.y += Math.round(yDeltas[_i] * factor);\n }\n } else {\n var outPoints = origPoints.map(function (pt) {\n return pt.copy();\n });\n var hasDelta = glyphPoints.map(function () {\n return false;\n });\n\n for (var _i2 = 0; _i2 < points.length; _i2++) {\n var idx = points[_i2];\n\n if (idx < glyphPoints.length) {\n var _point = outPoints[idx];\n hasDelta[idx] = true;\n _point.x += Math.round(xDeltas[_i2] * factor);\n _point.y += Math.round(yDeltas[_i2] * factor);\n }\n }\n\n this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);\n\n for (var _i3 = 0; _i3 < glyphPoints.length; _i3++) {\n var deltaX = outPoints[_i3].x - origPoints[_i3].x;\n var deltaY = outPoints[_i3].y - origPoints[_i3].y;\n glyphPoints[_i3].x += deltaX;\n glyphPoints[_i3].y += deltaY;\n }\n }\n\n offsetToData += tupleDataSize;\n stream.pos = here;\n }\n };\n\n _proto.decodePoints = function decodePoints() {\n var stream = this.font.stream;\n var count = stream.readUInt8();\n\n if (count & POINTS_ARE_WORDS) {\n count = (count & POINT_RUN_COUNT_MASK) << 8 | stream.readUInt8();\n }\n\n var points = new Uint16Array(count);\n var i = 0;\n var point = 0;\n\n while (i < count) {\n var run = stream.readUInt8();\n var runCount = (run & POINT_RUN_COUNT_MASK) + 1;\n var fn = run & POINTS_ARE_WORDS ? stream.readUInt16 : stream.readUInt8;\n\n for (var j = 0; j < runCount && i < count; j++) {\n point += fn.call(stream);\n points[i++] = point;\n }\n }\n\n return points;\n };\n\n _proto.decodeDeltas = function decodeDeltas(count) {\n var stream = this.font.stream;\n var i = 0;\n var deltas = new Int16Array(count);\n\n while (i < count) {\n var run = stream.readUInt8();\n var runCount = (run & DELTA_RUN_COUNT_MASK) + 1;\n\n if (run & DELTAS_ARE_ZERO) {\n i += runCount;\n } else {\n var fn = run & DELTAS_ARE_WORDS ? stream.readInt16BE : stream.readInt8;\n\n for (var j = 0; j < runCount && i < count; j++) {\n deltas[i++] = fn.call(stream);\n }\n }\n }\n\n return deltas;\n };\n\n _proto.tupleFactor = function tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {\n var normalized = this.normalizedCoords;\n var gvar = this.font.gvar;\n var factor = 1;\n\n for (var i = 0; i < gvar.axisCount; i++) {\n if (tupleCoords[i] === 0) {\n continue;\n }\n\n if (normalized[i] === 0) {\n return 0;\n }\n\n if ((tupleIndex & INTERMEDIATE_TUPLE) === 0) {\n if (normalized[i] < Math.min(0, tupleCoords[i]) || normalized[i] > Math.max(0, tupleCoords[i])) {\n return 0;\n }\n\n factor = (factor * normalized[i] + Number.EPSILON) / (tupleCoords[i] + Number.EPSILON);\n } else {\n if (normalized[i] < startCoords[i] || normalized[i] > endCoords[i]) {\n return 0;\n } else if (normalized[i] < tupleCoords[i]) {\n factor = factor * (normalized[i] - startCoords[i] + Number.EPSILON) / (tupleCoords[i] - startCoords[i] + Number.EPSILON);\n } else {\n factor = factor * (endCoords[i] - normalized[i] + Number.EPSILON) / (endCoords[i] - tupleCoords[i] + Number.EPSILON);\n }\n }\n }\n\n return factor;\n } // Interpolates points without delta values.\n // Needed for the Ø and Q glyphs in Skia.\n // Algorithm from Freetype.\n ;\n\n _proto.interpolateMissingDeltas = function interpolateMissingDeltas(points, inPoints, hasDelta) {\n if (points.length === 0) {\n return;\n }\n\n var point = 0;\n\n while (point < points.length) {\n var firstPoint = point; // find the end point of the contour\n\n var endPoint = point;\n var pt = points[endPoint];\n\n while (!pt.endContour) {\n pt = points[++endPoint];\n } // find the first point that has a delta\n\n\n while (point <= endPoint && !hasDelta[point]) {\n point++;\n }\n\n if (point > endPoint) {\n continue;\n }\n\n var firstDelta = point;\n var curDelta = point;\n point++;\n\n while (point <= endPoint) {\n // find the next point with a delta, and interpolate intermediate points\n if (hasDelta[point]) {\n this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);\n curDelta = point;\n }\n\n point++;\n } // shift contour if we only have a single delta\n\n\n if (curDelta === firstDelta) {\n this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);\n } else {\n // otherwise, handle the remaining points at the end and beginning of the contour\n this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);\n\n if (firstDelta > 0) {\n this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);\n }\n }\n\n point = endPoint + 1;\n }\n };\n\n _proto.deltaInterpolate = function deltaInterpolate(p1, p2, ref1, ref2, inPoints, outPoints) {\n if (p1 > p2) {\n return;\n }\n\n var iterable = ['x', 'y'];\n\n for (var i = 0; i < iterable.length; i++) {\n var k = iterable[i];\n\n if (inPoints[ref1][k] > inPoints[ref2][k]) {\n var p = ref1;\n ref1 = ref2;\n ref2 = p;\n }\n\n var in1 = inPoints[ref1][k];\n var in2 = inPoints[ref2][k];\n var out1 = outPoints[ref1][k];\n var out2 = outPoints[ref2][k]; // If the reference points have the same coordinate but different\n // delta, inferred delta is zero. Otherwise interpolate.\n\n if (in1 !== in2 || out1 === out2) {\n var scale = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);\n\n for (var _p = p1; _p <= p2; _p++) {\n var out = inPoints[_p][k];\n\n if (out <= in1) {\n out += out1 - in1;\n } else if (out >= in2) {\n out += out2 - in2;\n } else {\n out = out1 + (out - in1) * scale;\n }\n\n outPoints[_p][k] = out;\n }\n }\n }\n };\n\n _proto.deltaShift = function deltaShift(p1, p2, ref, inPoints, outPoints) {\n var deltaX = outPoints[ref].x - inPoints[ref].x;\n var deltaY = outPoints[ref].y - inPoints[ref].y;\n\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n for (var p = p1; p <= p2; p++) {\n if (p !== ref) {\n outPoints[p].x += deltaX;\n outPoints[p].y += deltaY;\n }\n }\n };\n\n _proto.getAdvanceAdjustment = function getAdvanceAdjustment(gid, table) {\n var outerIndex, innerIndex;\n\n if (table.advanceWidthMapping) {\n var idx = gid;\n\n if (idx >= table.advanceWidthMapping.mapCount) {\n idx = table.advanceWidthMapping.mapCount - 1;\n }\n\n table.advanceWidthMapping.entryFormat;\n var _table$advanceWidthMa = table.advanceWidthMapping.mapData[idx];\n outerIndex = _table$advanceWidthMa.outerIndex;\n innerIndex = _table$advanceWidthMa.innerIndex;\n } else {\n outerIndex = 0;\n innerIndex = gid;\n }\n\n return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);\n } // See pseudo code from `Font Variations Overview'\n // in the OpenType specification.\n ;\n\n _proto.getDelta = function getDelta(itemStore, outerIndex, innerIndex) {\n if (outerIndex >= itemStore.itemVariationData.length) {\n return 0;\n }\n\n var varData = itemStore.itemVariationData[outerIndex];\n\n if (innerIndex >= varData.deltaSets.length) {\n return 0;\n }\n\n var deltaSet = varData.deltaSets[innerIndex];\n var blendVector = this.getBlendVector(itemStore, outerIndex);\n var netAdjustment = 0;\n\n for (var master = 0; master < varData.regionIndexCount; master++) {\n netAdjustment += deltaSet.deltas[master] * blendVector[master];\n }\n\n return netAdjustment;\n };\n\n _proto.getBlendVector = function getBlendVector(itemStore, outerIndex) {\n var varData = itemStore.itemVariationData[outerIndex];\n\n if (this.blendVectors.has(varData)) {\n return this.blendVectors.get(varData);\n }\n\n var normalizedCoords = this.normalizedCoords;\n var blendVector = []; // outer loop steps through master designs to be blended\n\n for (var master = 0; master < varData.regionIndexCount; master++) {\n var scalar = 1;\n var regionIndex = varData.regionIndexes[master];\n var axes = itemStore.variationRegionList.variationRegions[regionIndex]; // inner loop steps through axes in this region\n\n for (var j = 0; j < axes.length; j++) {\n var axis = axes[j];\n var axisScalar = void 0; // compute the scalar contribution of this axis\n // ignore invalid ranges\n\n if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) {\n axisScalar = 1;\n } else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) {\n axisScalar = 1; // peak of 0 means ignore this axis\n } else if (axis.peakCoord === 0) {\n axisScalar = 1; // ignore this region if coords are out of range\n } else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) {\n axisScalar = 0; // calculate a proportional factor\n } else {\n if (normalizedCoords[j] === axis.peakCoord) {\n axisScalar = 1;\n } else if (normalizedCoords[j] < axis.peakCoord) {\n axisScalar = (normalizedCoords[j] - axis.startCoord + Number.EPSILON) / (axis.peakCoord - axis.startCoord + Number.EPSILON);\n } else {\n axisScalar = (axis.endCoord - normalizedCoords[j] + Number.EPSILON) / (axis.endCoord - axis.peakCoord + Number.EPSILON);\n }\n } // take product of all the axis scalars\n\n\n scalar *= axisScalar;\n }\n\n blendVector[master] = scalar;\n }\n\n this.blendVectors.set(varData, blendVector);\n return blendVector;\n };\n\n return GlyphVariationProcessor;\n}();\n\nvar resolved = Promise.resolve();\n\nvar Subset = /*#__PURE__*/function () {\n function Subset(font) {\n this.font = font;\n this.glyphs = [];\n this.mapping = {}; // always include the missing glyph\n\n this.includeGlyph(0);\n }\n\n var _proto = Subset.prototype;\n\n _proto.includeGlyph = function includeGlyph(glyph) {\n if (typeof glyph === 'object') {\n glyph = glyph.id;\n }\n\n if (this.mapping[glyph] == null) {\n this.glyphs.push(glyph);\n this.mapping[glyph] = this.glyphs.length - 1;\n }\n\n return this.mapping[glyph];\n };\n\n _proto.encodeStream = function encodeStream() {\n var _this = this;\n\n var s = new r.EncodeStream();\n resolved.then(function () {\n _this.encode(s);\n\n return s.end();\n });\n return s;\n };\n\n return Subset;\n}();\n\nvar ON_CURVE = 1 << 0;\nvar X_SHORT_VECTOR = 1 << 1;\nvar Y_SHORT_VECTOR = 1 << 2;\nvar REPEAT = 1 << 3;\nvar SAME_X = 1 << 4;\nvar SAME_Y = 1 << 5;\n\nvar Point = /*#__PURE__*/function () {\n function Point() {}\n\n Point.size = function size(val) {\n return val >= 0 && val <= 255 ? 1 : 2;\n };\n\n Point.encode = function encode(stream, value) {\n if (value >= 0 && value <= 255) {\n stream.writeUInt8(value);\n } else {\n stream.writeInt16BE(value);\n }\n };\n\n return Point;\n}();\n\nvar Glyf = new r.Struct({\n numberOfContours: r.int16,\n // if negative, this is a composite glyph\n xMin: r.int16,\n yMin: r.int16,\n xMax: r.int16,\n yMax: r.int16,\n endPtsOfContours: new r.Array(r.uint16, 'numberOfContours'),\n instructions: new r.Array(r.uint8, r.uint16),\n flags: new r.Array(r.uint8, 0),\n xPoints: new r.Array(Point, 0),\n yPoints: new r.Array(Point, 0)\n});\n/**\n * Encodes TrueType glyph outlines\n */\n\nvar TTFGlyphEncoder = /*#__PURE__*/function () {\n function TTFGlyphEncoder() {}\n\n var _proto = TTFGlyphEncoder.prototype;\n\n _proto.encodeSimple = function encodeSimple(path, instructions) {\n if (instructions === void 0) {\n instructions = [];\n }\n\n var endPtsOfContours = [];\n var xPoints = [];\n var yPoints = [];\n var flags = [];\n var same = 0;\n var lastX = 0,\n lastY = 0,\n lastFlag = 0;\n var pointCount = 0;\n\n for (var i = 0; i < path.commands.length; i++) {\n var c = path.commands[i];\n\n for (var j = 0; j < c.args.length; j += 2) {\n var x = c.args[j];\n var y = c.args[j + 1];\n var flag = 0; // If the ending point of a quadratic curve is the midpoint\n // between the control point and the control point of the next\n // quadratic curve, we can omit the ending point.\n\n if (c.command === 'quadraticCurveTo' && j === 2) {\n var next = path.commands[i + 1];\n\n if (next && next.command === 'quadraticCurveTo') {\n var midX = (lastX + next.args[0]) / 2;\n var midY = (lastY + next.args[1]) / 2;\n\n if (x === midX && y === midY) {\n continue;\n }\n }\n } // All points except control points are on curve.\n\n\n if (!(c.command === 'quadraticCurveTo' && j === 0)) {\n flag |= ON_CURVE;\n }\n\n flag = this._encodePoint(x, lastX, xPoints, flag, X_SHORT_VECTOR, SAME_X);\n flag = this._encodePoint(y, lastY, yPoints, flag, Y_SHORT_VECTOR, SAME_Y);\n\n if (flag === lastFlag && same < 255) {\n flags[flags.length - 1] |= REPEAT;\n same++;\n } else {\n if (same > 0) {\n flags.push(same);\n same = 0;\n }\n\n flags.push(flag);\n lastFlag = flag;\n }\n\n lastX = x;\n lastY = y;\n pointCount++;\n }\n\n if (c.command === 'closePath') {\n endPtsOfContours.push(pointCount - 1);\n }\n } // Close the path if the last command didn't already\n\n\n if (path.commands.length > 1 && path.commands[path.commands.length - 1].command !== 'closePath') {\n endPtsOfContours.push(pointCount - 1);\n }\n\n var bbox = path.bbox;\n var glyf = {\n numberOfContours: endPtsOfContours.length,\n xMin: bbox.minX,\n yMin: bbox.minY,\n xMax: bbox.maxX,\n yMax: bbox.maxY,\n endPtsOfContours: endPtsOfContours,\n instructions: instructions,\n flags: flags,\n xPoints: xPoints,\n yPoints: yPoints\n };\n var size = Glyf.size(glyf);\n var tail = 4 - size % 4;\n var stream = new r.EncodeStream(size + tail);\n Glyf.encode(stream, glyf); // Align to 4-byte length\n\n if (tail !== 0) {\n stream.fill(0, tail);\n }\n\n return stream.buffer;\n };\n\n _proto._encodePoint = function _encodePoint(value, last, points, flag, shortFlag, sameFlag) {\n var diff = value - last;\n\n if (value === last) {\n flag |= sameFlag;\n } else {\n if (-255 <= diff && diff <= 255) {\n flag |= shortFlag;\n\n if (diff < 0) {\n diff = -diff;\n } else {\n flag |= sameFlag;\n }\n }\n\n points.push(diff);\n }\n\n return flag;\n };\n\n return TTFGlyphEncoder;\n}();\n\nfunction _createForOfIteratorHelperLoose$5(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$5(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$5(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$5(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$5(o, minLen); }\n\nfunction _arrayLikeToArray$5(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar TTFSubset = /*#__PURE__*/function (_Subset) {\n _inheritsLoose(TTFSubset, _Subset);\n\n function TTFSubset(font) {\n var _this;\n\n _this = _Subset.call(this, font) || this;\n _this.glyphEncoder = new TTFGlyphEncoder();\n return _this;\n }\n\n var _proto = TTFSubset.prototype;\n\n _proto._addGlyph = function _addGlyph(gid) {\n var glyph = this.font.getGlyph(gid);\n\n var glyf = glyph._decode(); // get the offset to the glyph from the loca table\n\n\n var curOffset = this.font.loca.offsets[gid];\n var nextOffset = this.font.loca.offsets[gid + 1];\n\n var stream = this.font._getTableStream('glyf');\n\n stream.pos += curOffset;\n var buffer = stream.readBuffer(nextOffset - curOffset); // if it is a compound glyph, include its components\n\n if (glyf && glyf.numberOfContours < 0) {\n buffer = Buffer.from(buffer);\n\n for (var _iterator = _createForOfIteratorHelperLoose$5(glyf.components), _step; !(_step = _iterator()).done;) {\n var component = _step.value;\n gid = this.includeGlyph(component.glyphID);\n buffer.writeUInt16BE(gid, component.pos);\n }\n } else if (glyf && this.font._variationProcessor) {\n // If this is a TrueType variation glyph, re-encode the path\n buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);\n }\n\n this.glyf.push(buffer);\n this.loca.offsets.push(this.offset);\n this.hmtx.metrics.push({\n advance: glyph.advanceWidth,\n bearing: glyph._getMetrics().leftBearing\n });\n this.offset += buffer.length;\n return this.glyf.length - 1;\n };\n\n _proto.encode = function encode(stream) {\n // tables required by PDF spec:\n // head, hhea, loca, maxp, cvt , prep, glyf, hmtx, fpgm\n //\n // additional tables required for standalone fonts:\n // name, cmap, OS/2, post\n this.glyf = [];\n this.offset = 0;\n this.loca = {\n offsets: [],\n version: this.font.loca.version\n };\n this.hmtx = {\n metrics: [],\n bearings: []\n }; // include all the glyphs\n // not using a for loop because we need to support adding more\n // glyphs to the array as we go, and CoffeeScript caches the length.\n\n var i = 0;\n\n while (i < this.glyphs.length) {\n this._addGlyph(this.glyphs[i++]);\n }\n\n var maxp = cloneDeep(this.font.maxp);\n maxp.numGlyphs = this.glyf.length;\n this.loca.offsets.push(this.offset);\n var head = cloneDeep(this.font.head);\n head.indexToLocFormat = this.loca.version;\n var hhea = cloneDeep(this.font.hhea);\n hhea.numberOfMetrics = this.hmtx.metrics.length; // map = []\n // for index in [0...256]\n // if index < @numGlyphs\n // map[index] = index\n // else\n // map[index] = 0\n //\n // cmapTable =\n // version: 0\n // length: 262\n // language: 0\n // codeMap: map\n //\n // cmap =\n // version: 0\n // numSubtables: 1\n // tables: [\n // platformID: 1\n // encodingID: 0\n // table: cmapTable\n // ]\n // TODO: subset prep, cvt, fpgm?\n\n Directory.encode(stream, {\n tables: {\n head: head,\n hhea: hhea,\n loca: this.loca,\n maxp: maxp,\n 'cvt ': this.font['cvt '],\n prep: this.font.prep,\n glyf: this.glyf,\n hmtx: this.hmtx,\n fpgm: this.font.fpgm // name: clone @font.name\n // 'OS/2': clone @font['OS/2']\n // post: clone @font.post\n // cmap: cmap\n\n }\n });\n };\n\n return TTFSubset;\n}(Subset);\n\nfunction _createForOfIteratorHelperLoose$4(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$4(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$4(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$4(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$4(o, minLen); }\n\nfunction _arrayLikeToArray$4(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar CFFSubset = /*#__PURE__*/function (_Subset) {\n _inheritsLoose(CFFSubset, _Subset);\n\n function CFFSubset(font) {\n var _this;\n\n _this = _Subset.call(this, font) || this;\n _this.cff = _this.font['CFF '];\n\n if (!_this.cff) {\n throw new Error('Not a CFF Font');\n }\n\n return _this;\n }\n\n var _proto = CFFSubset.prototype;\n\n _proto.subsetCharstrings = function subsetCharstrings() {\n this.charstrings = [];\n var gsubrs = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose$4(this.glyphs), _step; !(_step = _iterator()).done;) {\n var gid = _step.value;\n this.charstrings.push(this.cff.getCharString(gid));\n var glyph = this.font.getGlyph(gid);\n glyph.path; // this causes the glyph to be parsed\n\n for (var subr in glyph._usedGsubrs) {\n gsubrs[subr] = true;\n }\n }\n\n this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);\n };\n\n _proto.subsetSubrs = function subsetSubrs(subrs, used) {\n var res = [];\n\n for (var i = 0; i < subrs.length; i++) {\n var subr = subrs[i];\n\n if (used[i]) {\n this.cff.stream.pos = subr.offset;\n res.push(this.cff.stream.readBuffer(subr.length));\n } else {\n res.push(Buffer.from([11])); // return\n }\n }\n\n return res;\n };\n\n _proto.subsetFontdict = function subsetFontdict(topDict) {\n topDict.FDArray = [];\n topDict.FDSelect = {\n version: 0,\n fds: []\n };\n var used_fds = {};\n var used_subrs = [];\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$4(this.glyphs), _step2; !(_step2 = _iterator2()).done;) {\n var gid = _step2.value;\n var fd = this.cff.fdForGlyph(gid);\n\n if (fd == null) {\n continue;\n }\n\n if (!used_fds[fd]) {\n topDict.FDArray.push(Object.assign({}, this.cff.topDict.FDArray[fd]));\n used_subrs.push({});\n }\n\n used_fds[fd] = true;\n topDict.FDSelect.fds.push(topDict.FDArray.length - 1);\n var glyph = this.font.getGlyph(gid);\n glyph.path; // this causes the glyph to be parsed\n\n for (var subr in glyph._usedSubrs) {\n used_subrs[used_subrs.length - 1][subr] = true;\n }\n }\n\n for (var i = 0; i < topDict.FDArray.length; i++) {\n var dict = topDict.FDArray[i];\n delete dict.FontName;\n\n if (dict.Private && dict.Private.Subrs) {\n dict.Private = Object.assign({}, dict.Private);\n dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i]);\n }\n }\n\n return;\n };\n\n _proto.createCIDFontdict = function createCIDFontdict(topDict) {\n var used_subrs = {};\n\n for (var _iterator3 = _createForOfIteratorHelperLoose$4(this.glyphs), _step3; !(_step3 = _iterator3()).done;) {\n var gid = _step3.value;\n var glyph = this.font.getGlyph(gid);\n glyph.path; // this causes the glyph to be parsed\n\n for (var subr in glyph._usedSubrs) {\n used_subrs[subr] = true;\n }\n }\n\n var privateDict = Object.assign({}, this.cff.topDict.Private);\n\n if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) {\n privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);\n }\n\n topDict.FDArray = [{\n Private: privateDict\n }];\n return topDict.FDSelect = {\n version: 3,\n nRanges: 1,\n ranges: [{\n first: 0,\n fd: 0\n }],\n sentinel: this.charstrings.length\n };\n };\n\n _proto.addString = function addString(string) {\n if (!string) {\n return null;\n }\n\n if (!this.strings) {\n this.strings = [];\n }\n\n this.strings.push(string);\n return standardStrings.length + this.strings.length - 1;\n };\n\n _proto.encode = function encode(stream) {\n this.subsetCharstrings();\n var charset = {\n version: this.charstrings.length > 255 ? 2 : 1,\n ranges: [{\n first: 1,\n nLeft: this.charstrings.length - 2\n }]\n };\n var topDict = Object.assign({}, this.cff.topDict);\n topDict.Private = null;\n topDict.charset = charset;\n topDict.Encoding = null;\n topDict.CharStrings = this.charstrings;\n\n for (var _i = 0, _arr = ['version', 'Notice', 'Copyright', 'FullName', 'FamilyName', 'Weight', 'PostScript', 'BaseFontName', 'FontName']; _i < _arr.length; _i++) {\n var key = _arr[_i];\n topDict[key] = this.addString(this.cff.string(topDict[key]));\n }\n\n topDict.ROS = [this.addString('Adobe'), this.addString('Identity'), 0];\n topDict.CIDCount = this.charstrings.length;\n\n if (this.cff.isCIDFont) {\n this.subsetFontdict(topDict);\n } else {\n this.createCIDFontdict(topDict);\n }\n\n var top = {\n version: 1,\n hdrSize: this.cff.hdrSize,\n offSize: 4,\n header: this.cff.header,\n nameIndex: [this.cff.postscriptName],\n topDictIndex: [topDict],\n stringIndex: this.strings,\n globalSubrIndex: this.gsubrs\n };\n CFFTop.encode(stream, top);\n };\n\n return CFFSubset;\n}(Subset);\n\nvar _class;\n\nfunction _createForOfIteratorHelperLoose$3(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$3(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$3(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$3(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); }\n\nfunction _arrayLikeToArray$3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n/**\n * This is the base class for all SFNT-based font formats in fontkit.\n * It supports TrueType, and PostScript glyphs, and several color glyph formats.\n */\n\nvar TTFFont = (_class = /*#__PURE__*/function () {\n TTFFont.probe = function probe(buffer) {\n var format = buffer.toString('ascii', 0, 4);\n return format === 'true' || format === 'OTTO' || format === String.fromCharCode(0, 1, 0, 0);\n };\n\n function TTFFont(stream, variationCoords) {\n if (variationCoords === void 0) {\n variationCoords = null;\n }\n\n this.defaultLanguage = null;\n this.stream = stream;\n this.variationCoords = variationCoords;\n this._directoryPos = this.stream.pos;\n this._tables = {};\n this._glyphs = {};\n\n this._decodeDirectory(); // define properties for each table to lazily parse\n\n\n for (var tag in this.directory.tables) {\n var table = this.directory.tables[tag];\n\n if (tables[tag] && table.length > 0) {\n Object.defineProperty(this, tag, {\n get: this._getTable.bind(this, table)\n });\n }\n }\n }\n\n var _proto = TTFFont.prototype;\n\n _proto.setDefaultLanguage = function setDefaultLanguage(lang) {\n if (lang === void 0) {\n lang = null;\n }\n\n this.defaultLanguage = lang;\n };\n\n _proto._getTable = function _getTable(table) {\n if (!(table.tag in this._tables)) {\n try {\n this._tables[table.tag] = this._decodeTable(table);\n } catch (e) {\n if (fontkit.logErrors) {\n console.error(\"Error decoding table \" + table.tag);\n console.error(e.stack);\n }\n }\n }\n\n return this._tables[table.tag];\n };\n\n _proto._getTableStream = function _getTableStream(tag) {\n var table = this.directory.tables[tag];\n\n if (table) {\n this.stream.pos = table.offset;\n return this.stream;\n }\n\n return null;\n };\n\n _proto._decodeDirectory = function _decodeDirectory() {\n return this.directory = Directory.decode(this.stream, {\n _startOffset: 0\n });\n };\n\n _proto._decodeTable = function _decodeTable(table) {\n var pos = this.stream.pos;\n\n var stream = this._getTableStream(table.tag);\n\n var result = tables[table.tag].decode(stream, this, table.length);\n this.stream.pos = pos;\n return result;\n }\n /**\n * Gets a string from the font's `name` table\n * `lang` is a BCP-47 language code.\n * @return {string}\n */\n ;\n\n _proto.getName = function getName(key, lang) {\n if (lang === void 0) {\n lang = this.defaultLanguage || fontkit.defaultLanguage;\n }\n\n var record = this.name && this.name.records[key];\n\n if (record) {\n // Attempt to retrieve the entry, depending on which translation is available:\n return record[lang] || record[this.defaultLanguage] || record[fontkit.defaultLanguage] || record['en'] || record[Object.keys(record)[0]] // Seriously, ANY language would be fine\n || null;\n }\n\n return null;\n }\n /**\n * The unique PostScript name for this font, e.g. \"Helvetica-Bold\"\n * @type {string}\n */\n ;\n\n /**\n * Returns whether there is glyph in the font for the given unicode code point.\n *\n * @param {number} codePoint\n * @return {boolean}\n */\n _proto.hasGlyphForCodePoint = function hasGlyphForCodePoint(codePoint) {\n return !!this._cmapProcessor.lookup(codePoint);\n }\n /**\n * Maps a single unicode code point to a Glyph object.\n * Does not perform any advanced substitutions (there is no context to do so).\n *\n * @param {number} codePoint\n * @return {Glyph}\n */\n ;\n\n _proto.glyphForCodePoint = function glyphForCodePoint(codePoint) {\n return this.getGlyph(this._cmapProcessor.lookup(codePoint), [codePoint]);\n }\n /**\n * Returns an array of Glyph objects for the given string.\n * This is only a one-to-one mapping from characters to glyphs.\n * For most uses, you should use font.layout (described below), which\n * provides a much more advanced mapping supporting AAT and OpenType shaping.\n *\n * @param {string} string\n * @return {Glyph[]}\n */\n ;\n\n _proto.glyphsForString = function glyphsForString(string) {\n var glyphs = [];\n var len = string.length;\n var idx = 0;\n var last = -1;\n var state = -1;\n\n while (idx <= len) {\n var code = 0;\n var nextState = 0;\n\n if (idx < len) {\n // Decode the next codepoint from UTF 16\n code = string.charCodeAt(idx++);\n\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n var next = string.charCodeAt(idx);\n\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3ff) << 10) + (next & 0x3ff) + 0x10000;\n }\n } // Compute the next state: 1 if the next codepoint is a variation selector, 0 otherwise.\n\n\n nextState = 0xfe00 <= code && code <= 0xfe0f || 0xe0100 <= code && code <= 0xe01ef ? 1 : 0;\n } else {\n idx++;\n }\n\n if (state === 0 && nextState === 1) {\n // Variation selector following normal codepoint.\n glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last, code), [last, code]));\n } else if (state === 0 && nextState === 0) {\n // Normal codepoint following normal codepoint.\n glyphs.push(this.glyphForCodePoint(last));\n }\n\n last = code;\n state = nextState;\n }\n\n return glyphs;\n };\n\n /**\n * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.\n *\n * @param {string} string\n * @param {string[]} [userFeatures]\n * @param {string} [script]\n * @param {string} [language]\n * @param {string} [direction]\n * @return {GlyphRun}\n */\n _proto.layout = function layout(string, userFeatures, script, language, direction) {\n return this._layoutEngine.layout(string, userFeatures, script, language, direction);\n }\n /**\n * Returns an array of strings that map to the given glyph id.\n * @param {number} gid - glyph id\n */\n ;\n\n _proto.stringsForGlyph = function stringsForGlyph(gid) {\n return this._layoutEngine.stringsForGlyph(gid);\n }\n /**\n * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)\n * (or mapped AAT tags) supported by the font.\n * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.\n * If this is an AAT font, the OpenType feature tags are mapped to AAT features.\n *\n * @type {string[]}\n */\n ;\n\n _proto.getAvailableFeatures = function getAvailableFeatures(script, language) {\n return this._layoutEngine.getAvailableFeatures(script, language);\n };\n\n _proto._getBaseGlyph = function _getBaseGlyph(glyph, characters) {\n if (characters === void 0) {\n characters = [];\n }\n\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf) {\n this._glyphs[glyph] = new TTFGlyph(glyph, characters, this);\n } else if (this.directory.tables['CFF '] || this.directory.tables.CFF2) {\n this._glyphs[glyph] = new CFFGlyph(glyph, characters, this);\n }\n }\n\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a glyph object for the given glyph id.\n * You can pass the array of code points this glyph represents for\n * your use later, and it will be stored in the glyph object.\n *\n * @param {number} glyph\n * @param {number[]} characters\n * @return {Glyph}\n */\n ;\n\n _proto.getGlyph = function getGlyph(glyph, characters) {\n if (characters === void 0) {\n characters = [];\n }\n\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.sbix) {\n this._glyphs[glyph] = new SBIXGlyph(glyph, characters, this);\n } else if (this.directory.tables.COLR && this.directory.tables.CPAL) {\n this._glyphs[glyph] = new COLRGlyph(glyph, characters, this);\n } else {\n this._getBaseGlyph(glyph, characters);\n }\n }\n\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a Subset for this font.\n * @return {Subset}\n */\n ;\n\n _proto.createSubset = function createSubset() {\n if (this.directory.tables['CFF ']) {\n return new CFFSubset(this);\n }\n\n return new TTFSubset(this);\n }\n /**\n * Returns an object describing the available variation axes\n * that this font supports. Keys are setting tags, and values\n * contain the axis name, range, and default value.\n *\n * @type {object}\n */\n ;\n\n /**\n * Returns a new font with the given variation settings applied.\n * Settings can either be an instance name, or an object containing\n * variation tags as specified by the `variationAxes` property.\n *\n * @param {object} settings\n * @return {TTFFont}\n */\n _proto.getVariation = function getVariation(settings) {\n if (!(this.directory.tables.fvar && (this.directory.tables.gvar && this.directory.tables.glyf || this.directory.tables.CFF2))) {\n throw new Error('Variations require a font with the fvar, gvar and glyf, or CFF2 tables.');\n }\n\n if (typeof settings === 'string') {\n settings = this.namedVariations[settings];\n }\n\n if (typeof settings !== 'object') {\n throw new Error('Variation settings must be either a variation name or settings object.');\n } // normalize the coordinates\n\n\n var coords = this.fvar.axis.map(function (axis, i) {\n var axisTag = axis.axisTag.trim();\n\n if (axisTag in settings) {\n return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));\n } else {\n return axis.defaultValue;\n }\n });\n var stream = new r.DecodeStream(this.stream.buffer);\n stream.pos = this._directoryPos;\n var font = new TTFFont(stream, coords);\n font._tables = this._tables;\n return font;\n };\n\n // Standardized format plugin API\n _proto.getFont = function getFont(name) {\n return this.getVariation(name);\n };\n\n _createClass(TTFFont, [{\n key: \"postscriptName\",\n get: function get() {\n return this.getName('postscriptName');\n }\n /**\n * The font's full name, e.g. \"Helvetica Bold\"\n * @type {string}\n */\n\n }, {\n key: \"fullName\",\n get: function get() {\n return this.getName('fullName');\n }\n /**\n * The font's family name, e.g. \"Helvetica\"\n * @type {string}\n */\n\n }, {\n key: \"familyName\",\n get: function get() {\n return this.getName('fontFamily');\n }\n /**\n * The font's sub-family, e.g. \"Bold\".\n * @type {string}\n */\n\n }, {\n key: \"subfamilyName\",\n get: function get() {\n return this.getName('fontSubfamily');\n }\n /**\n * The font's copyright information\n * @type {string}\n */\n\n }, {\n key: \"copyright\",\n get: function get() {\n return this.getName('copyright');\n }\n /**\n * The font's version number\n * @type {string}\n */\n\n }, {\n key: \"version\",\n get: function get() {\n return this.getName('version');\n }\n /**\n * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))\n * @type {number}\n */\n\n }, {\n key: \"ascent\",\n get: function get() {\n return this.hhea.ascent;\n }\n /**\n * The font’s [descender](https://en.wikipedia.org/wiki/Descender)\n * @type {number}\n */\n\n }, {\n key: \"descent\",\n get: function get() {\n return this.hhea.descent;\n }\n /**\n * The amount of space that should be included between lines\n * @type {number}\n */\n\n }, {\n key: \"lineGap\",\n get: function get() {\n return this.hhea.lineGap;\n }\n /**\n * The offset from the normal underline position that should be used\n * @type {number}\n */\n\n }, {\n key: \"underlinePosition\",\n get: function get() {\n return this.post.underlinePosition;\n }\n /**\n * The weight of the underline that should be used\n * @type {number}\n */\n\n }, {\n key: \"underlineThickness\",\n get: function get() {\n return this.post.underlineThickness;\n }\n /**\n * If this is an italic font, the angle the cursor should be drawn at to match the font design\n * @type {number}\n */\n\n }, {\n key: \"italicAngle\",\n get: function get() {\n return this.post.italicAngle;\n }\n /**\n * The height of capital letters above the baseline.\n * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.\n * @type {number}\n */\n\n }, {\n key: \"capHeight\",\n get: function get() {\n var os2 = this['OS/2'];\n return os2 ? os2.capHeight : this.ascent;\n }\n /**\n * The height of lower case letters in the font.\n * See [here](https://en.wikipedia.org/wiki/X-height) for more details.\n * @type {number}\n */\n\n }, {\n key: \"xHeight\",\n get: function get() {\n var os2 = this['OS/2'];\n return os2 ? os2.xHeight : 0;\n }\n /**\n * The number of glyphs in the font.\n * @type {number}\n */\n\n }, {\n key: \"numGlyphs\",\n get: function get() {\n return this.maxp.numGlyphs;\n }\n /**\n * The size of the font’s internal coordinate grid\n * @type {number}\n */\n\n }, {\n key: \"unitsPerEm\",\n get: function get() {\n return this.head.unitsPerEm;\n }\n /**\n * The font’s bounding box, i.e. the box that encloses all glyphs in the font.\n * @type {BBox}\n */\n\n }, {\n key: \"bbox\",\n get: function get() {\n return Object.freeze(new BBox(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));\n }\n }, {\n key: \"_cmapProcessor\",\n get: function get() {\n return new CmapProcessor(this.cmap);\n }\n /**\n * An array of all of the unicode code points supported by the font.\n * @type {number[]}\n */\n\n }, {\n key: \"characterSet\",\n get: function get() {\n return this._cmapProcessor.getCharacterSet();\n }\n }, {\n key: \"_layoutEngine\",\n get: function get() {\n return new LayoutEngine(this);\n }\n }, {\n key: \"availableFeatures\",\n get: function get() {\n return this._layoutEngine.getAvailableFeatures();\n }\n }, {\n key: \"variationAxes\",\n get: function get() {\n var res = {};\n\n if (!this.fvar) {\n return res;\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose$3(this.fvar.axis), _step; !(_step = _iterator()).done;) {\n var axis = _step.value;\n res[axis.axisTag.trim()] = {\n name: axis.name.en,\n min: axis.minValue,\n default: axis.defaultValue,\n max: axis.maxValue\n };\n }\n\n return res;\n }\n /**\n * Returns an object describing the named variation instances\n * that the font designer has specified. Keys are variation names\n * and values are the variation settings for this instance.\n *\n * @type {object}\n */\n\n }, {\n key: \"namedVariations\",\n get: function get() {\n var res = {};\n\n if (!this.fvar) {\n return res;\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$3(this.fvar.instance), _step2; !(_step2 = _iterator2()).done;) {\n var instance = _step2.value;\n var settings = {};\n\n for (var i = 0; i < this.fvar.axis.length; i++) {\n var axis = this.fvar.axis[i];\n settings[axis.axisTag.trim()] = instance.coord[i];\n }\n\n res[instance.name.en] = settings;\n }\n\n return res;\n }\n }, {\n key: \"_variationProcessor\",\n get: function get() {\n if (!this.fvar) {\n return null;\n }\n\n var variationCoords = this.variationCoords; // Ignore if no variation coords and not CFF2\n\n if (!variationCoords && !this.CFF2) {\n return null;\n }\n\n if (!variationCoords) {\n variationCoords = this.fvar.axis.map(function (axis) {\n return axis.defaultValue;\n });\n }\n\n return new GlyphVariationProcessor(this, variationCoords);\n }\n }]);\n\n return TTFFont;\n}(), (_applyDecoratedDescriptor(_class.prototype, \"bbox\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"bbox\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"_cmapProcessor\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"_cmapProcessor\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"characterSet\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"characterSet\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"_layoutEngine\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"_layoutEngine\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"variationAxes\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"variationAxes\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"namedVariations\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"namedVariations\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"_variationProcessor\", [cache], Object.getOwnPropertyDescriptor(_class.prototype, \"_variationProcessor\"), _class.prototype)), _class);\n\nfunction _createForOfIteratorHelperLoose$2(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); }\n\nfunction _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar WOFFDirectoryEntry = new r.Struct({\n tag: new r.String(4),\n offset: new r.Pointer(r.uint32, 'void', {\n type: 'global'\n }),\n compLength: r.uint32,\n length: r.uint32,\n origChecksum: r.uint32\n});\nvar WOFFDirectory = new r.Struct({\n tag: new r.String(4),\n // should be 'wOFF'\n flavor: r.uint32,\n length: r.uint32,\n numTables: r.uint16,\n reserved: new r.Reserved(r.uint16),\n totalSfntSize: r.uint32,\n majorVersion: r.uint16,\n minorVersion: r.uint16,\n metaOffset: r.uint32,\n metaLength: r.uint32,\n metaOrigLength: r.uint32,\n privOffset: r.uint32,\n privLength: r.uint32,\n tables: new r.Array(WOFFDirectoryEntry, 'numTables')\n});\n\nWOFFDirectory.process = function () {\n var tables = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose$2(this.tables), _step; !(_step = _iterator()).done;) {\n var table = _step.value;\n tables[table.tag] = table;\n }\n\n this.tables = tables;\n};\n\nvar WOFFFont = /*#__PURE__*/function (_TTFFont) {\n _inheritsLoose(WOFFFont, _TTFFont);\n\n function WOFFFont() {\n return _TTFFont.apply(this, arguments) || this;\n }\n\n WOFFFont.probe = function probe(buffer) {\n return buffer.toString('ascii', 0, 4) === 'wOFF';\n };\n\n var _proto = WOFFFont.prototype;\n\n _proto._decodeDirectory = function _decodeDirectory() {\n this.directory = WOFFDirectory.decode(this.stream, {\n _startOffset: 0\n });\n };\n\n _proto._getTableStream = function _getTableStream(tag) {\n var table = this.directory.tables[tag];\n\n if (table) {\n this.stream.pos = table.offset;\n\n if (table.compLength < table.length) {\n this.stream.pos += 2; // skip deflate header\n\n var outBuffer = Buffer.alloc(table.length);\n var buf = inflate(this.stream.readBuffer(table.compLength - 2), outBuffer);\n return new r.DecodeStream(buf);\n } else {\n return this.stream;\n }\n }\n\n return null;\n };\n\n return WOFFFont;\n}(TTFFont);\n\nfunction _createForOfIteratorHelperLoose$1(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); }\n\nfunction _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar TTCHeader = new r.VersionedStruct(r.uint32, {\n 0x00010000: {\n numFonts: r.uint32,\n offsets: new r.Array(r.uint32, 'numFonts')\n },\n 0x00020000: {\n numFonts: r.uint32,\n offsets: new r.Array(r.uint32, 'numFonts'),\n dsigTag: r.uint32,\n dsigLength: r.uint32,\n dsigOffset: r.uint32\n }\n});\n\nvar TrueTypeCollection = /*#__PURE__*/function () {\n TrueTypeCollection.probe = function probe(buffer) {\n return buffer.toString('ascii', 0, 4) === 'ttcf';\n };\n\n function TrueTypeCollection(stream) {\n this.stream = stream;\n\n if (stream.readString(4) !== 'ttcf') {\n throw new Error('Not a TrueType collection');\n }\n\n this.header = TTCHeader.decode(stream);\n }\n\n var _proto = TrueTypeCollection.prototype;\n\n _proto.getFont = function getFont(name) {\n for (var _iterator = _createForOfIteratorHelperLoose$1(this.header.offsets), _step; !(_step = _iterator()).done;) {\n var offset = _step.value;\n var stream = new r.DecodeStream(this.stream.buffer);\n stream.pos = offset;\n var font = new TTFFont(stream);\n\n if (font.postscriptName === name) {\n return font;\n }\n }\n\n return null;\n };\n\n _createClass(TrueTypeCollection, [{\n key: \"fonts\",\n get: function get() {\n var fonts = [];\n\n for (var _iterator2 = _createForOfIteratorHelperLoose$1(this.header.offsets), _step2; !(_step2 = _iterator2()).done;) {\n var offset = _step2.value;\n var stream = new r.DecodeStream(this.stream.buffer);\n stream.pos = offset;\n fonts.push(new TTFFont(stream));\n }\n\n return fonts;\n }\n }]);\n\n return TrueTypeCollection;\n}();\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar DFontName = new r.String(r.uint8);\nnew r.Struct({\n len: r.uint32,\n buf: new r.Buffer('len')\n});\nvar Ref = new r.Struct({\n id: r.uint16,\n nameOffset: r.int16,\n attr: r.uint8,\n dataOffset: r.uint24,\n handle: r.uint32\n});\nvar Type = new r.Struct({\n name: new r.String(4),\n maxTypeIndex: r.uint16,\n refList: new r.Pointer(r.uint16, new r.Array(Ref, function (t) {\n return t.maxTypeIndex + 1;\n }), {\n type: 'parent'\n })\n});\nvar TypeList = new r.Struct({\n length: r.uint16,\n types: new r.Array(Type, function (t) {\n return t.length + 1;\n })\n});\nvar DFontMap = new r.Struct({\n reserved: new r.Reserved(r.uint8, 24),\n typeList: new r.Pointer(r.uint16, TypeList),\n nameListOffset: new r.Pointer(r.uint16, 'void')\n});\nvar DFontHeader = new r.Struct({\n dataOffset: r.uint32,\n map: new r.Pointer(r.uint32, DFontMap),\n dataLength: r.uint32,\n mapLength: r.uint32\n});\n\nvar DFont = /*#__PURE__*/function () {\n DFont.probe = function probe(buffer) {\n var stream = new r.DecodeStream(buffer);\n\n try {\n var header = DFontHeader.decode(stream);\n } catch (e) {\n return false;\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(header.map.typeList.types), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (type.name === 'sfnt') {\n return true;\n }\n }\n\n return false;\n };\n\n function DFont(stream) {\n this.stream = stream;\n this.header = DFontHeader.decode(this.stream);\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.header.map.typeList.types), _step2; !(_step2 = _iterator2()).done;) {\n var type = _step2.value;\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(type.refList), _step3; !(_step3 = _iterator3()).done;) {\n var ref = _step3.value;\n\n if (ref.nameOffset >= 0) {\n this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;\n ref.name = DFontName.decode(this.stream);\n } else {\n ref.name = null;\n }\n }\n\n if (type.name === 'sfnt') {\n this.sfnt = type;\n }\n }\n }\n\n var _proto = DFont.prototype;\n\n _proto.getFont = function getFont(name) {\n if (!this.sfnt) {\n return null;\n }\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(this.sfnt.refList), _step4; !(_step4 = _iterator4()).done;) {\n var ref = _step4.value;\n var pos = this.header.dataOffset + ref.dataOffset + 4;\n var stream = new r.DecodeStream(this.stream.buffer.slice(pos));\n var font = new TTFFont(stream);\n\n if (font.postscriptName === name) {\n return font;\n }\n }\n\n return null;\n };\n\n _createClass(DFont, [{\n key: \"fonts\",\n get: function get() {\n var fonts = [];\n\n for (var _iterator5 = _createForOfIteratorHelperLoose(this.sfnt.refList), _step5; !(_step5 = _iterator5()).done;) {\n var ref = _step5.value;\n var pos = this.header.dataOffset + ref.dataOffset + 4;\n var stream = new r.DecodeStream(this.stream.buffer.slice(pos));\n fonts.push(new TTFFont(stream));\n }\n\n return fonts;\n }\n }]);\n\n return DFont;\n}();\n\nfontkit.registerFormat(TTFFont);\nfontkit.registerFormat(WOFFFont);\nfontkit.registerFormat(TrueTypeCollection);\nfontkit.registerFormat(DFont);\n\nexport default fontkit;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');\nvar _regeneratorRuntime = require('@babel/runtime/regenerator');\nvar fetch = require('cross-fetch');\nvar PNG = require('@react-pdf/png-js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);\nvar _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);\nvar fetch__default = /*#__PURE__*/_interopDefaultLegacy(fetch);\nvar PNG__default = /*#__PURE__*/_interopDefaultLegacy(PNG);\n\nPNG__default['default'].isValid = function (data) {\n try {\n return !!new PNG__default['default'](data);\n } catch (e) {\n return false;\n }\n};\n\n// Extracted from https://github.com/devongovett/pdfkit/blob/master/lib/image/jpeg.coffee\nvar MARKERS = [0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc5, 0xffc6, 0xffc7, 0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf];\n\nvar JPEG = function JPEG(data) {\n this.data = null;\n this.width = null;\n this.height = null;\n this.data = data;\n\n if (data.readUInt16BE(0) !== 0xffd8) {\n throw new Error('SOI not found in JPEG');\n }\n\n var marker;\n var pos = 2;\n\n while (pos < data.length) {\n marker = data.readUInt16BE(pos);\n pos += 2;\n\n if (MARKERS.includes(marker)) {\n break;\n }\n\n pos += data.readUInt16BE(pos);\n }\n\n if (!MARKERS.includes(marker)) {\n throw new Error('Invalid JPEG.');\n }\n\n pos += 3;\n this.height = data.readUInt16BE(pos);\n pos += 2;\n this.width = data.readUInt16BE(pos);\n};\n\nJPEG.isValid = function (data) {\n if (!data || !Buffer.isBuffer(data) || data.readUInt16BE(0) !== 0xffd8) {\n return false;\n }\n\n var marker;\n var pos = 2;\n\n while (pos < data.length) {\n marker = data.readUInt16BE(pos);\n pos += 2;\n\n if (MARKERS.includes(marker)) {\n break;\n }\n\n pos += data.readUInt16BE(pos);\n }\n\n if (!MARKERS.includes(marker)) {\n return false;\n }\n\n return true;\n};\n\nvar createCache = function createCache(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 100 : _ref$limit;\n\n var cache = {};\n var keys = [];\n return {\n get: function get(key) {\n return cache[key];\n },\n set: function set(key, value) {\n keys.push(key);\n\n if (keys.length > limit) {\n delete cache[keys.shift()];\n }\n\n cache[key] = value;\n },\n reset: function reset() {\n cache = {};\n keys = [];\n },\n length: function length() {\n return keys.length;\n }\n };\n};\n\nvar IMAGE_CACHE = createCache({\n limit: 30\n});\n\nvar fetchRemoteFile = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee(uri, options) {\n var response, buffer;\n return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return fetch__default['default'](uri, options);\n\n case 2:\n response = _context.sent;\n _context.next = 5;\n return response.buffer ? response.buffer() : response.arrayBuffer();\n\n case 5:\n buffer = _context.sent;\n return _context.abrupt(\"return\", buffer.constructor.name === 'Buffer' ? buffer : Buffer.from(buffer));\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function fetchRemoteFile(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar isValidFormat = function isValidFormat(format) {\n var lower = format.toLowerCase();\n return lower === 'jpg' || lower === 'jpeg' || lower === 'png';\n};\n\nvar guessFormat = function guessFormat(buffer) {\n var format;\n\n if (JPEG.isValid(buffer)) {\n format = 'jpg';\n } else if (PNG__default['default'].isValid(buffer)) {\n format = 'png';\n }\n\n return format;\n};\n\nvar isCompatibleBase64 = function isCompatibleBase64(_ref2) {\n var uri = _ref2.uri;\n return /^data:image\\/[a-zA-Z]*;base64,[^\"]*/g.test(uri);\n};\n\nfunction getImage(body, extension) {\n switch (extension.toLowerCase()) {\n case 'jpg':\n case 'jpeg':\n return new JPEG(body);\n\n case 'png':\n return new PNG__default['default'](body);\n\n default:\n return null;\n }\n}\n\nvar resolveBase64Image = function resolveBase64Image(_ref3) {\n var uri = _ref3.uri;\n var match = /^data:image\\/([a-zA-Z]*);base64,([^\"]*)/g.exec(uri);\n var format = match[1];\n var data = match[2];\n\n if (!isValidFormat(format)) {\n throw new Error(\"Base64 image invalid format: \" + format);\n }\n\n return new Promise(function (resolve) {\n return resolve(getImage(Buffer.from(data, 'base64'), format));\n });\n};\n\nvar resolveImageFromData = function resolveImageFromData(src) {\n if (src.data && src.format) {\n return new Promise(function (resolve) {\n return resolve(getImage(src.data, src.format));\n });\n }\n\n throw new Error(\"Invalid data given for local file: \" + JSON.stringify(src));\n};\n\nvar resolveBufferImage = function resolveBufferImage(buffer) {\n var format = guessFormat(buffer);\n\n if (format) {\n return new Promise(function (resolve) {\n return resolve(getImage(buffer, format));\n });\n }\n\n return Promise.resolve();\n};\n\nvar getImageFormat = function getImageFormat(body) {\n var isPng = body[0] === 137 && body[1] === 80 && body[2] === 78 && body[3] === 71 && body[4] === 13 && body[5] === 10 && body[6] === 26 && body[7] === 10;\n var isJpg = body[0] === 255 && body[1] === 216 && body[2] === 255;\n var extension = '';\n\n if (isPng) {\n extension = 'png';\n } else if (isJpg) {\n extension = 'jpg';\n } else {\n throw new Error('Not valid image extension');\n }\n\n return extension;\n};\n\nvar resolveImageFromUrl = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator__default['default']( /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2(src) {\n var uri, body, headers, _src$method, method, data, extension;\n\n return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n uri = src.uri, body = src.body, headers = src.headers, _src$method = src.method, method = _src$method === void 0 ? 'GET' : _src$method;\n\n {\n _context2.next = 7;\n break;\n }\n\n case 4:\n _context2.t0 = _context2.sent;\n _context2.next = 10;\n break;\n\n case 7:\n _context2.next = 9;\n return fetchRemoteFile(uri, {\n body: body,\n headers: headers,\n method: method\n });\n\n case 9:\n _context2.t0 = _context2.sent;\n\n case 10:\n data = _context2.t0;\n extension = getImageFormat(data);\n return _context2.abrupt(\"return\", getImage(data, extension));\n\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function resolveImageFromUrl(_x3) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nvar resolveImage = function resolveImage(src, _temp) {\n var _ref5 = _temp === void 0 ? {} : _temp,\n _ref5$cache = _ref5.cache,\n cache = _ref5$cache === void 0 ? true : _ref5$cache;\n\n var cacheKey = src.data ? src.data.toString() : src.uri;\n\n if (cache && IMAGE_CACHE.get(cacheKey)) {\n return IMAGE_CACHE.get(cacheKey);\n }\n\n var image;\n\n if (isCompatibleBase64(src)) {\n image = resolveBase64Image(src);\n } else if (Buffer.isBuffer(src)) {\n image = resolveBufferImage(src);\n } else if (typeof src === 'object' && src.data) {\n image = resolveImageFromData(src);\n } else {\n image = resolveImageFromUrl(src);\n }\n\n if (!image) {\n throw new Error('Cannot resolve image');\n }\n\n if (cache) {\n IMAGE_CACHE.set(cacheKey, image);\n }\n\n return image;\n};\n\nexports.default = resolveImage;\n//# sourceMappingURL=index.browser.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _getMargin = _interopRequireDefault(require(\"../node/getMargin\"));\n\nvar _getPadding = _interopRequireDefault(require(\"../node/getPadding\"));\n\nvar _isHeightAuto = _interopRequireDefault(require(\"../page/isHeightAuto\"));\n\n/* eslint-disable no-param-reassign */\nvar SAFETY_HEIGHT = 10;\nvar getMax = R.reduce(R.max, -Infinity);\n/**\n * Helper object to predict canvas size\n * TODO: Implement remaining functions (as close as possible);\n */\n\nvar measureCtx = function measureCtx() {\n var ctx = {};\n var points = [];\n\n var nil = function nil() {\n return ctx;\n };\n\n var addPoint = function addPoint(x, y) {\n return points.push([x, y]);\n };\n\n var moveTo = R.compose(nil, addPoint);\n\n var rect = function rect(x, y, w, h) {\n addPoint(x, y);\n addPoint(x + w, y);\n addPoint(x, y + h);\n addPoint(x + w, y + h);\n return ctx;\n };\n\n var ellipse = function ellipse(x, y, rx, ry) {\n ry = ry || rx;\n addPoint(x - rx, y - ry);\n addPoint(x + rx, y - ry);\n addPoint(x + rx, y + ry);\n addPoint(x - rx, y + ry);\n return ctx;\n };\n\n var polygon = function polygon() {\n points.push.apply(points, arguments);\n return nil();\n }; // Change dimensions\n\n\n ctx.rect = rect;\n ctx.moveTo = moveTo;\n ctx.lineTo = moveTo;\n ctx.circle = ellipse;\n ctx.polygon = polygon;\n ctx.ellipse = ellipse;\n ctx.roundedRect = rect; // To be implemented\n\n ctx.text = nil;\n ctx.path = nil;\n ctx.lineWidth = nil;\n ctx.bezierCurveTo = nil;\n ctx.quadraticCurveTo = nil;\n ctx.scale = nil;\n ctx.rotate = nil;\n ctx.translate = nil; // These don't change dimensions\n\n ctx.dash = nil;\n ctx.clip = nil;\n ctx.save = nil;\n ctx.fill = nil;\n ctx.font = nil;\n ctx.stroke = nil;\n ctx.lineCap = nil;\n ctx.opacity = nil;\n ctx.restore = nil;\n ctx.lineJoin = nil;\n ctx.fontSize = nil;\n ctx.fillColor = nil;\n ctx.miterLimit = nil;\n ctx.strokeColor = nil;\n ctx.fillOpacity = nil;\n ctx.strokeOpacity = nil;\n ctx.linearGradient = nil;\n ctx.radialGradient = nil;\n\n ctx.getWidth = function () {\n return R.compose(getMax, R.pluck(0))(points);\n };\n\n ctx.getHeight = function () {\n return R.compose(getMax, R.pluck(1))(points);\n };\n\n return ctx;\n};\n/**\n * Yoga canvas measure function\n *\n * @param {Object} page\n * @param {Object} node\n * @param {Number} width\n * @param {Number} widthMode\n * @param {Number} height\n * @param {Number} heightMode\n * @returns {Object} canvas width and height\n */\n\n\nvar measureCanvas = function measureCanvas(page, node) {\n var imageMargin = (0, _getMargin.default)(node);\n var pagePadding = (0, _getPadding.default)(page);\n var pageArea = (0, _isHeightAuto.default)(page) ? Infinity : page.box.height - pagePadding.paddingTop - pagePadding.paddingBottom - imageMargin.marginTop - imageMargin.marginBottom - SAFETY_HEIGHT;\n var ctx = measureCtx();\n node.props.paint(ctx);\n var width = ctx.getWidth();\n var height = Math.min(pageArea, ctx.getHeight());\n return {\n height: height,\n width: width\n };\n};\n\nvar _default = R.curryN(6, measureCanvas);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _image = _interopRequireDefault(require(\"@react-pdf/image\"));\n\nvar _getSource = _interopRequireDefault(require(\"./getSource\"));\n\n/* eslint-disable no-param-reassign */\n\n/**\n * Resolves async src if passed\n *\n * @param {string | Function} src\n * @returns {object} resolved src\n */\nvar resolveSrc = /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(src) {\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(typeof src === 'function')) {\n _context.next = 7;\n break;\n }\n\n _context.next = 3;\n return src();\n\n case 3:\n _context.t1 = _context.sent;\n _context.t0 = {\n uri: _context.t1\n };\n _context.next = 8;\n break;\n\n case 7:\n _context.t0 = src;\n\n case 8:\n return _context.abrupt(\"return\", _context.t0);\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function resolveSrc(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n/**\n * Fetches image and append data to node\n * Ideally this fn should be immutable.\n *\n * @param {Object} node\n */\n\n\nvar fetchImage = /*#__PURE__*/function () {\n var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(node) {\n var src, cache, source;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n src = (0, _getSource.default)(node);\n cache = node.props.cache;\n\n if (src) {\n _context2.next = 5;\n break;\n }\n\n console.warn(false, 'Image should receive either a \"src\" or \"source\" prop');\n return _context2.abrupt(\"return\");\n\n case 5:\n _context2.prev = 5;\n _context2.next = 8;\n return resolveSrc(src);\n\n case 8:\n source = _context2.sent;\n _context2.next = 11;\n return (0, _image.default)(source, {\n cache: cache\n });\n\n case 11:\n node.image = _context2.sent;\n _context2.next = 18;\n break;\n\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](5);\n node.image = {\n width: 0,\n height: 0\n };\n console.warn(_context2.t0.message);\n\n case 18:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[5, 14]]);\n }));\n\n return function fetchImage(_x2) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar _default = fetchImage;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get image ratio\n *\n * @param {Object} image node\n * @returns {Number} image ratio\n */\nvar getRatio = function getRatio(node) {\n var _node$image;\n\n return (_node$image = node.image) !== null && _node$image !== void 0 && _node$image.data ? node.image.width / node.image.height : 1;\n};\n\nvar _default = getRatio;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get image source\n *\n * @param {Object} image node\n * @returns {String} image src\n */\nvar getSource = function getSource(node) {\n var _node$props, _node$props2, _node$props3;\n\n var value = ((_node$props = node.props) === null || _node$props === void 0 ? void 0 : _node$props.src) || ((_node$props2 = node.props) === null || _node$props2 === void 0 ? void 0 : _node$props2.source) || ((_node$props3 = node.props) === null || _node$props3 === void 0 ? void 0 : _node$props3.href);\n return typeof value === 'string' ? {\n uri: value\n } : value;\n};\n\nvar _default = getSource;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _getRatio = _interopRequireDefault(require(\"./getRatio\"));\n\nvar _getMargin = _interopRequireDefault(require(\"../node/getMargin\"));\n\nvar _getPadding = _interopRequireDefault(require(\"../node/getPadding\"));\n\nvar _isHeightAuto = _interopRequireDefault(require(\"../page/isHeightAuto\"));\n\nvar SAFETY_HEIGHT = 10;\n/**\n * Yoga image measure function\n *\n * @param {Object} page\n * @param {Object} node\n * @param {Number} width\n * @param {Number} widthMode\n * @param {Number} height\n * @param {Number} heightMode\n * @returns {Object} image width and height\n */\n\nvar measureImage = function measureImage(page, node, width, widthMode, height, heightMode) {\n var imageRatio = (0, _getRatio.default)(node);\n var imageMargin = (0, _getMargin.default)(node);\n var pagePadding = (0, _getPadding.default)(page);\n var pageArea = (0, _isHeightAuto.default)(page) ? Infinity : page.box.height - pagePadding.paddingTop - pagePadding.paddingBottom - imageMargin.marginTop - imageMargin.marginBottom - SAFETY_HEIGHT; // Skip measure if image data not present yet\n\n if (!node.image) return {\n width: 0,\n height: 0\n };\n\n if (widthMode === _yoga.default.MEASURE_MODE_EXACTLY && heightMode === _yoga.default.MEASURE_MODE_UNDEFINED) {\n var scaledHeight = width / imageRatio;\n return {\n height: Math.min(pageArea, scaledHeight)\n };\n }\n\n if (heightMode === _yoga.default.MEASURE_MODE_EXACTLY && (widthMode === _yoga.default.MEASURE_MODE_AT_MOST || widthMode === _yoga.default.MEASURE_MODE_UNDEFINED)) {\n return {\n width: Math.min(height * imageRatio, width)\n };\n }\n\n if (widthMode === _yoga.default.MEASURE_MODE_EXACTLY && heightMode === _yoga.default.MEASURE_MODE_AT_MOST) {\n var _scaledHeight = width / imageRatio;\n\n return {\n height: Math.min(height, pageArea, _scaledHeight)\n };\n }\n\n if (widthMode === _yoga.default.MEASURE_MODE_AT_MOST && heightMode === _yoga.default.MEASURE_MODE_AT_MOST) {\n if (imageRatio > 1) {\n return {\n width: width,\n height: Math.min(width / imageRatio, height)\n };\n }\n\n return {\n height: height,\n width: Math.min(height * imageRatio, width)\n };\n }\n\n return {\n height: height,\n width: width\n };\n};\n\nvar _default = R.curryN(6, measureImage);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _asyncCompose = _interopRequireDefault(require(\"./utils/asyncCompose\"));\n\nvar _resolveSvg = _interopRequireDefault(require(\"./steps/resolveSvg\"));\n\nvar _resolveZIndex = _interopRequireDefault(require(\"./steps/resolveZIndex\"));\n\nvar _resolveAssets = _interopRequireDefault(require(\"./steps/resolveAssets\"));\n\nvar _resolveStyles = _interopRequireDefault(require(\"./steps/resolveStyles\"));\n\nvar _resolveOrigins = _interopRequireDefault(require(\"./steps/resolveOrigins\"));\n\nvar _resolvePageSizes = _interopRequireDefault(require(\"./steps/resolvePageSizes\"));\n\nvar _resolvePagination = _interopRequireDefault(require(\"./steps/resolvePagination\"));\n\nvar _resolveDimensions = _interopRequireDefault(require(\"./steps/resolveDimensions\"));\n\nvar _resolveTextLayout = _interopRequireDefault(require(\"./steps/resolveTextLayout\"));\n\nvar _resolveInheritance = _interopRequireDefault(require(\"./steps/resolveInheritance\"));\n\nvar _resolvePagePaddings = _interopRequireDefault(require(\"./steps/resolvePagePaddings\"));\n\nvar _resolvePercentRadius = _interopRequireDefault(require(\"./steps/resolvePercentRadius\"));\n\nvar _resolvePercentHeight = _interopRequireDefault(require(\"./steps/resolvePercentHeight\"));\n\nvar _resolveLinkSubstitution = _interopRequireDefault(require(\"./steps/resolveLinkSubstitution\"));\n\n// import * as R from 'ramda';\n// const startTimer = name => R.tap(() => console.time(name));\n// const endTimer = name => R.tap(() => console.timeEnd(name));\nvar layout = (0, _asyncCompose.default)(_resolveZIndex.default, _resolveOrigins.default, _resolvePagination.default, _resolveTextLayout.default, _resolvePercentRadius.default, _resolveDimensions.default, _resolveSvg.default, _resolveAssets.default, _resolveInheritance.default, _resolvePercentHeight.default, _resolvePagePaddings.default, _resolveStyles.default, _resolveLinkSubstitution.default, _resolvePageSizes.default);\nvar _default = layout;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _primitives = require(\"@react-pdf/primitives\");\n\nvar _castArray = _interopRequireDefault(require(\"../utils/castArray\"));\n\nvar isString = R.is(String);\nvar isNumber = R.is(Number);\nvar isNotString = R.complement(isString);\n/**\n * Transforms a react element instance to internal element format\n *\n * @param {Object} React element\n * @returns {Object} parsed react element\n */\n\nvar createInstance = function createInstance(element) {\n if (!element) return null;\n if (isString(element) || isNumber(element)) return {\n type: _primitives.TextInstance,\n value: \"\" + element\n };\n if (isNotString(element.type)) return createInstance(element.type(element.props));\n var type = element.type,\n _element$props = element.props,\n _element$props$style = _element$props.style,\n style = _element$props$style === void 0 ? {} : _element$props$style,\n _element$props$childr = _element$props.children,\n children = _element$props$childr === void 0 ? [] : _element$props$childr,\n props = (0, _objectWithoutPropertiesLoose2.default)(_element$props, [\"style\", \"children\"]);\n var nextChildren = R.compose(R.map(createInstance), _castArray.default)(children);\n return {\n type: type,\n style: style,\n props: props,\n box: {},\n children: nextChildren\n };\n};\n\nvar _default = createInstance;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar getComputedBorder = function getComputedBorder(yogaNode, edge) {\n return yogaNode ? yogaNode.getComputedBorder(edge) : 0;\n};\n/**\n * Get Yoga computed border width. Zero otherwise\n *\n * @param {Object} node\n * @return {Object} border widths\n */\n\n\nvar getBorderWidth = function getBorderWidth(node) {\n var yogaNode = node._yogaNode;\n return {\n borderTopWidth: getComputedBorder(yogaNode, _yoga.default.EDGE_TOP),\n borderRightWidth: getComputedBorder(yogaNode, _yoga.default.EDGE_RIGHT),\n borderBottomWidth: getComputedBorder(yogaNode, _yoga.default.EDGE_BOTTOM),\n borderLeftWidth: getComputedBorder(yogaNode, _yoga.default.EDGE_LEFT)\n };\n};\n\nvar _default = getBorderWidth;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar DEFAULT_DIMENSION = {\n width: 0,\n height: 0\n};\n/**\n * Get Yoga computed dimensions. Zero otherwise\n *\n * @param {Object} node\n * @return {Object} dimensions\n */\n\nvar getDimension = function getDimension(node) {\n var yogaNode = node._yogaNode;\n if (!yogaNode) return DEFAULT_DIMENSION;\n return {\n width: yogaNode.getComputedWidth(),\n height: yogaNode.getComputedHeight()\n };\n};\n\nvar _default = getDimension;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar getComputedMargin = function getComputedMargin(node, edge) {\n var yogaNode = node._yogaNode;\n return yogaNode ? yogaNode.getComputedMargin(edge) : null;\n};\n/**\n * Get Yoga computed magins. Zero otherwise\n *\n * @param {Object} node\n * @return {Object} margins\n */\n\n\nvar getMargin = function getMargin(node) {\n var style = node.style,\n box = node.box;\n var marginTop = getComputedMargin(node, _yoga.default.EDGE_TOP) || (box === null || box === void 0 ? void 0 : box.marginTop) || (style === null || style === void 0 ? void 0 : style.marginTop) || (style === null || style === void 0 ? void 0 : style.marginVertical) || (style === null || style === void 0 ? void 0 : style.margin) || 0;\n var marginRight = getComputedMargin(node, _yoga.default.EDGE_RIGHT) || (box === null || box === void 0 ? void 0 : box.marginRight) || (style === null || style === void 0 ? void 0 : style.marginRight) || (style === null || style === void 0 ? void 0 : style.marginHorizontal) || (style === null || style === void 0 ? void 0 : style.margin) || 0;\n var marginBottom = getComputedMargin(node, _yoga.default.EDGE_BOTTOM) || (box === null || box === void 0 ? void 0 : box.marginBottom) || (style === null || style === void 0 ? void 0 : style.marginBottom) || (style === null || style === void 0 ? void 0 : style.marginVertical) || (style === null || style === void 0 ? void 0 : style.margin) || 0;\n var marginLeft = getComputedMargin(node, _yoga.default.EDGE_LEFT) || (box === null || box === void 0 ? void 0 : box.marginLeft) || (style === null || style === void 0 ? void 0 : style.marginLeft) || (style === null || style === void 0 ? void 0 : style.marginHorizontal) || (style === null || style === void 0 ? void 0 : style.margin) || 0;\n return {\n marginTop: marginTop,\n marginRight: marginRight,\n marginBottom: marginBottom,\n marginLeft: marginLeft\n };\n};\n\nvar _default = getMargin;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get many nodes height\n *\n * @param {Array} nodes\n * @return {number} nodes height\n */\nvar getNodesHeight = function getNodesHeight(nodes) {\n var max = 0;\n var min = Infinity;\n if (R.isEmpty(nodes)) return 0;\n\n for (var i = 0; i < nodes.length; i += 1) {\n var node = nodes[i];\n min = Math.min(min, node.box.top);\n max = Math.max(max, node.box.top + node.box.height);\n }\n\n return max - min;\n};\n\nvar _default = getNodesHeight;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _matchPercent = _interopRequireDefault(require(\"../utils/matchPercent\"));\n\nvar getTransformStyle = function getTransformStyle(s) {\n return R.pathOr('50%', ['style', s]);\n};\n/**\n * Get node origin\n *\n * @param {Object} node\n * @returns {Object} node origin\n */\n\n\nvar getOrigin = function getOrigin(node) {\n if (!node.box) return {};\n var _node$box = node.box,\n left = _node$box.left,\n top = _node$box.top,\n width = _node$box.width,\n height = _node$box.height;\n var transformOriginX = getTransformStyle('transformOriginX')(node);\n var transformOriginY = getTransformStyle('transformOriginY')(node);\n var percentX = (0, _matchPercent.default)(transformOriginX);\n var percentY = (0, _matchPercent.default)(transformOriginY);\n var offsetX = percentX ? width * percentX.percent : transformOriginX;\n var offsetY = percentY ? height * percentY.percent : transformOriginY;\n return {\n left: left + offsetX,\n top: top + offsetY\n };\n};\n\nvar _default = getOrigin;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar getComputedPadding = function getComputedPadding(node, edge) {\n var yogaNode = node._yogaNode;\n return yogaNode ? yogaNode.getComputedPadding(edge) : null;\n};\n/**\n * Get Yoga computed paddings. Zero otherwise\n *\n * @param {Object} node\n * @return {Object} paddings\n */\n\n\nvar getPadding = function getPadding(node) {\n var style = node.style,\n box = node.box;\n var paddingTop = getComputedPadding(node, _yoga.default.EDGE_TOP) || (box === null || box === void 0 ? void 0 : box.paddingTop) || (style === null || style === void 0 ? void 0 : style.paddingTop) || (style === null || style === void 0 ? void 0 : style.paddingVertical) || (style === null || style === void 0 ? void 0 : style.padding) || 0;\n var paddingRight = getComputedPadding(node, _yoga.default.EDGE_RIGHT) || (box === null || box === void 0 ? void 0 : box.paddingRight) || (style === null || style === void 0 ? void 0 : style.paddingRight) || (style === null || style === void 0 ? void 0 : style.paddingHorizontal) || (style === null || style === void 0 ? void 0 : style.padding) || 0;\n var paddingBottom = getComputedPadding(node, _yoga.default.EDGE_BOTTOM) || (box === null || box === void 0 ? void 0 : box.paddingBottom) || (style === null || style === void 0 ? void 0 : style.paddingBottom) || (style === null || style === void 0 ? void 0 : style.paddingVertical) || (style === null || style === void 0 ? void 0 : style.padding) || 0;\n var paddingLeft = getComputedPadding(node, _yoga.default.EDGE_LEFT) || (box === null || box === void 0 ? void 0 : box.paddingLeft) || (style === null || style === void 0 ? void 0 : style.paddingLeft) || (style === null || style === void 0 ? void 0 : style.paddingHorizontal) || (style === null || style === void 0 ? void 0 : style.padding) || 0;\n return {\n paddingTop: paddingTop,\n paddingRight: paddingRight,\n paddingBottom: paddingBottom,\n paddingLeft: paddingLeft\n };\n};\n\nvar _default = getPadding;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get Yoga computed position. Zero otherwise\n *\n * @param {Object} node\n * @return {Object} position\n */\nvar getPosition = function getPosition(node) {\n var yogaNode = node._yogaNode;\n return {\n top: (yogaNode === null || yogaNode === void 0 ? void 0 : yogaNode.getComputedTop()) || 0,\n right: (yogaNode === null || yogaNode === void 0 ? void 0 : yogaNode.getComputedRight()) || 0,\n bottom: (yogaNode === null || yogaNode === void 0 ? void 0 : yogaNode.getComputedBottom()) || 0,\n left: (yogaNode === null || yogaNode === void 0 ? void 0 : yogaNode.getComputedLeft()) || 0\n };\n};\n\nvar _default = getPosition;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _upperFirst = _interopRequireDefault(require(\"../utils/upperFirst\"));\n\n/**\n * Set generic align attribute to node's Yoga instance\n *\n * @param {String} specific align property\n * @param {String} align value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setAlign = function setAlign(attr) {\n return function (value) {\n return R.tap(function (node) {\n var yogaNode = node._yogaNode;\n\n if (yogaNode) {\n var yogaValue = R.cond([[R.equals('flex-start'), R.always(_yoga.default.ALIGN_FLEX_START)], [R.equals('center'), R.always(_yoga.default.ALIGN_CENTER)], [R.equals('flex-end'), R.always(_yoga.default.ALIGN_FLEX_END)], [R.equals('stretch'), R.always(_yoga.default.ALIGN_STRETCH)], [R.equals('baseline'), R.always(_yoga.default.ALIGN_BASELINE)], [R.equals('space-between'), R.always(_yoga.default.ALIGN_SPACE_BETWEEN)], [R.equals('space-around'), R.always(_yoga.default.ALIGN_SPACE_AROUND)], [R.T, R.always(attr === 'items' ? _yoga.default.ALIGN_STRETCH : _yoga.default.ALIGN_AUTO)]])(value);\n yogaNode[\"setAlign\" + (0, _upperFirst.default)(attr)](yogaValue);\n }\n });\n };\n};\n\nvar _default = setAlign;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setAlign = _interopRequireDefault(require(\"./setAlign\"));\n\n/**\n * Set align content attribute to node's Yoga instance\n *\n * @param {String} align value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setAlignContent = (0, _setAlign.default)('content');\nvar _default = setAlignContent;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setAlign = _interopRequireDefault(require(\"./setAlign\"));\n\n/**\n * Set align items attribute to node's Yoga instance\n *\n * @param {String} align value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setAlignItems = (0, _setAlign.default)('items');\nvar _default = setAlignItems;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setAlign = _interopRequireDefault(require(\"./setAlign\"));\n\n/**\n * Set align self attribute to node's Yoga instance\n *\n * @param {String} align value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setAlignSelf = (0, _setAlign.default)('self');\nvar _default = setAlignSelf;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Set aspect ratio attribute to node's Yoga instance\n *\n * @param {Number} ratio\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setAspectRatio = function setAspectRatio(value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (!R.isNil(value) && yogaNode) {\n yogaNode.setAspectRatio(value);\n }\n\n return node;\n };\n};\n\nvar _default = setAspectRatio;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.setBorder = exports.setBorderLeft = exports.setBorderBottom = exports.setBorderRight = exports.setBorderTop = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set border top attribute to node's Yoga instance\n *\n * @param {Number} border top width\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setBorderTop = (0, _setYogaValue.default)('border', _yoga.default.EDGE_TOP);\n/**\n * Set border right attribute to node's Yoga instance\n *\n * @param {Number} border right width\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setBorderTop = setBorderTop;\nvar setBorderRight = (0, _setYogaValue.default)('border', _yoga.default.EDGE_RIGHT);\n/**\n * Set border bottom attribute to node's Yoga instance\n *\n * @param {Number} border bottom width\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setBorderRight = setBorderRight;\nvar setBorderBottom = (0, _setYogaValue.default)('border', _yoga.default.EDGE_BOTTOM);\n/**\n * Set border left attribute to node's Yoga instance\n *\n * @param {Number} border left width\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setBorderBottom = setBorderBottom;\nvar setBorderLeft = (0, _setYogaValue.default)('border', _yoga.default.EDGE_LEFT);\n/**\n * Set all border widths at once\n *\n * @param {Number} border width\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setBorderLeft = setBorderLeft;\n\nvar setBorder = function setBorder(width) {\n return function (node) {\n setBorderTop(width)(node);\n setBorderRight(width)(node);\n setBorderBottom(width)(node);\n setBorderLeft(width)(node);\n return node;\n };\n};\n\nexports.setBorder = setBorder;\nvar _default = setBorder;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.setMaxHeight = exports.setMinHeight = exports.setHeight = exports.setMaxWidth = exports.setMinWidth = exports.setWidth = void 0;\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set width to node's Yoga instance\n *\n * @param {Number} width\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setWidth = (0, _setYogaValue.default)('width');\n/**\n * Set min width to node's Yoga instance\n *\n * @param {Number} min width\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setWidth = setWidth;\nvar setMinWidth = (0, _setYogaValue.default)('minWidth');\n/**\n * Set max width to node's Yoga instance\n *\n * @param {Number} max width\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMinWidth = setMinWidth;\nvar setMaxWidth = (0, _setYogaValue.default)('maxWidth');\n/**\n * Set height to node's Yoga instance\n *\n * @param {Number} height\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMaxWidth = setMaxWidth;\nvar setHeight = (0, _setYogaValue.default)('height');\n/**\n * Set min height to node's Yoga instance\n *\n * @param {Number} min height\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setHeight = setHeight;\nvar setMinHeight = (0, _setYogaValue.default)('minHeight');\n/**\n * Set max height to node's Yoga instance\n *\n * @param {Number} max height\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMinHeight = setMinHeight;\nvar setMaxHeight = (0, _setYogaValue.default)('maxHeight');\nexports.setMaxHeight = setMaxHeight;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\n/**\n * Set display attribute to node's Yoga instance\n *\n * @param {String} display\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setDisplay = function setDisplay(value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (yogaNode) {\n yogaNode.setDisplay(value === 'none' ? _yoga.default.DISPLAY_NONE : _yoga.default.DISPLAY_FLEX);\n }\n\n return node;\n };\n};\n\nvar _default = setDisplay;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set flex basis attribute to node's Yoga instance\n *\n * @param {Number} flex basis value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setFlexBasis = (0, _setYogaValue.default)('flexBasis');\nvar _default = setFlexBasis;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar isRow = R.equals('row');\nvar isRowReverse = R.equals('row-reverse');\nvar isColumnReverse = R.equals('column-reverse');\n/**\n * Set flex direction attribute to node's Yoga instance\n *\n * @param {String} flex direction value\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nvar setFlexDirection = function setFlexDirection(value) {\n return R.tap(function (node) {\n var yogaNode = node._yogaNode;\n\n if (yogaNode) {\n var yogaValue = R.cond([[isRow, R.always(_yoga.default.FLEX_DIRECTION_ROW)], [isRowReverse, R.always(_yoga.default.FLEX_DIRECTION_ROW_REVERSE)], [isColumnReverse, R.always(_yoga.default.FLEX_DIRECTION_COLUMN_REVERSE)], [R.T, R.always(_yoga.default.FLEX_DIRECTION_COLUMN)]])(value);\n yogaNode.setFlexDirection(yogaValue);\n }\n });\n};\n\nvar _default = setFlexDirection;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set flex grow attribute to node's Yoga instance\n *\n * @param {Number} flex grow value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setFlexGrow = R.compose((0, _setYogaValue.default)('flexGrow'), R.defaultTo(0));\nvar _default = setFlexGrow;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set flex shrink attribute to node's Yoga instance\n *\n * @param {Number} flex shrink value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setFlexShrink = R.compose((0, _setYogaValue.default)('flexShrink'), R.defaultTo(1));\nvar _default = setFlexShrink;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\n/**\n * Set flex wrap attribute to node's Yoga instance\n *\n * @param {String} flex wrap value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setFlexWrap = function setFlexWrap(value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (yogaNode) {\n var yogaValue = R.cond([[R.equals('wrap'), R.always(_yoga.default.WRAP_WRAP)], [R.equals('wrap-reverse'), R.always(_yoga.default.WRAP_WRAP_REVERSE)], [R.T, R.always(_yoga.default.WRAP_NO_WRAP)]])(value);\n yogaNode.setFlexWrap(yogaValue);\n }\n\n return node;\n };\n};\n\nvar _default = setFlexWrap;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\n/**\n * Set justify content attribute to node's Yoga instance\n *\n * @param {String} justify content value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setJustifyContent = function setJustifyContent(value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (!R.isNil(value) && yogaNode) {\n var yogaValue = R.cond([[R.equals('center'), R.always(_yoga.default.JUSTIFY_CENTER)], [R.equals('flex-end'), R.always(_yoga.default.JUSTIFY_FLEX_END)], [R.equals('space-between'), R.always(_yoga.default.JUSTIFY_SPACE_BETWEEN)], [R.equals('space-around'), R.always(_yoga.default.JUSTIFY_SPACE_AROUND)], [R.equals('space-evenly'), R.always(_yoga.default.JUSTIFY_SPACE_EVENLY)], [R.T, R.always(_yoga.default.JUSTIFY_FLEX_START)]])(value);\n yogaNode.setJustifyContent(yogaValue);\n }\n\n return node;\n };\n};\n\nvar _default = setJustifyContent;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.setMargin = exports.setMarginLeft = exports.setMarginBottom = exports.setMarginRight = exports.setMarginTop = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set margin top attribute to node's Yoga instance\n *\n * @param {Number} margin top\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setMarginTop = (0, _setYogaValue.default)('margin', _yoga.default.EDGE_TOP);\n/**\n * Set margin right attribute to node's Yoga instance\n *\n * @param {Number} margin right\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMarginTop = setMarginTop;\nvar setMarginRight = (0, _setYogaValue.default)('margin', _yoga.default.EDGE_RIGHT);\n/**\n * Set margin bottom attribute to node's Yoga instance\n *\n * @param {Number} margin bottom\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMarginRight = setMarginRight;\nvar setMarginBottom = (0, _setYogaValue.default)('margin', _yoga.default.EDGE_BOTTOM);\n/**\n * Set margin left attribute to node's Yoga instance\n *\n * @param {Number} margin left\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMarginBottom = setMarginBottom;\nvar setMarginLeft = (0, _setYogaValue.default)('margin', _yoga.default.EDGE_LEFT);\n/**\n * Set all margins at once\n *\n * @param {Number} margin\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setMarginLeft = setMarginLeft;\n\nvar setMargin = function setMargin(margin) {\n return function (node) {\n setMarginTop(margin)(node);\n setMarginRight(margin)(node);\n setMarginBottom(margin)(node);\n setMarginLeft(margin)(node);\n return node;\n };\n};\n\nexports.setMargin = setMargin;\nvar _default = setMargin;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\n/**\n * Set overflow attribute to node's Yoga instance\n *\n * @param {String} overflow value\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setOverflow = function setOverflow(value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (!R.isNil(value) && yogaNode) {\n var yogaValue = R.cond([[R.equals('hidden'), R.always(_yoga.default.OVERFLOW_HIDDEN)], [R.equals('scroll'), R.always(_yoga.default.OVERFLOW_SCROLL)], [R.T, R.always(_yoga.default.OVERFLOW_VISIBLE)]])(value);\n yogaNode.setOverflow(yogaValue);\n }\n\n return node;\n };\n};\n\nvar _default = setOverflow;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.setPadding = exports.setPaddingLeft = exports.setPaddingBottom = exports.setPaddingRight = exports.setPaddingTop = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set padding top attribute to node's Yoga instance\n *\n * @param {Number} padding top\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setPaddingTop = (0, _setYogaValue.default)('padding', _yoga.default.EDGE_TOP);\n/**\n * Set padding right attribute to node's Yoga instance\n *\n * @param {Number} padding right\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPaddingTop = setPaddingTop;\nvar setPaddingRight = (0, _setYogaValue.default)('padding', _yoga.default.EDGE_RIGHT);\n/**\n * Set padding bottom attribute to node's Yoga instance\n *\n * @param {Number} padding bottom\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPaddingRight = setPaddingRight;\nvar setPaddingBottom = (0, _setYogaValue.default)('padding', _yoga.default.EDGE_BOTTOM);\n/**\n * Set padding left attribute to node's Yoga instance\n *\n * @param {Number} padding left\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPaddingBottom = setPaddingBottom;\nvar setPaddingLeft = (0, _setYogaValue.default)('padding', _yoga.default.EDGE_LEFT);\n/**\n * Set all paddings at once\n *\n * @param {Number} margin\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPaddingLeft = setPaddingLeft;\n\nvar setPadding = function setPadding(padding) {\n return function (node) {\n setPaddingTop(padding)(node);\n setPaddingRight(padding)(node);\n setPaddingBottom(padding)(node);\n setPaddingLeft(padding)(node);\n return node;\n };\n};\n\nexports.setPadding = setPadding;\nvar _default = setPadding;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.setPosition = exports.setPositionLeft = exports.setPositionBottom = exports.setPositionRight = exports.setPositionTop = void 0;\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _setYogaValue = _interopRequireDefault(require(\"./setYogaValue\"));\n\n/**\n * Set position top attribute to node's Yoga instance\n *\n * @param {Number} position top\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setPositionTop = (0, _setYogaValue.default)('position', _yoga.default.EDGE_TOP);\n/**\n * Set position right attribute to node's Yoga instance\n *\n * @param {Number} position right\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPositionTop = setPositionTop;\nvar setPositionRight = (0, _setYogaValue.default)('position', _yoga.default.EDGE_RIGHT);\n/**\n * Set position bottom attribute to node's Yoga instance\n *\n * @param {Number} position bottom\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPositionRight = setPositionRight;\nvar setPositionBottom = (0, _setYogaValue.default)('position', _yoga.default.EDGE_BOTTOM);\n/**\n * Set position left attribute to node's Yoga instance\n *\n * @param {Number} position left\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPositionBottom = setPositionBottom;\nvar setPositionLeft = (0, _setYogaValue.default)('position', _yoga.default.EDGE_LEFT);\n/**\n * Set all positions at once\n *\n * @param {Number} position\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nexports.setPositionLeft = setPositionLeft;\n\nvar setPosition = function setPosition(position) {\n return function (node) {\n setPositionTop(position)(node);\n setPositionRight(position)(node);\n setPositionBottom(position)(node);\n setPositionLeft(position)(node);\n return node;\n };\n};\n\nexports.setPosition = setPosition;\nvar _default = setPosition;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\n/**\n * Set position type attribute to node's Yoga instance\n *\n * @param {String} position type\n * @param {Object} node instance\n * @return {Object} node instance\n */\nvar setPositionType = function setPositionType(value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (!R.isNil(value) && yogaNode) {\n yogaNode.setPositionType(value === 'absolute' ? _yoga.default.POSITION_TYPE_ABSOLUTE : _yoga.default.POSITION_TYPE_RELATIVE);\n }\n\n return node;\n };\n};\n\nvar _default = setPositionType;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _upperFirst = _interopRequireDefault(require(\"../utils/upperFirst\"));\n\nvar _matchPercent = _interopRequireDefault(require(\"../utils/matchPercent\"));\n\n/* eslint-disable no-unused-expressions */\nvar isNotNil = R.complement(R.isNil);\n/**\n * Set generic yoga attribute to node's Yoga instance, handing `auto`, edges and percentage cases\n *\n * @param {String} property\n * @param {Number} edge\n * @param {any} value\n * @param {Object} node instance\n * @return {Object} node instance\n */\n\nvar setYogaValue = function setYogaValue(attr, edge) {\n return function (value) {\n return function (node) {\n var yogaNode = node._yogaNode;\n\n if (!R.isNil(value) && yogaNode) {\n var hasEdge = isNotNil(edge);\n var fixedMethod = \"set\" + (0, _upperFirst.default)(attr);\n var autoMethod = fixedMethod + \"Auto\";\n var percentMethod = fixedMethod + \"Percent\";\n var percent = (0, _matchPercent.default)(value);\n\n if (percent && !yogaNode[percentMethod]) {\n throw new Error(\"You can't pass percentage values to \" + attr + \" property\");\n }\n\n if (percent) {\n if (hasEdge) {\n var _yogaNode$percentMeth;\n\n (_yogaNode$percentMeth = yogaNode[percentMethod]) === null || _yogaNode$percentMeth === void 0 ? void 0 : _yogaNode$percentMeth.call(yogaNode, edge, percent.value);\n } else {\n var _yogaNode$percentMeth2;\n\n (_yogaNode$percentMeth2 = yogaNode[percentMethod]) === null || _yogaNode$percentMeth2 === void 0 ? void 0 : _yogaNode$percentMeth2.call(yogaNode, percent.value);\n }\n } else if (value === 'auto') {\n if (hasEdge) {\n var _yogaNode$autoMethod;\n\n (_yogaNode$autoMethod = yogaNode[autoMethod]) === null || _yogaNode$autoMethod === void 0 ? void 0 : _yogaNode$autoMethod.call(yogaNode, edge);\n } else if (attr === 'flexBasis') {\n // YogaNode.setFlexBasisAuto is missing (#766)\n yogaNode.setFlexBasis(_yoga.default.UNIT_AUTO);\n } else {\n var _yogaNode$autoMethod2;\n\n (_yogaNode$autoMethod2 = yogaNode[autoMethod]) === null || _yogaNode$autoMethod2 === void 0 ? void 0 : _yogaNode$autoMethod2.call(yogaNode);\n }\n } else if (hasEdge) {\n var _yogaNode$fixedMethod;\n\n (_yogaNode$fixedMethod = yogaNode[fixedMethod]) === null || _yogaNode$fixedMethod === void 0 ? void 0 : _yogaNode$fixedMethod.call(yogaNode, edge, value);\n } else {\n var _yogaNode$fixedMethod2;\n\n (_yogaNode$fixedMethod2 = yogaNode[fixedMethod]) === null || _yogaNode$fixedMethod2 === void 0 ? void 0 : _yogaNode$fixedMethod2.call(yogaNode, value);\n }\n }\n\n return node;\n };\n };\n};\n\nvar _default = setYogaValue;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _getNodesHeight = _interopRequireDefault(require(\"./getNodesHeight\"));\n\n/* eslint-disable no-continue */\nvar isType = R.propEq('type');\nvar isSvg = isType(P.Svg);\nvar isNote = isType(P.Note);\nvar isImage = isType(P.Image);\nvar isCanvas = isType(P.Canvas);\nvar getWrap = R.ifElse(R.anyPass([isSvg, isNote, isImage, isCanvas]), R.always(false), R.pathOr(true, ['props', 'wrap']));\nvar getBreak = R.pathOr(false, ['props', 'break']);\nvar getMinPresenceAhead = R.path(['props', 'minPresenceAhead']);\n\nvar defaultPresenceAhead = function defaultPresenceAhead(element) {\n return function (height) {\n return Math.min(element.box.height, height);\n };\n};\n\nvar getPresenceAhead = function getPresenceAhead(elements, height) {\n var result = 0;\n\n for (var i = 0; i < elements.length; i += 1) {\n var element = elements[i];\n if (!element.box) continue;\n var isElementInside = height > element.box.top;\n var presenceAhead = element.props.presenceAhead || defaultPresenceAhead(element);\n\n if (element && isElementInside) {\n result += presenceAhead(height - element.box.top);\n }\n }\n\n return result;\n};\n\nvar shouldBreak = function shouldBreak(child, futureElements, height) {\n var minPresenceAhead = getMinPresenceAhead(child);\n var presenceAhead = getPresenceAhead(futureElements, height);\n var futureHeight = (0, _getNodesHeight.default)(futureElements);\n var shouldSplit = height < child.box.top + child.box.height;\n var shouldWrap = getWrap(child);\n return getBreak(child) || !shouldWrap && shouldSplit || minPresenceAhead < futureHeight && presenceAhead < minPresenceAhead;\n};\n\nvar _default = shouldBreak;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar zero = R.always(0);\nvar getTop = R.pathOr(0, ['box', 'top']);\nvar hasFixedHeight = R.hasPath(['style', 'height']);\n\nvar subtractHeight = function subtractHeight(value) {\n return R.o(R.subtract(R.__, value), R.path(['box', 'height']));\n};\n\nvar splitNode = function splitNode(node, height) {\n if (!node) return [null, null];\n var nodeTop = getTop(node); // TODO: We should keep style untouched\n\n var current = R.evolve({\n style: R.evolve({\n marginBottom: zero,\n paddingBottom: zero,\n borderBottomWidth: zero,\n borderBottomLeftRadius: zero,\n borderBottomRightRadius: zero\n }),\n box: {\n height: R.always(height - nodeTop),\n borderBottomWidth: zero\n }\n })(node);\n var nextHeight = R.ifElse(hasFixedHeight, subtractHeight(height - nodeTop), R.always(null))(node); // TODO: We should keep style untouched\n\n var next = R.evolve({\n style: R.evolve({\n marginTop: zero,\n paddingTop: zero,\n borderTopWidth: zero,\n borderTopLeftRadius: zero,\n borderTopRightRadius: zero\n }),\n box: {\n top: zero,\n height: R.always(nextHeight),\n borderTopWidth: zero\n }\n })(node);\n return [current, next];\n};\n\nvar _default = splitNode;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getPadding2 = _interopRequireDefault(require(\"../node/getPadding\"));\n\nvar getContentArea = function getContentArea(page) {\n var _page$style;\n\n var _getPadding = (0, _getPadding2.default)(page),\n paddingBottom = _getPadding.paddingBottom;\n\n var height = (_page$style = page.style) === null || _page$style === void 0 ? void 0 : _page$style.height;\n return height - paddingBottom;\n};\n\nvar _default = getContentArea;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar VALID_ORIENTATIONS = ['portrait', 'landscape'];\n/**\n * Get page orientation. Defaults to portrait\n *\n * @param { Object } page object\n * @returns { String } page orientation\n */\n\nvar getOrientation = function getOrientation(page) {\n var _page$props;\n\n var value = ((_page$props = page.props) === null || _page$props === void 0 ? void 0 : _page$props.orientation) || 'portrait';\n return VALID_ORIENTATIONS.includes(value) ? value : 'portrait';\n};\n\nvar _default = getOrientation;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _isLandscape = _interopRequireDefault(require(\"./isLandscape\"));\n\nvar PAGE_SIZES = {\n '4A0': [4767.87, 6740.79],\n '2A0': [3370.39, 4767.87],\n A0: [2383.94, 3370.39],\n A1: [1683.78, 2383.94],\n A2: [1190.55, 1683.78],\n A3: [841.89, 1190.55],\n A4: [595.28, 841.89],\n A5: [419.53, 595.28],\n A6: [297.64, 419.53],\n A7: [209.76, 297.64],\n A8: [147.4, 209.76],\n A9: [104.88, 147.4],\n A10: [73.7, 104.88],\n B0: [2834.65, 4008.19],\n B1: [2004.09, 2834.65],\n B2: [1417.32, 2004.09],\n B3: [1000.63, 1417.32],\n B4: [708.66, 1000.63],\n B5: [498.9, 708.66],\n B6: [354.33, 498.9],\n B7: [249.45, 354.33],\n B8: [175.75, 249.45],\n B9: [124.72, 175.75],\n B10: [87.87, 124.72],\n C0: [2599.37, 3676.54],\n C1: [1836.85, 2599.37],\n C2: [1298.27, 1836.85],\n C3: [918.43, 1298.27],\n C4: [649.13, 918.43],\n C5: [459.21, 649.13],\n C6: [323.15, 459.21],\n C7: [229.61, 323.15],\n C8: [161.57, 229.61],\n C9: [113.39, 161.57],\n C10: [79.37, 113.39],\n RA0: [2437.8, 3458.27],\n RA1: [1729.13, 2437.8],\n RA2: [1218.9, 1729.13],\n RA3: [864.57, 1218.9],\n RA4: [609.45, 864.57],\n SRA0: [2551.18, 3628.35],\n SRA1: [1814.17, 2551.18],\n SRA2: [1275.59, 1814.17],\n SRA3: [907.09, 1275.59],\n SRA4: [637.8, 907.09],\n EXECUTIVE: [521.86, 756.0],\n FOLIO: [612.0, 936.0],\n LEGAL: [612.0, 1008.0],\n LETTER: [612.0, 792.0],\n TABLOID: [792.0, 1224.0],\n ID1: [153, 243]\n};\n/**\n * Transforms array into size object\n *\n * @param {Array} array\n * @returns {Object} size object with width and height\n */\n\nvar toSizeObject = function toSizeObject(v) {\n return {\n width: v[0],\n height: v[1]\n };\n};\n/**\n * Flip size object\n *\n * @param {Object} size object\n * @returns {Object} flipped size object\n */\n\n\nvar flipSizeObject = function flipSizeObject(v) {\n return {\n width: v.height,\n height: v.width\n };\n};\n/**\n * Returns size object from a given string\n *\n * @param {String} page size string\n * @returns {Object} size object with width and height\n */\n\n\nvar getStringSize = function getStringSize(v) {\n return toSizeObject(PAGE_SIZES[v.toUpperCase()]);\n};\n/**\n * Returns size object from a single number\n *\n * @param {Number} page size number\n * @returns {Object} size object with width and height\n */\n\n\nvar getNumberSize = function getNumberSize(n) {\n return toSizeObject([n]);\n};\n/**\n * Throws invalid size error\n *\n * @param {String} invalid page size input\n */\n\n\nvar throwInvalidError = function throwInvalidError(size) {\n throw new Error(\"Invalid Page size: \" + JSON.stringify(size));\n};\n/**\n * Return page size in an object { width, height }\n *\n * @param {Object} page instance\n * @returns {Object} size object with width and height\n */\n\n\nvar getSize = function getSize(page) {\n var _page$props;\n\n var value = ((_page$props = page.props) === null || _page$props === void 0 ? void 0 : _page$props.size) || 'A4';\n var size = R.cond([[R.is(String), getStringSize], [R.is(Array), toSizeObject], [R.is(Number), getNumberSize], [R.is(Object), R.identity], [R.T, throwInvalidError]])(value);\n return (0, _isLandscape.default)(page) ? flipSizeObject(size) : size;\n};\n\nvar _default = getSize;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Checks if page has auto height\n *\n * @param {Object} page\n * @returns {Boolean} is page height auto\n */\nvar isHeightAuto = R.pathSatisfies(R.isNil, ['box', 'height']);\nvar _default = isHeightAuto;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _getOrientation = _interopRequireDefault(require(\"./getOrientation\"));\n\n/**\n * Return true if page is landscape\n *\n * @param {Object} page instance\n * @returns {Boolean} is page landscape\n */\nvar isLandscape = function isLandscape(page) {\n return (0, _getOrientation.default)(page) === 'landscape';\n};\n\nvar _default = isLandscape;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _emoji = _interopRequireDefault(require(\"../text/emoji\"));\n\nvar _fetchImage = _interopRequireDefault(require(\"../image/fetchImage\"));\n\nvar isImage = R.propEq('type', P.Image);\n/**\n * Get all asset promises that need to be resolved\n *\n * @param {Object} root node\n * @returns {Array} asset promises\n */\n\nvar fetchAssets = function fetchAssets(fontStore, node) {\n var _node$children;\n\n var promises = [];\n var listToExplore = ((_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children.slice(0)) || [];\n var emojiSource = fontStore ? fontStore.getEmojiSource() : null;\n\n while (listToExplore.length > 0) {\n var _n$style;\n\n var n = listToExplore.shift();\n\n if (isImage(n)) {\n promises.push((0, _fetchImage.default)(n));\n }\n\n if (fontStore && (_n$style = n.style) !== null && _n$style !== void 0 && _n$style.fontFamily) {\n promises.push(fontStore.load(n.style));\n }\n\n if (typeof n === 'string') {\n promises.push.apply(promises, (0, _emoji.default)(n, emojiSource));\n }\n\n if (typeof n.value === 'string') {\n promises.push.apply(promises, (0, _emoji.default)(n.value, emojiSource));\n }\n\n if (n.children) {\n n.children.forEach(function (childNode) {\n listToExplore.push(childNode);\n });\n }\n }\n\n return promises;\n};\n/**\n * Fetch image, font and emoji assets in parallel.\n * Layout process will not be resumed until promise resolves.\n *\n * @param {Object} root node\n * @param {Object} fontStore font store\n * @returns {Object} root node\n */\n\n\nvar resolveAssets = /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(node, fontStore) {\n var promises;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n promises = fetchAssets(fontStore, node);\n _context.next = 3;\n return Promise.all(promises);\n\n case 3:\n return _context.abrupt(\"return\", node);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function resolveAssets(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _default = resolveAssets;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = exports.resolvePageDimensions = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _getMargin = _interopRequireDefault(require(\"../node/getMargin\"));\n\nvar _getPadding = _interopRequireDefault(require(\"../node/getPadding\"));\n\nvar _getPosition = _interopRequireDefault(require(\"../node/getPosition\"));\n\nvar _getDimension = _interopRequireDefault(require(\"../node/getDimension\"));\n\nvar _getBorderWidth = _interopRequireDefault(require(\"../node/getBorderWidth\"));\n\nvar _setDisplay = _interopRequireDefault(require(\"../node/setDisplay\"));\n\nvar _setOverflow = _interopRequireDefault(require(\"../node/setOverflow\"));\n\nvar _setFlexWrap = _interopRequireDefault(require(\"../node/setFlexWrap\"));\n\nvar _setFlexGrow = _interopRequireDefault(require(\"../node/setFlexGrow\"));\n\nvar _setFlexBasis = _interopRequireDefault(require(\"../node/setFlexBasis\"));\n\nvar _setAlignSelf = _interopRequireDefault(require(\"../node/setAlignSelf\"));\n\nvar _setAlignItems = _interopRequireDefault(require(\"../node/setAlignItems\"));\n\nvar _setFlexShrink = _interopRequireDefault(require(\"../node/setFlexShrink\"));\n\nvar _setAspectRatio = _interopRequireDefault(require(\"../node/setAspectRatio\"));\n\nvar _setAlignContent = _interopRequireDefault(require(\"../node/setAlignContent\"));\n\nvar _setPositionType = _interopRequireDefault(require(\"../node/setPositionType\"));\n\nvar _setFlexDirection = _interopRequireDefault(require(\"../node/setFlexDirection\"));\n\nvar _setJustifyContent = _interopRequireDefault(require(\"../node/setJustifyContent\"));\n\nvar _setMargin = require(\"../node/setMargin\");\n\nvar _setPadding = require(\"../node/setPadding\");\n\nvar _setBorderWidth = require(\"../node/setBorderWidth\");\n\nvar _setPosition = require(\"../node/setPosition\");\n\nvar _setDimension = require(\"../node/setDimension\");\n\nvar _measureSvg = _interopRequireDefault(require(\"../svg/measureSvg\"));\n\nvar _measureText = _interopRequireDefault(require(\"../text/measureText\"));\n\nvar _measureImage = _interopRequireDefault(require(\"../image/measureImage\"));\n\nvar _measureCanvas = _interopRequireDefault(require(\"../canvas/measureCanvas\"));\n\nvar YOGA_NODE = '_yogaNode';\n\nvar YOGA_CONFIG = _yoga.default.Config.create();\n\nYOGA_CONFIG.setPointScaleFactor(0);\nvar isType = R.propEq('type');\nvar isSvg = isType(P.Svg);\nvar isText = isType(P.Text);\nvar isNote = isType(P.Note);\nvar isPage = isType(P.Page);\nvar isImage = isType(P.Image);\nvar isCanvas = isType(P.Canvas);\nvar isTextInstance = isType(P.TextInstance);\n\nvar setNodeHeight = function setNodeHeight(node) {\n return R.ifElse(isPage, (0, _setDimension.setHeight)(node.box.height), (0, _setDimension.setHeight)(node.box.height || node.style.height));\n};\n/**\n * Set styles valeus into yoga node before layout calculation\n *\n * @param {Object} node\n * @returns {Object} node\n */\n\n\nvar setYogaValues = R.tap(function (node) {\n R.compose(setNodeHeight(node), (0, _setDimension.setWidth)(node.style.width), (0, _setDimension.setMinWidth)(node.style.minWidth), (0, _setDimension.setMaxWidth)(node.style.maxWidth), (0, _setDimension.setMinHeight)(node.style.minHeight), (0, _setDimension.setMaxHeight)(node.style.maxHeight), (0, _setMargin.setMarginTop)(node.style.marginTop), (0, _setMargin.setMarginRight)(node.style.marginRight), (0, _setMargin.setMarginBottom)(node.style.marginBottom), (0, _setMargin.setMarginLeft)(node.style.marginLeft), (0, _setPadding.setPaddingTop)(node.style.paddingTop), (0, _setPadding.setPaddingRight)(node.style.paddingRight), (0, _setPadding.setPaddingBottom)(node.style.paddingBottom), (0, _setPadding.setPaddingLeft)(node.style.paddingLeft), (0, _setPositionType.default)(node.style.position), (0, _setPosition.setPositionTop)(node.style.top), (0, _setPosition.setPositionRight)(node.style.right), (0, _setPosition.setPositionBottom)(node.style.bottom), (0, _setPosition.setPositionLeft)(node.style.left), (0, _setBorderWidth.setBorderTop)(node.style.borderTopWidth), (0, _setBorderWidth.setBorderRight)(node.style.borderRightWidth), (0, _setBorderWidth.setBorderBottom)(node.style.borderBottomWidth), (0, _setBorderWidth.setBorderLeft)(node.style.borderLeftWidth), (0, _setDisplay.default)(node.style.display), (0, _setFlexDirection.default)(node.style.flexDirection), (0, _setAlignSelf.default)(node.style.alignSelf), (0, _setAlignContent.default)(node.style.alignContent), (0, _setAlignItems.default)(node.style.alignItems), (0, _setJustifyContent.default)(node.style.justifyContent), (0, _setFlexWrap.default)(node.style.flexWrap), (0, _setOverflow.default)(node.style.overflow), (0, _setAspectRatio.default)(node.style.aspectRatio), (0, _setFlexBasis.default)(node.style.flexBasis), (0, _setFlexGrow.default)(node.style.flexGrow), (0, _setFlexShrink.default)(node.style.flexShrink))(node);\n});\n/**\n * Inserts child into parent' yoga node\n *\n * @param {Object} parent\n * @param {Object} node\n * @param {Object} node\n */\n\nvar insertYogaNodes = function insertYogaNodes(parent) {\n return R.tap(function (child) {\n return parent.insertChild(child[YOGA_NODE], parent.getChildCount());\n });\n};\n\nvar setMeasureFunc = function setMeasureFunc(page, fontStore) {\n return function (node) {\n var yogaNode = node[YOGA_NODE];\n\n if (isText(node)) {\n yogaNode.setMeasureFunc((0, _measureText.default)(page, node, fontStore));\n }\n\n if (isImage(node)) {\n yogaNode.setMeasureFunc((0, _measureImage.default)(page, node));\n }\n\n if (isCanvas(node)) {\n yogaNode.setMeasureFunc((0, _measureCanvas.default)(page, node));\n }\n\n if (isSvg(node)) {\n yogaNode.setMeasureFunc((0, _measureSvg.default)(page, node));\n }\n\n return node;\n };\n};\n\nvar isNotText = R.complement(isText);\nvar isNotNote = R.complement(isNote);\nvar isNotSvg = R.complement(isSvg);\nvar isNotTextInstance = R.complement(isTextInstance);\nvar isLayoutElement = R.allPass([isNotText, isNotNote, isNotSvg]);\n/**\n * Creates and add yoga node to document tree\n * Handles measure function for text and image nodes\n *\n * @param {Object} node\n * @returns {Object} node with appended yoga node\n */\n\nvar createYogaNodes = function createYogaNodes(page, fontStore) {\n return function (node) {\n var yogaNode = _yoga.default.Node.createWithConfig(YOGA_CONFIG);\n\n return R.compose(setMeasureFunc(page, fontStore), R.when(isLayoutElement, R.evolve({\n children: R.map(R.compose(insertYogaNodes(yogaNode), createYogaNodes(page, fontStore)))\n })), setYogaValues, R.assoc(YOGA_NODE, yogaNode))(node);\n };\n};\n/**\n * Performs yoga calculation\n *\n * @param {Object} node\n * @returns {Object} node\n */\n\n\nvar calculateLayout = function calculateLayout(page) {\n page[YOGA_NODE].calculateLayout();\n return page;\n};\n/**\n * Saves Yoga layout result into 'box' attribute of node\n *\n * @param {Object} node\n * @returns {Object} node with box data\n */\n\n\nvar persistDimensions = function persistDimensions(node) {\n return R.evolve({\n children: R.map(R.when(isNotTextInstance, persistDimensions)),\n box: R.always(R.mergeAll([(0, _getPadding.default)(node), (0, _getMargin.default)(node), (0, _getBorderWidth.default)(node), (0, _getPosition.default)(node), (0, _getDimension.default)(node)]))\n })(node);\n};\n/**\n * Removes yoga node from document tree\n *\n * @param {Object} node\n * @returns {Object} node without yoga node\n */\n\n\nvar destroyYogaNodes = function destroyYogaNodes(node) {\n return R.compose(R.dissoc(YOGA_NODE), R.evolve({\n children: R.map(destroyYogaNodes)\n }))(node);\n};\n/**\n * Free yoga node from document tree\n *\n * @param {Object} node\n * @returns {Object} node without yoga node\n */\n\n\nvar freeYogaNodes = function freeYogaNodes(node) {\n if (node[YOGA_NODE]) node[YOGA_NODE].freeRecursive();\n return node;\n};\n/**\n * Calculates page object layout using Yoga.\n * Takes node values from 'box' and 'style' attributes, and persist them back into 'box'\n * Destroy yoga values at the end.\n *\n * @param {Object} page object\n * @returns {Object} page object with correct 'box' layout attributes\n */\n\n\nvar resolvePageDimensions = function resolvePageDimensions(page, fontStore) {\n return R.ifElse(R.isNil, R.always(null), R.compose(destroyYogaNodes, freeYogaNodes, persistDimensions, calculateLayout, createYogaNodes(page, fontStore)))(page);\n};\n/**\n * Calculates root object layout using Yoga.\n *\n * @param {Object} root object\n * @returns {Object} root object with correct 'box' layout attributes\n */\n\n\nexports.resolvePageDimensions = resolvePageDimensions;\n\nvar resolveDimensions = function resolveDimensions(node, fontStore) {\n var mapChild = function mapChild(child) {\n return resolvePageDimensions(child, fontStore);\n };\n\n return R.evolve({\n children: R.map(mapChild)\n })(node);\n};\n\nvar _default = resolveDimensions;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar INHERITED_PROPERTIES = ['color', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'opacity', 'textDecoration', 'textTransform', 'lineHeight', 'textAlign', 'visibility', 'wordSpacing'];\nvar isSvg = R.propEq('type', P.Svg);\n/**\n * Get styles sub group of inherited properties\n *\n * @param {Object} style object\n * @returns {Object} style object only with inherited properties\n */\n\nvar getInheritStyles = R.compose(R.pick(INHERITED_PROPERTIES), R.propOr({}, 'style'));\n/**\n * Merges styles with node\n *\n * @param {Object} style object\n * @param {Object} node\n * @returns {Object} node with styles merged\n */\n\nvar mergeStyles = function mergeStyles(styles) {\n return R.evolve({\n style: R.merge(styles)\n });\n};\n/**\n * Inherit style values from the root to the leafs\n *\n * @param {Object} document root\n * @returns {Object} document root with inheritance\n *\n */\n\n\nvar resolveInheritance = function resolveInheritance(node) {\n if (isSvg(node)) return node;\n var inheritStyles = getInheritStyles(node);\n var resolveChild = R.compose(resolveInheritance, mergeStyles(inheritStyles));\n return R.evolve({\n children: R.map(resolveChild)\n })(node);\n};\n\nvar _default = resolveInheritance;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isType = R.propEq('type');\nvar isLink = isType(P.Link);\nvar isTextInstance = isType(P.TextInstance);\n/**\n * Checks if node has render prop\n *\n * @param {Object} node\n * @returns {Boolean} has render prop?\n */\n\nvar hasRenderProp = R.hasPath(['props', 'render']);\n/**\n * Checks if all children of node are text instances\n *\n * @param {Object} node\n * @returns {Boolean} are all children text instances?\n */\n\nvar hasTextInstanceChilds = R.compose(R.all(isTextInstance), R.propOr([], 'children'));\n/**\n * If the Link has a string child or render prop, substitute the instance by a Text,\n * that will ultimately render the inline Link via the textkit PDF renderer.\n *\n * @param {Object} node\n * @returns {Object} node with link substitution\n */\n\nvar resolveLinkSubstitution = function resolveLinkSubstitution(node) {\n return R.evolve({\n children: R.map(R.ifElse(R.both(isLink, R.either(hasRenderProp, hasTextInstanceChilds)), R.assoc('type', P.Text), resolveLinkSubstitution))\n })(node);\n};\n\nvar _default = resolveLinkSubstitution;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _getOrigin = _interopRequireDefault(require(\"../node/getOrigin\"));\n\n/**\n * Resolve node origin\n *\n * @param {Object} node\n * @returns {Object} node with origin attribute\n */\nvar resolveNodeOrigin = function resolveNodeOrigin(node) {\n return R.compose(R.evolve({\n children: R.map(resolveNodeOrigin)\n }), R.converge(R.assoc('origin'), [_getOrigin.default, R.identity]))(node);\n};\n/**\n * Resolve document origins\n *\n * @param {Object} document root\n * @returns {Object} documrnt root\n */\n\n\nvar resolveOrigin = R.evolve({\n children: R.map(resolveNodeOrigin)\n});\nvar _default = resolveOrigin;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _matchPercent = _interopRequireDefault(require(\"../utils/matchPercent\"));\n\n/*\n * Translates page percentage horizontal paddings in fixed ones\n *\n * @param {Object} page container\n * @param {String} padding value\n * @returns {Object} translated padding value\n */\nvar resolvePageHorizontalPadding = function resolvePageHorizontalPadding(container) {\n return function (value) {\n var match = (0, _matchPercent.default)(value);\n return match ? match.percent * container.width : value;\n };\n};\n/**\n * Translates page percentage vertical paddings in fixed ones\n *\n * @param {Object} page container\n * @param {String} padding value\n * @returns {Object} translated padding value\n */\n\n\nvar resolvePageVerticalPadding = function resolvePageVerticalPadding(container) {\n return function (value) {\n var match = (0, _matchPercent.default)(value);\n return match ? match.percent * container.height : value;\n };\n};\n/**\n * Translates page percentage paddings in fixed ones\n *\n * @param {Object} page\n * @returns {Object} page with fixed paddings\n */\n\n\nvar resolvePagePaddings = function resolvePagePaddings(page) {\n var container = page.style;\n return R.evolve({\n style: R.evolve({\n paddingTop: resolvePageVerticalPadding(container),\n paddingLeft: resolvePageHorizontalPadding(container),\n paddingRight: resolvePageHorizontalPadding(container),\n paddingBottom: resolvePageVerticalPadding(container)\n })\n })(page);\n};\n/**\n * Translates all pages percentage paddings in fixed ones\n * This has to be computed from pages calculated size and not by Yoga\n * because at this point we didn't performed pagination yet.\n *\n * @param {Object} document root\n * @returns {Object} document root with translated page paddings\n */\n\n\nvar _default = R.evolve({\n children: R.map(resolvePagePaddings)\n});\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.resolvePageSize = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _flatten = _interopRequireDefault(require(\"@react-pdf/stylesheet/lib/flatten\"));\n\nvar _getSize = _interopRequireDefault(require(\"../page/getSize\"));\n\n/**\n * Resolves page size\n *\n * @param {Object} page\n * @returns {Object} page with resolved size in style attribute\n */\nvar resolvePageSize = function resolvePageSize(page) {\n var size = (0, _getSize.default)(page);\n var style = (0, _flatten.default)(page.style || {});\n return (0, _extends2.default)({}, page, {\n style: (0, _extends2.default)({}, style, size)\n });\n};\n/**\n * Resolves page sizes\n *\n * @param {Object} document root\n * @returns {Object} document root with resolved page sizes\n */\n\n\nexports.resolvePageSize = resolvePageSize;\nvar resolvePageSizes = R.evolve({\n children: R.map(resolvePageSize)\n});\nvar _default = resolvePageSizes;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _splitText = _interopRequireDefault(require(\"../text/splitText\"));\n\nvar _splitNode2 = _interopRequireDefault(require(\"../node/splitNode\"));\n\nvar _createInstance = _interopRequireDefault(require(\"../node/createInstance\"));\n\nvar _shouldBreak = _interopRequireDefault(require(\"../node/shouldBreak\"));\n\nvar _getContentArea = _interopRequireDefault(require(\"../page/getContentArea\"));\n\nvar _resolveTextLayout = _interopRequireDefault(require(\"./resolveTextLayout\"));\n\nvar _resolveInheritance = _interopRequireDefault(require(\"./resolveInheritance\"));\n\nvar _resolveDimensions = require(\"./resolveDimensions\");\n\n/* eslint-disable no-continue */\n\n/* eslint-disable prefer-destructuring */\nvar isText = R.propEq('type', P.Text); // Prevent splitting elements by low decimal numbers\n\nvar SAFTY_THRESHOLD = 0.001;\nvar assingChildren = R.assoc('children');\nvar getTop = R.pathOr(0, ['box', 'top']);\nvar getHeight = R.path(['box', 'height']);\nvar getChildren = R.propOr([], 'children');\nvar isElementOutside = R.useWith(R.lte, [R.identity, getTop]);\nvar isFixed = R.pathEq(['props', 'fixed'], true);\nvar allFixed = R.all(isFixed);\nvar isDynamic = R.hasPath(['props', 'render']);\n\nvar compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (value) {\n var result = value;\n var reversedFns = R.reverse(fns);\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n for (var i = 0; i < reversedFns.length; i += 1) {\n var fn = reversedFns[i];\n result = fn.apply(void 0, [result].concat(args));\n }\n\n return result;\n };\n};\n\nvar relayoutPage = compose(_resolveTextLayout.default, _resolveInheritance.default, _resolveDimensions.resolvePageDimensions);\n\nvar splitNodes = function splitNodes(height, nodes) {\n var currentChildren = [];\n var nextChildren = [];\n\n for (var i = 0; i < nodes.length; i += 1) {\n var child = nodes[i];\n var futureNodes = nodes.slice(i + 1);\n var futureFixedNodes = R.filter(isFixed, futureNodes);\n var nodeTop = getTop(child);\n var nodeHeight = getHeight(child);\n var isOutside = isElementOutside(height, child);\n var shouldBreak = (0, _shouldBreak.default)(child, futureNodes, height);\n var shouldSplit = height + SAFTY_THRESHOLD < nodeTop + nodeHeight;\n\n if (isFixed(child)) {\n nextChildren.push(child);\n currentChildren.push(child);\n continue;\n }\n\n if (isOutside) {\n var next = R.evolve({\n box: {\n top: R.subtract(R.__, height)\n }\n })(child);\n nextChildren.push(next);\n continue;\n }\n\n if (shouldBreak) {\n var _next = R.evolve({\n box: {\n top: R.subtract(R.__, height)\n },\n props: R.evolve({\n wrap: R.always(true),\n break: R.always(false)\n })\n })(child);\n\n currentChildren.push.apply(currentChildren, futureFixedNodes);\n nextChildren.push.apply(nextChildren, [_next].concat(futureNodes));\n break;\n }\n\n if (shouldSplit) {\n var _split = split(child, height),\n currentChild = _split[0],\n nextChild = _split[1];\n\n if (currentChild) currentChildren.push(currentChild);\n if (nextChild) nextChildren.push(nextChild);\n continue;\n }\n\n currentChildren.push(child);\n }\n\n return [currentChildren, nextChildren];\n};\n\nvar splitChildren = function splitChildren(height, node) {\n var children = getChildren(node);\n var availableHeight = height - getTop(node);\n return splitNodes(availableHeight, children);\n};\n\nvar splitView = function splitView(node, height) {\n var _splitNode = (0, _splitNode2.default)(node, height),\n currentNode = _splitNode[0],\n nextNode = _splitNode[1];\n\n var _splitChildren = splitChildren(height, node),\n currentChilds = _splitChildren[0],\n nextChildren = _splitChildren[1];\n\n return [assingChildren(currentChilds)(currentNode), assingChildren(nextChildren)(nextNode)];\n};\n\nvar split = R.ifElse(isText, _splitText.default, splitView);\n\nvar shouldResolveDynamicNodes = function shouldResolveDynamicNodes(node) {\n var children = node.children || [];\n return isDynamic(node) || children.some(shouldResolveDynamicNodes);\n};\n\nvar resolveDynamicNodes = function resolveDynamicNodes(props, node) {\n var isNodeDynamic = isDynamic(node); // Call render prop on dynamic nodes and append result to children\n\n var resolveChildren = function resolveChildren(children) {\n if (children === void 0) {\n children = [];\n }\n\n if (isNodeDynamic) {\n var res = node.props.render(props);\n return [(0, _createInstance.default)(res)].filter(Boolean);\n }\n\n return children.map(function (c) {\n return resolveDynamicNodes(props, c);\n });\n }; // We reset dynamic text box so it can be computed again later on\n\n\n var resolveBox = function resolveBox(box) {\n return isNodeDynamic && isText(node) ? (0, _extends2.default)({}, box, {\n height: 0\n }) : box;\n };\n\n return R.evolve({\n box: resolveBox,\n children: resolveChildren,\n lines: function lines(prev) {\n return isNodeDynamic ? null : prev;\n }\n }, node);\n};\n\nvar resolveDynamicPage = function resolveDynamicPage(props, page, fontStore) {\n if (shouldResolveDynamicNodes(page)) {\n var resolvedPage = resolveDynamicNodes(props, page);\n return relayoutPage(resolvedPage, fontStore);\n }\n\n return page;\n};\n\nvar splitPage = function splitPage(page, pageNumber, fontStore) {\n var contentArea = (0, _getContentArea.default)(page);\n var height = R.path(['style', 'height'], page);\n var dynamicPage = resolveDynamicPage({\n pageNumber: pageNumber\n }, page, fontStore);\n\n var _splitNodes = splitNodes(contentArea, dynamicPage.children),\n currentChilds = _splitNodes[0],\n nextChilds = _splitNodes[1];\n\n var relayout = function relayout(node) {\n return relayoutPage(node, fontStore);\n };\n\n var currentPage = R.compose(relayout, assingChildren(currentChilds), R.assocPath(['box', 'height'], height))(page);\n if (R.isEmpty(nextChilds) || allFixed(nextChilds)) return [currentPage, null];\n var nextPage = R.compose(relayout, assingChildren(nextChilds), R.dissocPath(['box', 'height']))(page);\n return [currentPage, nextPage];\n};\n\nvar resolvePageIndices = function resolvePageIndices(fontStore) {\n return function (page, pageNumber, pages) {\n var totalPages = pages.length;\n var props = {\n totalPages: totalPages,\n pageNumber: pageNumber + 1,\n subPageNumber: page.subPageNumber + 1,\n subPageTotalPages: page.subPageTotalPages\n };\n return resolveDynamicPage(props, page, fontStore);\n };\n};\n\nvar assocSubPageData = function assocSubPageData(subpages) {\n return subpages.map(function (page, i) {\n return (0, _extends2.default)({}, page, {\n subPageNumber: i,\n subPageTotalPages: subpages.length\n });\n });\n};\n\nvar dissocSubPageData = function dissocSubPageData(page) {\n return R.compose(R.dissoc('subPageNumber'), R.dissoc('subPageTotalPages'))(page);\n};\n\nvar paginate = function paginate(page, pageNumber, fontStore) {\n if (!page) return [];\n var splittedPage = splitPage(page, pageNumber, fontStore);\n var pages = [splittedPage[0]];\n var nextPage = splittedPage[1];\n\n while (nextPage !== null) {\n splittedPage = splitPage(nextPage, pageNumber + pages.length, fontStore);\n pages.push(splittedPage[0]);\n nextPage = splittedPage[1];\n }\n\n return pages;\n};\n/**\n * Performs pagination. This is the step responsible of breaking the whole document\n * into pages following pagiation rules, such as `fixed`, `break` and dynamic nodes.\n *\n * @param {Object} node\n * @param {Object} fontStore font store\n * @returns {Object} layout node\n */\n\n\nvar resolvePagination = function resolvePagination(doc, fontStore) {\n var pages = [];\n var pageNumber = 1;\n\n for (var i = 0; i < doc.children.length; i += 1) {\n var page = doc.children[i];\n var subpages = paginate(page, pageNumber, fontStore);\n subpages = assocSubPageData(subpages);\n pageNumber += subpages.length;\n pages = pages.concat(subpages);\n }\n\n pages = pages.map(R.compose(dissocSubPageData, resolvePageIndices(fontStore)));\n return assingChildren(pages, doc);\n};\n\nvar _default = resolvePagination;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _matchPercent = _interopRequireDefault(require(\"../utils/matchPercent\"));\n\n/**\n * Transform percent height into fixed\n *\n * @param {String | number} height\n * @return {number} height\n */\nvar transformHeight = function transformHeight(pageArea) {\n return function (height) {\n var match = (0, _matchPercent.default)(height);\n return match ? match.percent * pageArea : height;\n };\n};\n/**\n * Get page area (height minus paddings)\n *\n * @param {Object} page\n * @return {number} page area\n */\n\n\nvar getPageArea = function getPageArea(page) {\n var pageHeight = R.path(['style', 'height'], page);\n var pagePaddingTop = R.pathOr(0, ['style', 'paddingTop'], page);\n var pagePaddingBottom = R.pathOr(0, ['style', 'paddingBottom'], page);\n return pageHeight - pagePaddingTop - pagePaddingBottom;\n};\n/**\n * Checks if page has height\n *\n * @param {Object} page\n * @return {boolean} page has height\n */\n\n\nvar hasHeight = R.hasPath(['style', 'height']);\n/**\n * Transform node percent height to fixed\n *\n * @param {Object} page\n * @param {Object} node\n * @return {Object} transformed node\n */\n\nvar resolveNodePercentHeight = function resolveNodePercentHeight(page) {\n return function (node) {\n if (hasHeight(page)) {\n var pageArea = getPageArea(page);\n return R.evolve({\n style: {\n height: transformHeight(pageArea)\n }\n })(node);\n }\n\n return node;\n };\n};\n/**\n * Transform page immediate children with percent height to fixed\n *\n * @param {Object} page\n * @return {Object} transformed page\n */\n\n\nvar resolvePagePercentHeight = function resolvePagePercentHeight(page) {\n return R.evolve({\n children: R.map(resolveNodePercentHeight(page))\n })(page);\n};\n/**\n * Transform all page immediate children with percent height to fixed.\n * This is needed for computing correct dimensions on pre-pagination layout.\n *\n * @param {Object} document root\n * @return {Object} transformed document root\n */\n\n\nvar resolvePercentHeight = R.evolve({\n children: R.map(resolvePagePercentHeight)\n});\nvar _default = resolvePercentHeight;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _matchPercent = _interopRequireDefault(require(\"../utils/matchPercent\"));\n\n/**\n *\n * @param {Object} container width and height\n * @param {String | Number} value border radius value\n * @returns {Number} fixed border radius value\n */\nvar resolveRadius = function resolveRadius(container) {\n return function (value) {\n var match = (0, _matchPercent.default)(value);\n return match ? match.percent * Math.min(container.width, container.height) : value;\n };\n};\n/**\n * Transforms percent border radius into fixed values\n *\n * @param {Object} node\n * @returns {Object} node\n */\n\n\nvar resolvePercentRadius = function resolvePercentRadius(node) {\n return R.evolve({\n children: R.map(resolvePercentRadius),\n style: R.evolve({\n borderTopLeftRadius: resolveRadius(node.box),\n borderTopRightRadius: resolveRadius(node.box),\n borderBottomRightRadius: resolveRadius(node.box),\n borderBottomLeftRadius: resolveRadius(node.box)\n })\n })(node);\n};\n\nvar _default = resolvePercentRadius;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _stylesheet = _interopRequireDefault(require(\"@react-pdf/stylesheet\"));\n\nvar isLink = R.propEq('type', P.Link);\nvar LINK_STYLES = {\n color: 'blue',\n textDecoration: 'underline'\n};\n/**\n * Resolves node styles\n *\n * @param {Object} container\n * @param {Object} document node\n * @returns {Object} node (and subnodes) with resolved styles\n */\n\nvar resolveNodeStyles = function resolveNodeStyles(container) {\n return function (node) {\n return R.o(R.when(isLink, R.evolve({\n style: R.merge(LINK_STYLES)\n })), R.evolve({\n style: (0, _stylesheet.default)(container),\n children: R.map(resolveNodeStyles(container))\n }))(node);\n };\n};\n/**\n * Resolves page styles\n *\n * @param {Object} document page\n * @returns {Object} document page with resolved styles\n */\n\n\nvar resolvePageStyles = function resolvePageStyles(page) {\n var box = R.prop('box', page);\n var style = R.prop('style', page);\n var container = R.isEmpty(box) ? style : box;\n return R.evolve({\n style: (0, _stylesheet.default)(container),\n children: R.map(resolveNodeStyles(container))\n })(page);\n};\n/**\n * Resolves document styles\n *\n * @param {Object} document root\n * @returns {Object} document root with resolved styles\n */\n\n\nvar _default = R.evolve({\n children: R.map(resolvePageStyles)\n});\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _colors = require(\"@react-pdf/stylesheet/lib/colors\");\n\nvar _layoutText = _interopRequireDefault(require(\"../svg/layoutText\"));\n\nvar _replaceDefs = _interopRequireDefault(require(\"../svg/replaceDefs\"));\n\nvar _getContainer = _interopRequireDefault(require(\"../svg/getContainer\"));\n\nvar _parseViewbox = _interopRequireDefault(require(\"../svg/parseViewbox\"));\n\nvar _inheritProps = _interopRequireDefault(require(\"../svg/inheritProps\"));\n\nvar _matchPercent = _interopRequireDefault(require(\"../utils/matchPercent\"));\n\nvar _parseAspectRatio = _interopRequireDefault(require(\"../svg/parseAspectRatio\"));\n\nvar STYLE_PROPS = ['width', 'height', 'color', 'stroke', 'strokeWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'fill', 'fillRule', 'clipPath', 'offset', 'transform', 'strokeLinejoin', 'strokeLinecap', 'strokeDasharray'];\nvar VERTICAL_PROPS = ['y', 'y1', 'y2', 'height', 'cy', 'ry'];\nvar HORIZONTAL_PROPS = ['x', 'x1', 'x2', 'width', 'cx', 'rx'];\nvar isType = R.propEq('type');\nvar isSvg = isType(P.Svg);\nvar isText = isType(P.Text);\nvar isTextInstance = isType(P.TextInstance);\n\nvar transformPercent = function transformPercent(container) {\n return R.mapObjIndexed(function (value, key) {\n var match = (0, _matchPercent.default)(value);\n\n if (match && VERTICAL_PROPS.includes(key)) {\n return match.percent * container.height;\n }\n\n if (match && HORIZONTAL_PROPS.includes(key)) {\n return match.percent * container.width;\n }\n\n return value;\n });\n};\n\nvar parsePercent = function parsePercent(value) {\n var match = (0, _matchPercent.default)(value);\n return match ? match.percent : parseFloat(value);\n};\n\nvar parseProps = function parseProps(container) {\n return R.compose(R.evolve({\n props: R.o(R.evolve({\n x: parseFloat,\n x1: parseFloat,\n x2: parseFloat,\n y: parseFloat,\n y1: parseFloat,\n y2: parseFloat,\n r: parseFloat,\n rx: parseFloat,\n ry: parseFloat,\n cx: parseFloat,\n cy: parseFloat,\n width: parseFloat,\n height: parseFloat,\n offset: parsePercent,\n fill: _colors.transformColor,\n opacity: parsePercent,\n stroke: _colors.transformColor,\n stopOpacity: parsePercent,\n stopColor: _colors.transformColor\n }), transformPercent(container))\n }));\n};\n\nvar mergeStyles = function mergeStyles(node) {\n var style = R.propOr({}, 'style', node);\n return R.evolve({\n props: R.merge(style)\n }, node);\n};\n\nvar removeNoneValues = R.evolve({\n props: R.map(R.when(R.equals('none'), R.always(null)))\n});\n\nvar pickStyleProps = function pickStyleProps(node) {\n var styleProps = R.o(R.pick(STYLE_PROPS), R.propOr({}, 'props'))(node);\n return R.evolve({\n style: R.merge(styleProps)\n }, node);\n};\n\nvar parseSvgProps = R.evolve({\n props: R.evolve({\n width: parseFloat,\n height: parseFloat,\n viewBox: _parseViewbox.default,\n preserveAspectRatio: _parseAspectRatio.default\n })\n});\n\nvar wrapBetweenTspan = function wrapBetweenTspan(node) {\n return {\n type: 'TSPAN',\n props: {},\n children: [node]\n };\n};\n\nvar addMissingTspan = R.when(isText, R.evolve({\n children: R.map(R.when(isTextInstance, wrapBetweenTspan))\n}));\n\nvar resolveSvgNode = function resolveSvgNode(container) {\n return R.compose(parseProps(container), addMissingTspan, removeNoneValues, mergeStyles);\n};\n\nvar resolveChildren = function resolveChildren(container) {\n return function (node) {\n return R.evolve({\n children: R.map(R.compose(resolveChildren(container), resolveSvgNode(container)))\n })(node);\n };\n};\n\nvar parseText = function parseText(fontStore) {\n return function (node) {\n return R.ifElse(isText, (0, _layoutText.default)(fontStore), R.evolve({\n children: R.map(parseText(fontStore))\n }))(node);\n };\n};\n\nvar resolveSvgRoot = function resolveSvgRoot(fontStore) {\n return function (node) {\n var container = (0, _getContainer.default)(node);\n return R.compose(_replaceDefs.default, parseText(fontStore), parseSvgProps, pickStyleProps, _inheritProps.default, resolveChildren(container))(node);\n };\n};\n/**\n * Pre-process SVG nodes so they can be rendered in the next steps\n *\n * @param {Object} root node\n * @param {Object} fontStore font store\n * @returns {Object} root node\n */\n\n\nvar resolveSvg = function resolveSvg(node, fontStore) {\n var mapChild = function mapChild(child) {\n return resolveSvg(child, fontStore);\n };\n\n return R.compose(R.evolve({\n children: R.map(mapChild)\n }), R.when(isSvg, resolveSvgRoot(fontStore)))(node);\n};\n\nvar _default = resolveSvg;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _layoutText = _interopRequireDefault(require(\"../text/layoutText\"));\n\nvar isType = R.propEq('type');\nvar isSvg = isType(P.Svg);\nvar isText = isType(P.Text);\nvar isNotSvg = R.complement(isSvg);\n\nvar shouldLayoutText = function shouldLayoutText(node) {\n return isText(node) && !node.lines;\n};\n/**\n * Performs text layout on text node if wasn't calculated before.\n * Text layout is usually performed on Yoga's layout process (via setMeasureFunc),\n * but we need to layout those nodes with fixed width and height.\n *\n * @param {Object} node\n * @returns {Object} layout node\n */\n\n\nvar resolveTextLayout = function resolveTextLayout(node, fontStore) {\n var mapChild = function mapChild(child) {\n return resolveTextLayout(child, fontStore);\n };\n\n return R.compose(R.evolve({\n children: R.map(R.when(isNotSvg, mapChild))\n }), R.when(shouldLayoutText, R.compose(R.converge(R.assoc('lines'), [R.converge(_layoutText.default, [R.identity, R.path(['box', 'width']), R.path(['box', 'height']), R.always(fontStore)]), R.identity]))))(node);\n};\n\nvar _default = resolveTextLayout;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _primitives = require(\"@react-pdf/primitives\");\n\nvar getZIndex = R.path(['style', 'zIndex']);\nvar isType = R.propEq('type');\nvar shouldNotSort = R.anyPass([isType(_primitives.Document), isType(_primitives.Svg)]);\n\nvar sortZIndex = function sortZIndex(a, b) {\n var za = getZIndex(a);\n var zb = getZIndex(b);\n if (!za && !zb) return 0;\n if (!za) return 1;\n if (!zb) return -1;\n return zb - za;\n};\n/**\n * Sort children by zIndex value\n *\n * @param {Object} node\n * @returns {Object} node\n */\n\n\nvar resolveZIndex = function resolveZIndex(node) {\n return R.compose(R.evolve({\n children: R.map(resolveZIndex)\n }), R.unless(shouldNotSort, R.evolve({\n children: R.sort(sortZIndex)\n })))(node);\n};\n\nvar _default = resolveZIndex;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _parseViewbox = _interopRequireDefault(require(\"./parseViewbox\"));\n\nvar getContainer = function getContainer(node) {\n var viewbox = (0, _parseViewbox.default)(node.props.viewBox);\n\n if (viewbox) {\n return {\n width: viewbox.maxX,\n height: viewbox.maxY\n };\n }\n\n if (node.props.width && node.props.height) {\n return {\n width: parseFloat(node.props.width),\n height: parseFloat(node.props.height)\n };\n }\n\n return {\n width: 0,\n height: 0\n };\n};\n\nvar _default = getContainer;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isDefs = R.propEq('type', P.Defs);\nvar getChildren = R.propOr([], 'children');\nvar getId = R.path(['props', 'id']);\nvar getDefs = R.compose(R.map(R.prop(0)), R.groupBy(getId), getChildren, R.defaultTo({}), R.find(isDefs), getChildren);\nvar _default = getDefs;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar SVG_INHERITED_PROPS = ['x', 'y', 'clipPath', 'clipRule', 'opacity', 'fill', 'fillOpacity', 'fillRule', 'stroke', 'strokeLinecap', 'strokeLinejoin', 'strokeOpacity', 'strokeWidth', 'textAnchor', 'dominantBaseline', 'color', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'opacity', 'textDecoration', 'lineHeight', 'textAlign', 'visibility', 'wordSpacing'];\nvar getInheritProps = R.compose(R.pick(SVG_INHERITED_PROPS), R.propOr({}, 'props'));\n\nvar inheritProps = function inheritProps(node) {\n var props = getInheritProps(node);\n return R.evolve({\n children: R.map(R.compose(inheritProps, R.evolve({\n props: R.merge(props)\n })))\n })(node);\n};\n\nvar _default = inheritProps;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _layout = _interopRequireDefault(require(\"@react-pdf/textkit/lib/layout\"));\n\nvar _linebreaker = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/linebreaker\"));\n\nvar _attributedString = _interopRequireDefault(require(\"@react-pdf/textkit/lib/attributedString\"));\n\nvar _justification = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/justification\"));\n\nvar _scriptItemizer = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/scriptItemizer\"));\n\nvar _wordHyphenation = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/wordHyphenation\"));\n\nvar _textDecoration = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/textDecoration\"));\n\nvar _transformText = _interopRequireDefault(require(\"../text/transformText\"));\n\nvar _fontSubstitution = _interopRequireDefault(require(\"../text/fontSubstitution\"));\n\nvar isTextInstance = R.propEq('type', P.TextInstance);\nvar engines = {\n linebreaker: _linebreaker.default,\n justification: _justification.default,\n scriptItemizer: _scriptItemizer.default,\n wordHyphenation: _wordHyphenation.default,\n fontSubstitution: _fontSubstitution.default,\n textDecoration: _textDecoration.default\n};\nvar engine = (0, _layout.default)(engines);\n\nvar getFragments = function getFragments(fontStore, instance) {\n if (!instance) return [{\n string: ''\n }];\n var fragments = [];\n var _instance$props = instance.props,\n _instance$props$fill = _instance$props.fill,\n fill = _instance$props$fill === void 0 ? 'black' : _instance$props$fill,\n _instance$props$fontF = _instance$props.fontFamily,\n fontFamily = _instance$props$fontF === void 0 ? 'Helvetica' : _instance$props$fontF,\n fontWeight = _instance$props.fontWeight,\n fontStyle = _instance$props.fontStyle,\n _instance$props$fontS = _instance$props.fontSize,\n fontSize = _instance$props$fontS === void 0 ? 18 : _instance$props$fontS,\n textDecoration = _instance$props.textDecoration,\n textDecorationColor = _instance$props.textDecorationColor,\n textDecorationStyle = _instance$props.textDecorationStyle,\n textTransform = _instance$props.textTransform,\n opacity = _instance$props.opacity;\n var obj = fontStore ? fontStore.getFont({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontStyle: fontStyle\n }) : null;\n var font = obj ? obj.data : fontFamily;\n var attributes = {\n font: font,\n opacity: opacity,\n fontSize: fontSize,\n color: fill,\n underlineStyle: textDecorationStyle,\n underline: textDecoration === 'underline',\n underlineColor: textDecorationColor || fill,\n strike: textDecoration === 'line-through',\n strikeStyle: textDecorationStyle,\n strikeColor: textDecorationColor || fill\n };\n\n for (var i = 0; i < instance.children.length; i += 1) {\n var child = instance.children[i];\n\n if (isTextInstance(child)) {\n fragments.push({\n string: (0, _transformText.default)(child.value, textTransform),\n attributes: attributes\n });\n } else if (child) {\n fragments.push.apply(fragments, getFragments(child));\n }\n }\n\n return fragments;\n};\n\nvar getAttributedString = function getAttributedString(fontStore, instance) {\n return _attributedString.default.fromFragments(getFragments(fontStore, instance));\n};\n\nvar AlmostInfinity = 999999999999;\nvar shrinkWhitespaceFactor = {\n before: -0.5,\n after: -0.5\n};\n\nvar layoutTspan = function layoutTspan(fontStore) {\n return function (node) {\n var attributedString = getAttributedString(fontStore, node);\n var x = R.pathOr(0, ['props', 'x'], node);\n var y = R.pathOr(0, ['props', 'y'], node);\n var container = {\n x: x,\n y: y,\n width: AlmostInfinity,\n height: AlmostInfinity\n };\n var hyphenationCallback = node.props.hyphenationCallback || (fontStore === null || fontStore === void 0 ? void 0 : fontStore.getHyphenationCallback()) || null;\n var layoutOptions = {\n hyphenationCallback: hyphenationCallback,\n shrinkWhitespaceFactor: shrinkWhitespaceFactor\n };\n var lines = R.compose(R.reduce(R.concat, []), engine)(attributedString, container, layoutOptions);\n return R.assoc('lines', lines, node);\n };\n};\n\nvar layoutText = function layoutText(fontStore, node) {\n return R.evolve({\n children: R.map(layoutTspan(fontStore))\n })(node);\n};\n\nvar _default = R.curryN(2, layoutText);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar getAspectRatio = function getAspectRatio(viewbox) {\n if (!viewbox) return null;\n return (viewbox.maxX - viewbox.minX) / (viewbox.maxY - viewbox.minY);\n};\n/**\n * Yoga svg measure function\n *\n * @param {Object} page\n * @param {Object} node\n * @param {Number} width\n * @param {Number} widthMode\n * @param {Number} height\n * @param {Number} heightMode\n * @returns {Object} canvas width and height\n */\n\n\nvar measureCanvas = function measureCanvas(page, node, width, widthMode, height, heightMode) {\n var aspectRatio = getAspectRatio(node.props.viewBox) || 1;\n\n if (widthMode === _yoga.default.MEASURE_MODE_EXACTLY || widthMode === _yoga.default.MEASURE_MODE_AT_MOST) {\n return {\n width: width,\n height: width / aspectRatio\n };\n }\n\n if (heightMode === _yoga.default.MEASURE_MODE_EXACTLY) {\n return {\n width: height * aspectRatio\n };\n }\n\n return {};\n};\n\nvar _default = R.curryN(6, measureCanvas);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar parseAspectRatio = function parseAspectRatio(value) {\n var match = value.replace(/[\\s\\r\\t\\n]+/gm, ' ').replace(/^defer\\s/, '').split(' ');\n var align = match[0] || 'xMidYMid';\n var meetOrSlice = match[1] || 'meet';\n return {\n align: align,\n meetOrSlice: meetOrSlice\n };\n};\n\nvar _default = parseAspectRatio;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar parseViewbox = function parseViewbox(value) {\n if (!value) return null;\n var values = value.split(/[,\\s]+/).map(parseFloat);\n if (values.length !== 4) return null;\n return {\n minX: values[0],\n minY: values[1],\n maxX: values[2],\n maxY: values[3]\n };\n};\n\nvar _default = parseViewbox;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _getDefs = _interopRequireDefault(require(\"./getDefs\"));\n\nvar isDefs = R.propEq('type', P.Defs);\nvar isNotDefs = R.complement(isDefs);\nvar detachDefs = R.evolve({\n children: R.filter(isNotDefs)\n});\nvar URL_REGEX = /url\\(['\"]?#([^'\"]+)['\"]?\\)/;\n\nvar replaceDef = function replaceDef(defs) {\n return R.compose(R.when(R.test(URL_REGEX), R.compose(R.prop(R.__, defs), R.prop(1), R.match(URL_REGEX))), R.defaultTo(''));\n};\n\nvar parseNodeDefs = function parseNodeDefs(defs) {\n return function (node) {\n return R.compose(R.evolve({\n props: R.evolve({\n fill: replaceDef(defs),\n clipPath: replaceDef(defs)\n })\n }), R.evolve({\n children: R.map(parseNodeDefs(defs))\n }))(node);\n };\n};\n\nvar parseDefs = function parseDefs(root) {\n var defs = (0, _getDefs.default)(root);\n return R.evolve({\n children: R.map(parseNodeDefs(defs))\n }, root);\n};\n\nvar replaceDefs = R.compose(detachDefs, parseDefs);\nvar _default = replaceDefs;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.embedEmojis = exports.fetchEmojis = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _emojiRegex = _interopRequireDefault(require(\"emoji-regex\"));\n\nvar _image = _interopRequireDefault(require(\"@react-pdf/image\"));\n\n/* eslint-disable no-cond-assign */\n// Caches emoji images data\nvar emojis = {};\nvar regex = (0, _emojiRegex.default)();\n\nvar reflect = function reflect(promise) {\n return function () {\n return promise.apply(void 0, arguments).then(function (v) {\n return v;\n }, function (e) {\n return e;\n });\n };\n}; // Returns a function to be able to mock resolveImage.\n\n\nvar makeFetchEmojiImage = function makeFetchEmojiImage() {\n return reflect(_image.default);\n};\n/**\n * When an emoji as no color, it might still have 2 parts,\n * the canonical emoji and an empty string.\n * ex.\n * (no color) Array.from('❤️') => [\"❤\", \"️\"]\n * (w/ color) Array.from('👍🏿') => [\"👍\", \"🏿\"]\n *\n * The empty string needs to be removed otherwise the generated\n * url will be incorect.\n */\n\n\nvar _removeNoColor = function _removeNoColor(x) {\n return x !== '️';\n};\n\nvar getCodePoints = function getCodePoints(string) {\n return Array.from(string).filter(_removeNoColor).map(function (char) {\n return char.codePointAt(0).toString(16);\n }).join('-');\n};\n\nvar buildEmojiUrl = function buildEmojiUrl(emoji, source) {\n var url = source.url,\n format = source.format;\n return \"\" + url + getCodePoints(emoji) + \".\" + format;\n};\n\nvar fetchEmojis = function fetchEmojis(string, source) {\n if (!source || !source.url) return [];\n var promises = [];\n var match;\n\n var _loop = function _loop() {\n var emoji = match[0];\n\n if (!emojis[emoji] || emojis[emoji].loading) {\n var emojiUrl = buildEmojiUrl(emoji, source);\n emojis[emoji] = {\n loading: true\n };\n var fetchEmojiImage = makeFetchEmojiImage();\n promises.push(fetchEmojiImage({\n uri: emojiUrl\n }).then(function (image) {\n emojis[emoji].loading = false;\n emojis[emoji].data = image.data;\n }));\n }\n };\n\n while (match = regex.exec(string)) {\n _loop();\n }\n\n return promises;\n};\n\nexports.fetchEmojis = fetchEmojis;\n\nvar embedEmojis = function embedEmojis(fragments) {\n var result = [];\n\n for (var i = 0; i < fragments.length; i += 1) {\n var fragment = fragments[i];\n var match = void 0;\n var lastIndex = 0;\n\n while (match = regex.exec(fragment.string)) {\n var _match = match,\n index = _match.index;\n var emoji = match[0];\n var emojiSize = fragment.attributes.fontSize;\n var chunk = fragment.string.slice(lastIndex, index + match[0].length); // If emoji image was found, we create a new fragment with the\n // correct attachment and object substitution character;\n\n if (emojis[emoji] && emojis[emoji].data) {\n result.push({\n string: chunk.replace(match, String.fromCharCode(0xfffc)),\n attributes: (0, _extends2.default)({}, fragment.attributes, {\n attachment: {\n width: emojiSize,\n height: emojiSize,\n yOffset: Math.floor(emojiSize * 0.1),\n image: emojis[emoji].data\n }\n })\n });\n } else {\n // If no emoji data, we just replace the emoji with a nodef char\n result.push({\n string: chunk.replace(match, String.fromCharCode(0)),\n attributes: fragment.attributes\n });\n }\n\n lastIndex = index + emoji.length;\n }\n\n if (lastIndex < fragment.string.length) {\n result.push({\n string: fragment.string.slice(lastIndex),\n attributes: fragment.attributes\n });\n }\n }\n\n return result;\n};\n\nexports.embedEmojis = embedEmojis;\nvar _default = fetchEmojis;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _standardFont = _interopRequireDefault(require(\"./standardFont\"));\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar fontCache = {};\nvar IGNORED_CODE_POINTS = [173];\nvar getFontSize = R.pathOr(12, ['attributes', 'fontSize']);\n\nvar getOrCreateFont = function getOrCreateFont(name) {\n if (fontCache[name]) return fontCache[name];\n var font = new _standardFont.default(name);\n fontCache[name] = font;\n return font;\n};\n\nvar getFallbackFont = function getFallbackFont() {\n return getOrCreateFont('Helvetica');\n};\n\nvar shouldFallbackToFont = function shouldFallbackToFont(codePoint, font) {\n return !IGNORED_CODE_POINTS.includes(codePoint) && !font.hasGlyphForCodePoint(codePoint) && getFallbackFont().hasGlyphForCodePoint(codePoint);\n};\n\nvar fontSubstitution = function fontSubstitution() {\n return function (_ref) {\n var string = _ref.string,\n runs = _ref.runs;\n var lastFont = null;\n var lastFontSize = null;\n var lastIndex = 0;\n var index = 0;\n var res = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(runs), _step; !(_step = _iterator()).done;) {\n var run = _step.value;\n var defaultFont = typeof run.attributes.font === 'string' ? getOrCreateFont(run.attributes.font) : run.attributes.font;\n\n if (string.length === 0) {\n res.push({\n start: 0,\n end: 0,\n attributes: {\n font: defaultFont\n }\n });\n break;\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(string.slice(run.start, run.end)), _step2; !(_step2 = _iterator2()).done;) {\n var char = _step2.value;\n var codePoint = char.codePointAt();\n var shouldFallback = shouldFallbackToFont(codePoint, defaultFont); // If the default font does not have a glyph and the fallback font does, we use it\n\n var font = shouldFallback ? getFallbackFont() : defaultFont;\n\n var _fontSize = getFontSize(run); // If anything that would impact res has changed, update it\n\n\n if (font !== lastFont || _fontSize !== lastFontSize || font.unitsPerEm !== lastFont.unitsPerEm) {\n if (lastFont) {\n res.push({\n start: lastIndex,\n end: index,\n attributes: {\n font: lastFont,\n scale: lastFontSize / lastFont.unitsPerEm\n }\n });\n }\n\n lastFont = font;\n lastFontSize = _fontSize;\n lastIndex = index;\n }\n\n index += char.length;\n }\n }\n\n if (lastIndex < string.length) {\n var fontSize = getFontSize(R.last(runs));\n res.push({\n start: lastIndex,\n end: string.length,\n attributes: {\n font: lastFont,\n scale: fontSize / lastFont.unitsPerEm\n }\n });\n }\n\n return {\n string: string,\n runs: res\n };\n };\n};\n\nvar _default = fontSubstitution;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _attributedString = _interopRequireDefault(require(\"@react-pdf/textkit/lib/attributedString\"));\n\nvar _emoji = require(\"./emoji\");\n\nvar _ignoreChars = _interopRequireDefault(require(\"./ignoreChars\"));\n\nvar _transformText = _interopRequireDefault(require(\"./transformText\"));\n\nvar PREPROCESSORS = [_ignoreChars.default, _emoji.embedEmojis];\nvar isType = R.propEq('type');\nvar isImage = isType(P.Image);\nvar isTextInstance = isType(P.TextInstance);\n/**\n * Get textkit framgents of given node object\n *\n * @param {Object} font store\n * @param {Object} instance node\n * @returns {Array} text fragments\n */\n\nvar getFragments = function getFragments(fontStore, instance) {\n var _instance$props, _instance$props2;\n\n if (!instance) return [{\n string: ''\n }];\n var fragments = [];\n var _instance$style = instance.style,\n _instance$style$color = _instance$style.color,\n color = _instance$style$color === void 0 ? 'black' : _instance$style$color,\n backgroundColor = _instance$style.backgroundColor,\n _instance$style$fontF = _instance$style.fontFamily,\n fontFamily = _instance$style$fontF === void 0 ? 'Helvetica' : _instance$style$fontF,\n fontWeight = _instance$style.fontWeight,\n fontStyle = _instance$style.fontStyle,\n _instance$style$fontS = _instance$style.fontSize,\n fontSize = _instance$style$fontS === void 0 ? 18 : _instance$style$fontS,\n _instance$style$textA = _instance$style.textAlign,\n textAlign = _instance$style$textA === void 0 ? 'left' : _instance$style$textA,\n lineHeight = _instance$style.lineHeight,\n textDecoration = _instance$style.textDecoration,\n textDecorationColor = _instance$style.textDecorationColor,\n textDecorationStyle = _instance$style.textDecorationStyle,\n textTransform = _instance$style.textTransform,\n letterSpacing = _instance$style.letterSpacing,\n textIndent = _instance$style.textIndent,\n opacity = _instance$style.opacity;\n var opts = {\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontStyle: fontStyle\n };\n var obj = fontStore ? fontStore.getFont(opts) : null;\n var font = obj ? obj.data : fontFamily;\n var attributes = {\n font: font,\n color: color,\n opacity: opacity,\n fontSize: fontSize,\n backgroundColor: backgroundColor,\n align: textAlign,\n indent: textIndent,\n characterSpacing: letterSpacing,\n strikeStyle: textDecorationStyle,\n underlineStyle: textDecorationStyle,\n underline: textDecoration === 'underline',\n strike: textDecoration === 'line-through',\n strikeColor: textDecorationColor || color,\n underlineColor: textDecorationColor || color,\n link: ((_instance$props = instance.props) === null || _instance$props === void 0 ? void 0 : _instance$props.src) || ((_instance$props2 = instance.props) === null || _instance$props2 === void 0 ? void 0 : _instance$props2.href),\n lineHeight: lineHeight ? lineHeight * fontSize : null\n };\n\n for (var i = 0; i < instance.children.length; i += 1) {\n var child = instance.children[i];\n\n if (isImage(child)) {\n fragments.push({\n string: String.fromCharCode(0xfffc),\n attributes: (0, _extends2.default)({}, attributes, {\n attachment: {\n width: child.style.width || fontSize,\n height: child.style.height || fontSize,\n image: child.image.data\n }\n })\n });\n } else if (isTextInstance(child)) {\n fragments.push({\n string: (0, _transformText.default)(child.value, textTransform),\n attributes: attributes\n });\n } else if (child) {\n var _fragments;\n\n (_fragments = fragments).push.apply(_fragments, getFragments(fontStore, child));\n }\n }\n\n for (var _i = 0; _i < PREPROCESSORS.length; _i += 1) {\n var preprocessor = PREPROCESSORS[_i];\n fragments = preprocessor(fragments);\n }\n\n return fragments;\n};\n/**\n * Get textkit attributed string from text node\n *\n * @param {Object} font store\n * @param {Object} instance node\n * @returns {Object} attributed string\n */\n\n\nvar getAttributedString = function getAttributedString(fontStore, instance) {\n var fragments = getFragments(fontStore, instance);\n return _attributedString.default.fromFragments(fragments);\n};\n\nvar _default = R.curryN(2, getAttributedString);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get height for given text line index\n *\n * @param {Object} node\n * @param {Number} index\n */\nvar heightAtLineIndex = function heightAtLineIndex(node, index) {\n var counter = 0;\n if (!node.lines) return counter;\n\n for (var i = 0; i < index; i += 1) {\n var line = node.lines[i];\n if (!line) break;\n counter += line.box.height;\n }\n\n return counter;\n};\n\nvar _default = heightAtLineIndex;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar IGNORABLE_CODEPOINTS = [8232, // LINE_SEPARATOR\n8233 // PARAGRAPH_SEPARATOR\n];\n\nvar buildSubsetForFont = function buildSubsetForFont(font) {\n return IGNORABLE_CODEPOINTS.reduce(function (acc, codePoint) {\n if (font.hasGlyphForCodePoint && font.hasGlyphForCodePoint(codePoint)) {\n return acc;\n }\n\n return [].concat(acc, [String.fromCharCode(codePoint)]);\n }, []);\n};\n\nvar ignoreChars = function ignoreChars(fragments) {\n return fragments.map(function (fragment) {\n var charSubset = buildSubsetForFont(fragment.attributes.font);\n var subsetRegex = new RegExp(charSubset.join('|'));\n return {\n string: fragment.string.replace(subsetRegex, ''),\n attributes: fragment.attributes\n };\n });\n};\n\nvar _default = ignoreChars;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _layout = _interopRequireDefault(require(\"@react-pdf/textkit/lib/layout\"));\n\nvar _linebreaker = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/linebreaker\"));\n\nvar _justification = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/justification\"));\n\nvar _textDecoration = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/textDecoration\"));\n\nvar _scriptItemizer = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/scriptItemizer\"));\n\nvar _wordHyphenation = _interopRequireDefault(require(\"@react-pdf/textkit/lib/engines/wordHyphenation\"));\n\nvar _fontSubstitution = _interopRequireDefault(require(\"./fontSubstitution\"));\n\nvar _getAttributedString = _interopRequireDefault(require(\"./getAttributedString\"));\n\nvar engines = {\n linebreaker: _linebreaker.default,\n justification: _justification.default,\n textDecoration: _textDecoration.default,\n scriptItemizer: _scriptItemizer.default,\n wordHyphenation: _wordHyphenation.default,\n fontSubstitution: _fontSubstitution.default\n};\nvar engine = (0, _layout.default)(engines);\nvar getMaxLines = R.path(['style', 'maxLines']);\nvar getTextOverflow = R.path(['style', 'textOverflow']);\n/**\n * Get layout container for specific text node\n *\n * @param {Number} width\n * @param {Number} height\n * @param {Object} node\n * @returns {Object} layout container\n */\n\nvar getContainer = function getContainer(width, height, node) {\n var maxLines = getMaxLines(node);\n var textOverflow = getTextOverflow(node);\n return {\n x: 0,\n y: 0,\n width: width,\n maxLines: maxLines,\n height: height || Infinity,\n truncateMode: textOverflow\n };\n};\n/**\n * Get text layout options for specific text node\n *\n * @param {Object} node instance\n * @returns {Object} layout options\n */\n\n\nvar getLayoutOptions = function getLayoutOptions(fontStore, node) {\n return {\n hyphenationPenalty: node.props.hyphenationPenalty,\n shrinkWhitespaceFactor: {\n before: -0.5,\n after: -0.5\n },\n hyphenationCallback: node.props.hyphenationCallback || (fontStore === null || fontStore === void 0 ? void 0 : fontStore.getHyphenationCallback()) || null\n };\n};\n/**\n * Get text lines for given node\n *\n * @param {Object} node\n * @param {Number} container width\n * @param {Number} container height\n * @param {Number} fontStore font store\n * @returns {Array} layout lines\n */\n\n\nvar layoutText = function layoutText(node, width, height, fontStore) {\n var attributedString = (0, _getAttributedString.default)(fontStore, node);\n var container = getContainer(width, height, node);\n var options = getLayoutOptions(fontStore, node);\n var lines = engine(attributedString, container, options);\n return R.reduce(R.concat, [], lines);\n};\n\nvar _default = R.curryN(4, layoutText);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get line index at given height\n *\n * @param {Object} node\n * @param {Number} height\n */\nvar lineIndexAtHeight = function lineIndexAtHeight(node, height) {\n var y = 0;\n if (!node.lines) return 0;\n\n for (var i = 0; i < node.lines.length; i += 1) {\n var line = node.lines[i];\n if (y + line.box.height > height) return i;\n y += line.box.height;\n }\n\n return node.lines.length;\n};\n\nvar _default = lineIndexAtHeight;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get lines height (if any)\n *\n * @param {Object} node\n * @returns {Number} lines height\n */\nvar linesHeight = function linesHeight(node) {\n if (!node.lines) return -1;\n return node.lines.reduce(function (acc, line) {\n return acc + line.box.height;\n }, 0);\n};\n\nvar _default = linesHeight;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _attributedString = _interopRequireDefault(require(\"@react-pdf/textkit/lib/attributedString\"));\n\n/**\n * Get lines width (if any)\n *\n * @param {Object} node\n * @returns {Number} lines width\n */\nvar linesWidth = function linesWidth(node) {\n if (!node.lines) return -1;\n return Math.max.apply(Math, node.lines.map(function (line) {\n return _attributedString.default.advanceWidth(line);\n }));\n};\n\nvar _default = linesWidth;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _yoga = _interopRequireDefault(require(\"@react-pdf/yoga\"));\n\nvar _layoutText = _interopRequireDefault(require(\"./layoutText\"));\n\nvar _linesWidth = _interopRequireDefault(require(\"./linesWidth\"));\n\nvar _linesHeight = _interopRequireDefault(require(\"./linesHeight\"));\n\n/* eslint-disable no-param-reassign */\n\n/**\n * Yoga text measure function\n *\n * @param {Object} page\n * @param {Object} node\n * @param {Number} width\n * @param {Number} widthMode\n * @param {Number} height\n * @param {Number} heightMode\n * @returns {Object} text width and height\n */\nvar measureText = function measureText(page, node, fontStore, width, widthMode, height) {\n if (widthMode === _yoga.default.MEASURE_MODE_EXACTLY) {\n if (!node.lines) node.lines = (0, _layoutText.default)(node, width, height, fontStore);\n return {\n height: (0, _linesHeight.default)(node)\n };\n }\n\n if (widthMode === _yoga.default.MEASURE_MODE_AT_MOST) {\n if (!node.lines) node.lines = (0, _layoutText.default)(node, width, height, fontStore);\n return {\n height: (0, _linesHeight.default)(node),\n width: Math.min(width, (0, _linesWidth.default)(node))\n };\n }\n\n return {};\n};\n\nvar _default = R.curryN(7, measureText);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _lineIndexAtHeight = _interopRequireDefault(require(\"./lineIndexAtHeight\"));\n\nvar _heightAtLineIndex = _interopRequireDefault(require(\"./heightAtLineIndex\"));\n\nvar zero = R.always(0);\nvar getTop = R.pathOr(0, ['box', 'top']);\nvar getWidows = R.pathOr(2, ['props', 'widows']);\nvar getOrphans = R.pathOr(2, ['props', 'orphans']);\n\nvar getLineBreak = function getLineBreak(node, height) {\n var top = getTop(node);\n var widows = getWidows(node);\n var orphans = getOrphans(node);\n var linesQuantity = node.lines.length;\n var slicedLine = (0, _lineIndexAtHeight.default)(node, height - top);\n\n if (slicedLine === 0) {\n return 0;\n }\n\n if (linesQuantity < orphans) {\n return linesQuantity;\n }\n\n if (slicedLine < orphans || linesQuantity < orphans + widows) {\n return 0;\n }\n\n if (linesQuantity === orphans + widows) {\n return orphans;\n }\n\n if (linesQuantity - slicedLine < widows) {\n return linesQuantity - widows;\n }\n\n return slicedLine;\n};\n\nvar splitText = function splitText(node, height) {\n var slicedLineIndex = getLineBreak(node, height);\n var currentHeight = (0, _heightAtLineIndex.default)(node, slicedLineIndex);\n var nextHeight = node.box.height - currentHeight;\n var current = R.evolve({\n lines: R.slice(0, slicedLineIndex),\n style: R.evolve({\n marginBottom: zero,\n paddingBottom: zero,\n borderBottomWidth: zero,\n borderBottomLeftRadius: zero,\n borderBottomRightRadius: zero\n }),\n box: {\n height: R.always(currentHeight),\n borderBottomWidth: zero\n }\n }, node);\n var next = R.evolve({\n lines: R.slice(slicedLineIndex, Infinity),\n style: R.evolve({\n marginTop: zero,\n paddingTop: zero,\n borderTopWidth: zero,\n borderTopLeftRadius: zero,\n borderTopRightRadius: zero\n }),\n box: {\n top: zero,\n height: R.always(nextHeight),\n borderTopWidth: zero\n }\n }, node);\n return [current, next];\n};\n\nvar _default = splitText;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _pdfkit = require(\"@react-pdf/pdfkit\");\n\n/* eslint-disable class-methods-use-this */\nvar StandardFont = /*#__PURE__*/function () {\n function StandardFont(src) {\n this.name = src;\n this.src = _pdfkit.PDFFont.open(null, src);\n }\n\n var _proto = StandardFont.prototype;\n\n _proto.layout = function layout(str) {\n var _this = this;\n\n var _this$src$encode = this.src.encode(str),\n encoded = _this$src$encode[0],\n positions = _this$src$encode[1];\n\n return {\n positions: positions,\n stringIndices: positions.map(function (_, i) {\n return i;\n }),\n glyphs: encoded.map(function (g, i) {\n var glyph = _this.getGlyph(parseInt(g, 16));\n\n glyph.advanceWidth = positions[i].advanceWidth;\n return glyph;\n })\n };\n };\n\n _proto.glyphForCodePoint = function glyphForCodePoint(codePoint) {\n var glyph = this.getGlyph(codePoint);\n glyph.advanceWidth = 400;\n return glyph;\n };\n\n _proto.getGlyph = function getGlyph(id) {\n return {\n id: id,\n _font: this.src,\n codePoints: [id],\n isLigature: false,\n name: this.src.font.characterToGlyph(id)\n };\n };\n\n _proto.hasGlyphForCodePoint = function hasGlyphForCodePoint(codePoint) {\n return this.src.font.characterToGlyph(codePoint) !== '.notdef';\n } // Based on empirical observation\n ;\n\n (0, _createClass2.default)(StandardFont, [{\n key: \"ascent\",\n get: function get() {\n return 900;\n } // Based on empirical observation\n\n }, {\n key: \"capHeight\",\n get: function get() {\n switch (this.name) {\n case 'Times-Roman':\n case 'Times-Bold':\n case 'Times-Italic':\n return 650;\n\n case 'Courier':\n case 'Courier-Bold':\n case 'Courier-Oblique':\n return 550;\n\n default:\n return 690;\n }\n } // Based on empirical observation\n\n }, {\n key: \"xHeight\",\n get: function get() {\n switch (this.name) {\n case 'Times-Roman':\n case 'Times-Bold':\n case 'Times-Italic':\n return 440;\n\n case 'Courier':\n case 'Courier-Bold':\n case 'Courier-Oblique':\n return 390;\n\n default:\n return 490;\n }\n } // Based on empirical observation\n\n }, {\n key: \"descent\",\n get: function get() {\n switch (this.name) {\n case 'Times-Roman':\n case 'Times-Bold':\n case 'Times-Italic':\n return -220;\n\n case 'Courier':\n case 'Courier-Bold':\n case 'Courier-Oblique':\n return -230;\n\n default:\n return -200;\n }\n }\n }, {\n key: \"lineGap\",\n get: function get() {\n return 0;\n }\n }, {\n key: \"unitsPerEm\",\n get: function get() {\n return 1000;\n }\n }]);\n return StandardFont;\n}();\n\nvar _default = StandardFont;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _capitalize = _interopRequireDefault(require(\"../utils/capitalize\"));\n\nvar _upperFirst = _interopRequireDefault(require(\"../utils/upperFirst\"));\n\n/**\n * Apply transformation to text string\n *\n * @param {String} text\n * @param {String} transformation type\n * @returns {String} transformed text\n */\nvar transformText = function transformText(text, transformation) {\n switch (transformation) {\n case 'uppercase':\n return text.toUpperCase();\n\n case 'lowercase':\n return text.toLowerCase();\n\n case 'capitalize':\n return (0, _capitalize.default)(text);\n\n case 'upperfirst':\n return (0, _upperFirst.default)(text);\n\n default:\n return text;\n }\n};\n\nvar _default = transformText;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/* eslint-disable no-await-in-loop */\n\n/**\n * Performs right-to-left function composition with async functions support\n *\n * @param {...any} functions\n */\nvar asyncCompose = function asyncCompose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(value) {\n var result,\n reversedFns,\n _len2,\n args,\n _key2,\n i,\n fn,\n _args = arguments;\n\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n result = value;\n reversedFns = R.reverse(fns);\n\n for (_len2 = _args.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = _args[_key2];\n }\n\n i = 0;\n\n case 4:\n if (!(i < reversedFns.length)) {\n _context.next = 12;\n break;\n }\n\n fn = reversedFns[i];\n _context.next = 8;\n return fn.apply(void 0, [result].concat(args));\n\n case 8:\n result = _context.sent;\n\n case 9:\n i += 1;\n _context.next = 4;\n break;\n\n case 12:\n return _context.abrupt(\"return\", result);\n\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }();\n};\n\nvar _default = asyncCompose;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Capitalize first letter of each word\n *\n * @param {String} string\n * @returns {String} capitalized string\n */\nvar capitalize = function capitalize(value) {\n if (!value) return value;\n return value.replace(/(^|\\s)\\S/g, function (l) {\n return l.toUpperCase();\n });\n};\n\nvar _default = capitalize;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Checks if value is not an array\n *\n * @param {any} value\n * @returns {Boolean} isn't value an array\n */\nvar isNotArray = R.complement(R.is(Array));\n/**\n * Casts value to array\n *\n * @param {any} value\n * @returns {Array} casted value\n */\n\nvar castArray = R.when(isNotArray, function (v) {\n return [v];\n});\nvar _default = castArray;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar isPercent = function isPercent(value) {\n return /((-)?\\d+\\.?\\d*)%/g.exec(value);\n};\n/**\n * Get percentage value of input\n *\n * @param {String} value\n * @returns {Object} percent value (if matches)\n */\n\n\nvar matchPercent = function matchPercent(value) {\n var match = isPercent(value);\n\n if (match) {\n var f = parseFloat(match[1], 10);\n var percent = f / 100;\n return {\n percent: percent,\n value: f\n };\n }\n\n return null;\n};\n\nvar _default = matchPercent;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Capitalize first letter of string\n *\n * @param {String} string\n * @returns {String} capitalized string\n */\nvar upperFirst = R.ifElse(R.isNil, R.identity, R.compose(R.join(''), R.juxt([R.compose(R.toUpper, R.head), R.tail])));\n\nvar _default = R.memoizeWith(R.identity, upperFirst);\n\nexports.default = _default;","import stream from 'stream';\nimport zlib from 'zlib';\nimport fontkit from '@react-pdf/fontkit';\nimport LZString from 'lz-string';\nimport PNG from '@react-pdf/png-js';\nimport CryptoJS from 'crypto-js';\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\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 _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 _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nvar PDFReference = /*#__PURE__*/function (_stream$Writable) {\n _inheritsLoose(PDFReference, _stream$Writable);\n\n function PDFReference(document, id, data) {\n var _this;\n\n _this = _stream$Writable.call(this, {\n decodeStrings: false\n }) || this;\n _this.finalize = _this.finalize.bind(_assertThisInitialized(_this));\n _this.document = document;\n _this.id = id;\n\n if (data == null) {\n data = {};\n }\n\n _this.data = data;\n _this.gen = 0;\n _this.deflate = null;\n _this.compress = _this.document.compress && !_this.data.Filter;\n _this.uncompressedLength = 0;\n _this.chunks = [];\n return _this;\n }\n\n var _proto = PDFReference.prototype;\n\n _proto.initDeflate = function initDeflate() {\n var _this2 = this;\n\n this.data.Filter = 'FlateDecode';\n this.deflate = zlib.createDeflate();\n this.deflate.on('data', function (chunk) {\n _this2.chunks.push(chunk);\n\n return _this2.data.Length += chunk.length;\n });\n return this.deflate.on('end', this.finalize);\n };\n\n _proto._write = function _write(chunk, encoding, callback) {\n if (!Buffer.isBuffer(chunk)) {\n chunk = Buffer.from(chunk + '\\n', 'binary');\n }\n\n this.uncompressedLength += chunk.length;\n\n if (this.data.Length == null) {\n this.data.Length = 0;\n }\n\n if (this.compress) {\n if (!this.deflate) {\n this.initDeflate();\n }\n\n this.deflate.write(chunk);\n } else {\n this.chunks.push(chunk);\n this.data.Length += chunk.length;\n }\n\n return callback();\n };\n\n _proto.end = function end() {\n _stream$Writable.prototype.end.apply(this, arguments);\n\n if (this.deflate) {\n return this.deflate.end();\n }\n\n return this.finalize();\n };\n\n _proto.finalize = function finalize() {\n this.offset = this.document._offset;\n\n this.document._write(this.id + \" \" + this.gen + \" obj\");\n\n this.document._write(PDFObject.convert(this.data));\n\n if (this.chunks.length) {\n this.document._write('stream');\n\n for (var _i = 0, _Array$from = Array.from(this.chunks); _i < _Array$from.length; _i++) {\n var chunk = _Array$from[_i];\n\n this.document._write(chunk);\n }\n\n this.chunks.length = 0; // free up memory\n\n this.document._write('\\nendstream');\n }\n\n this.document._write('endobj');\n\n return this.document._refEnd(this);\n };\n\n _proto.toString = function toString() {\n return this.id + \" \" + this.gen + \" R\";\n };\n\n return PDFReference;\n}(stream.Writable);\n\nvar PDFNameTree = /*#__PURE__*/function () {\n function PDFNameTree() {\n this._items = {};\n }\n\n var _proto = PDFNameTree.prototype;\n\n _proto.add = function add(key, val) {\n return this._items[key] = val;\n };\n\n _proto.get = function get(key) {\n return this._items[key];\n };\n\n _proto.toString = function toString() {\n // Needs to be sorted by key\n var sortedKeys = Object.keys(this._items).sort(function (a, b) {\n return a.localeCompare(b);\n });\n var out = ['<<'];\n\n if (sortedKeys.length > 1) {\n var first = sortedKeys[0],\n last = sortedKeys[sortedKeys.length - 1];\n out.push(\" /Limits \" + PDFObject.convert([new String(first), new String(last)]));\n }\n\n out.push(' /Names [');\n\n for (var _iterator = _createForOfIteratorHelperLoose(sortedKeys), _step; !(_step = _iterator()).done;) {\n var key = _step.value;\n out.push(\" \" + PDFObject.convert(new String(key)) + \" \" + PDFObject.convert(this._items[key]));\n }\n\n out.push(']');\n out.push('>>');\n return out.join('\\n');\n };\n\n return PDFNameTree;\n}();\n\nvar escapableRe = /[\\n\\r\\t\\b\\f\\(\\)\\\\]/g;\nvar escapable = {\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\\\': '\\\\\\\\',\n '(': '\\\\(',\n ')': '\\\\)'\n};\n\nvar pad = function pad(str, length) {\n return (Array(length + 1).join('0') + str).slice(-length);\n}; // Convert little endian UTF-16 to big endian\n\n\nvar swapBytes = function swapBytes(buff) {\n var l = buff.length;\n\n if (l & 0x01) {\n throw new Error('Buffer length must be even');\n } else {\n for (var i = 0, end = l - 1; i < end; i += 2) {\n var a = buff[i];\n buff[i] = buff[i + 1];\n buff[i + 1] = a;\n }\n }\n\n return buff;\n};\n\nvar PDFObject = /*#__PURE__*/function () {\n function PDFObject() {}\n\n PDFObject.convert = function convert(object) {\n // String literals are converted to the PDF name type\n if (typeof object === 'string') {\n return \"/\" + object;\n } // String objects are converted to PDF strings (UTF-16)\n\n\n if (object instanceof String) {\n var string = object; // Detect if this is a unicode string\n\n var isUnicode = false;\n\n for (var i = 0, end = string.length; i < end; i++) {\n if (string.charCodeAt(i) > 0x7f) {\n isUnicode = true;\n break;\n }\n } // If so, encode it as big endian UTF-16\n\n\n if (isUnicode) {\n string = swapBytes(Buffer.from(\"\\uFEFF\" + string, 'utf16le')).toString('binary');\n } // Escape characters as required by the spec\n\n\n string = string.replace(escapableRe, function (c) {\n return escapable[c];\n });\n return \"(\" + string + \")\"; // Buffers are converted to PDF hex strings\n }\n\n if (Buffer.isBuffer(object)) {\n return \"<\" + object.toString('hex') + \">\";\n }\n\n if (object instanceof PDFReference || object instanceof PDFNameTree) {\n return object.toString();\n }\n\n if (object instanceof Date) {\n return \"(D:\" + pad(object.getUTCFullYear(), 4) + pad(object.getUTCMonth() + 1, 2) + pad(object.getUTCDate(), 2) + pad(object.getUTCHours(), 2) + pad(object.getUTCMinutes(), 2) + pad(object.getUTCSeconds(), 2) + 'Z)';\n }\n\n if (Array.isArray(object)) {\n var items = Array.from(object).map(function (e) {\n return PDFObject.convert(e);\n }).join(' ');\n return \"[\" + items + \"]\";\n }\n\n if ({}.toString.call(object) === '[object Object]') {\n var out = ['<<'];\n\n for (var key in object) {\n var val = object[key];\n out.push(\"/\" + key + \" \" + PDFObject.convert(val));\n }\n\n out.push('>>');\n return out.join('\\n');\n }\n\n if (typeof object === 'number') {\n return PDFObject.number(object);\n }\n\n return \"\" + object;\n };\n\n PDFObject.number = function number(n) {\n if (n > -1e21 && n < 1e21) {\n return Math.round(n * 1e6) / 1e6;\n }\n\n throw new Error(\"unsupported number: \" + n);\n };\n\n return PDFObject;\n}();\n\nvar SIZES = {\n '4A0': [4767.87, 6740.79],\n '2A0': [3370.39, 4767.87],\n A0: [2383.94, 3370.39],\n A1: [1683.78, 2383.94],\n A2: [1190.55, 1683.78],\n A3: [841.89, 1190.55],\n A4: [595.28, 841.89],\n A5: [419.53, 595.28],\n A6: [297.64, 419.53],\n A7: [209.76, 297.64],\n A8: [147.4, 209.76],\n A9: [104.88, 147.4],\n A10: [73.7, 104.88],\n B0: [2834.65, 4008.19],\n B1: [2004.09, 2834.65],\n B2: [1417.32, 2004.09],\n B3: [1000.63, 1417.32],\n B4: [708.66, 1000.63],\n B5: [498.9, 708.66],\n B6: [354.33, 498.9],\n B7: [249.45, 354.33],\n B8: [175.75, 249.45],\n B9: [124.72, 175.75],\n B10: [87.87, 124.72],\n C0: [2599.37, 3676.54],\n C1: [1836.85, 2599.37],\n C2: [1298.27, 1836.85],\n C3: [918.43, 1298.27],\n C4: [649.13, 918.43],\n C5: [459.21, 649.13],\n C6: [323.15, 459.21],\n C7: [229.61, 323.15],\n C8: [161.57, 229.61],\n C9: [113.39, 161.57],\n C10: [79.37, 113.39],\n RA0: [2437.8, 3458.27],\n RA1: [1729.13, 2437.8],\n RA2: [1218.9, 1729.13],\n RA3: [864.57, 1218.9],\n RA4: [609.45, 864.57],\n SRA0: [2551.18, 3628.35],\n SRA1: [1814.17, 2551.18],\n SRA2: [1275.59, 1814.17],\n SRA3: [907.09, 1275.59],\n SRA4: [637.8, 907.09],\n EXECUTIVE: [521.86, 756.0],\n FOLIO: [612.0, 936.0],\n LEGAL: [612.0, 1008.0],\n LETTER: [612.0, 792.0],\n TABLOID: [792.0, 1224.0]\n};\n\nvar PDFPage = /*#__PURE__*/function () {\n function PDFPage(document, options) {\n var _this = this;\n\n this.document = document;\n\n if (options == null) {\n options = {};\n }\n\n this.size = options.size || 'letter';\n this.layout = options.layout || 'portrait'; // calculate page dimensions\n\n var dimensions = Array.isArray(this.size) ? this.size : SIZES[this.size.toUpperCase()];\n this.width = dimensions[this.layout === 'portrait' ? 0 : 1];\n this.height = dimensions[this.layout === 'portrait' ? 1 : 0];\n this.content = this.document.ref(); // Initialize the Font, XObject, and ExtGState dictionaries\n\n this.resources = this.document.ref({\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI']\n }); // Lazily create these dictionaries\n\n Object.defineProperties(this, {\n fonts: {\n get: function get() {\n return _this.resources.data.Font != null ? _this.resources.data.Font : _this.resources.data.Font = {};\n }\n },\n xobjects: {\n get: function get() {\n return _this.resources.data.XObject != null ? _this.resources.data.XObject : _this.resources.data.XObject = {};\n }\n },\n ext_gstates: {\n get: function get() {\n return _this.resources.data.ExtGState != null ? _this.resources.data.ExtGState : _this.resources.data.ExtGState = {};\n }\n },\n patterns: {\n get: function get() {\n return _this.resources.data.Pattern != null ? _this.resources.data.Pattern : _this.resources.data.Pattern = {};\n }\n },\n annotations: {\n get: function get() {\n return _this.dictionary.data.Annots != null ? _this.dictionary.data.Annots : _this.dictionary.data.Annots = [];\n }\n }\n }); // The page dictionary\n\n this.dictionary = this.document.ref({\n Type: 'Page',\n Parent: this.document._root.data.Pages,\n MediaBox: [0, 0, this.width, this.height],\n Contents: this.content,\n Resources: this.resources\n });\n }\n\n var _proto = PDFPage.prototype;\n\n _proto.maxY = function maxY() {\n return this.height;\n };\n\n _proto.write = function write(chunk) {\n return this.content.write(chunk);\n };\n\n _proto.end = function end() {\n this.dictionary.end();\n this.resources.end();\n return this.content.end();\n };\n\n return PDFPage;\n}();\n\nvar number$1 = PDFObject.number;\n\nvar PDFGradient$1 = /*#__PURE__*/function () {\n function PDFGradient(doc) {\n this.doc = doc;\n this.stops = [];\n this.embedded = false;\n this.transform = [1, 0, 0, 1, 0, 0];\n }\n\n var _proto = PDFGradient.prototype;\n\n _proto.stop = function stop(pos, color, opacity) {\n if (opacity == null) {\n opacity = 1;\n }\n\n color = this.doc._normalizeColor(color);\n\n if (this.stops.length === 0) {\n if (color.length === 3) {\n this._colorSpace = 'DeviceRGB';\n } else if (color.length === 4) {\n this._colorSpace = 'DeviceCMYK';\n } else if (color.length === 1) {\n this._colorSpace = 'DeviceGray';\n } else {\n throw new Error('Unknown color space');\n }\n } else if (this._colorSpace === 'DeviceRGB' && color.length !== 3 || this._colorSpace === 'DeviceCMYK' && color.length !== 4 || this._colorSpace === 'DeviceGray' && color.length !== 1) {\n throw new Error('All gradient stops must use the same color space');\n }\n\n opacity = Math.max(0, Math.min(1, opacity));\n this.stops.push([pos, color, opacity]);\n return this;\n };\n\n _proto.setTransform = function setTransform(m11, m12, m21, m22, dx, dy) {\n this.transform = [m11, m12, m21, m22, dx, dy];\n return this;\n };\n\n _proto.embed = function embed(m) {\n var fn;\n var stopsLength = this.stops.length;\n\n if (stopsLength === 0) {\n return;\n }\n\n this.embedded = true;\n this.matrix = m; // if the last stop comes before 100%, add a copy at 100%\n\n var last = this.stops[stopsLength - 1];\n\n if (last[0] < 1) {\n this.stops.push([1, last[1], last[2]]);\n }\n\n var bounds = [];\n var encode = [];\n var stops = [];\n\n for (var i = 0; i < stopsLength - 1; i++) {\n encode.push(0, 1);\n\n if (i + 2 !== stopsLength) {\n bounds.push(this.stops[i + 1][0]);\n }\n\n fn = this.doc.ref({\n FunctionType: 2,\n Domain: [0, 1],\n C0: this.stops[i + 0][1],\n C1: this.stops[i + 1][1],\n N: 1\n });\n stops.push(fn);\n fn.end();\n } // if there are only two stops, we don't need a stitching function\n\n\n if (stopsLength === 1) {\n fn = stops[0];\n } else {\n fn = this.doc.ref({\n FunctionType: 3,\n // stitching function\n Domain: [0, 1],\n Functions: stops,\n Bounds: bounds,\n Encode: encode\n });\n fn.end();\n }\n\n this.id = \"Sh\" + ++this.doc._gradCount;\n var shader = this.shader(fn);\n shader.end();\n var pattern = this.doc.ref({\n Type: 'Pattern',\n PatternType: 2,\n Shading: shader,\n Matrix: this.matrix.map(number$1)\n });\n pattern.end();\n\n if (this.stops.some(function (stop) {\n return stop[2] < 1;\n })) {\n var grad = this.opacityGradient();\n grad._colorSpace = 'DeviceGray';\n\n for (var _iterator = _createForOfIteratorHelperLoose(this.stops), _step; !(_step = _iterator()).done;) {\n var stop = _step.value;\n grad.stop(stop[0], [stop[2]]);\n }\n\n grad = grad.embed(this.matrix);\n var pageBBox = [0, 0, this.doc.page.width, this.doc.page.height];\n var form = this.doc.ref({\n Type: 'XObject',\n Subtype: 'Form',\n FormType: 1,\n BBox: pageBBox,\n Group: {\n Type: 'Group',\n S: 'Transparency',\n CS: 'DeviceGray'\n },\n Resources: {\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n Pattern: {\n Sh1: grad\n }\n }\n });\n form.write('/Pattern cs /Sh1 scn');\n form.end(pageBBox.join(' ') + \" re f\");\n var gstate = this.doc.ref({\n Type: 'ExtGState',\n SMask: {\n Type: 'Mask',\n S: 'Luminosity',\n G: form\n }\n });\n gstate.end();\n var opacityPattern = this.doc.ref({\n Type: 'Pattern',\n PatternType: 1,\n PaintType: 1,\n TilingType: 2,\n BBox: pageBBox,\n XStep: pageBBox[2],\n YStep: pageBBox[3],\n Resources: {\n ProcSet: ['PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'],\n Pattern: {\n Sh1: pattern\n },\n ExtGState: {\n Gs1: gstate\n }\n }\n });\n opacityPattern.write('/Gs1 gs /Pattern cs /Sh1 scn');\n opacityPattern.end(pageBBox.join(' ') + \" re f\");\n this.doc.page.patterns[this.id] = opacityPattern;\n } else {\n this.doc.page.patterns[this.id] = pattern;\n }\n\n return pattern;\n };\n\n _proto.apply = function apply(op) {\n // apply gradient transform to existing document ctm\n var _this$doc$_ctm = this.doc._ctm,\n m0 = _this$doc$_ctm[0],\n m1 = _this$doc$_ctm[1],\n m2 = _this$doc$_ctm[2],\n m3 = _this$doc$_ctm[3],\n m4 = _this$doc$_ctm[4],\n m5 = _this$doc$_ctm[5];\n var _this$transform = this.transform,\n m11 = _this$transform[0],\n m12 = _this$transform[1],\n m21 = _this$transform[2],\n m22 = _this$transform[3],\n dx = _this$transform[4],\n dy = _this$transform[5];\n var m = [m0 * m11 + m2 * m12, m1 * m11 + m3 * m12, m0 * m21 + m2 * m22, m1 * m21 + m3 * m22, m0 * dx + m2 * dy + m4, m1 * dx + m3 * dy + m5];\n\n if (!this.embedded || m.join(' ') !== this.matrix.join(' ')) {\n this.embed(m);\n }\n\n return this.doc.addContent(\"/\" + this.id + \" \" + op);\n };\n\n return PDFGradient;\n}();\n\nvar PDFLinearGradient$1 = /*#__PURE__*/function (_PDFGradient) {\n _inheritsLoose(PDFLinearGradient, _PDFGradient);\n\n function PDFLinearGradient(doc, x1, y1, x2, y2) {\n var _this;\n\n _this = _PDFGradient.call(this, doc) || this;\n _this.x1 = x1;\n _this.y1 = y1;\n _this.x2 = x2;\n _this.y2 = y2;\n return _this;\n }\n\n var _proto2 = PDFLinearGradient.prototype;\n\n _proto2.shader = function shader(fn) {\n return this.doc.ref({\n ShadingType: 2,\n ColorSpace: this._colorSpace,\n Coords: [this.x1, this.y1, this.x2, this.y2],\n Function: fn,\n Extend: [true, true]\n });\n };\n\n _proto2.opacityGradient = function opacityGradient() {\n return new PDFLinearGradient(this.doc, this.x1, this.y1, this.x2, this.y2);\n };\n\n return PDFLinearGradient;\n}(PDFGradient$1);\n\nvar PDFRadialGradient$1 = /*#__PURE__*/function (_PDFGradient2) {\n _inheritsLoose(PDFRadialGradient, _PDFGradient2);\n\n function PDFRadialGradient(doc, x1, y1, r1, x2, y2, r2) {\n var _this2;\n\n _this2 = _PDFGradient2.call(this, doc) || this;\n _this2.doc = doc;\n _this2.x1 = x1;\n _this2.y1 = y1;\n _this2.r1 = r1;\n _this2.x2 = x2;\n _this2.y2 = y2;\n _this2.r2 = r2;\n return _this2;\n }\n\n var _proto3 = PDFRadialGradient.prototype;\n\n _proto3.shader = function shader(fn) {\n return this.doc.ref({\n ShadingType: 3,\n ColorSpace: this._colorSpace,\n Coords: [this.x1, this.y1, this.r1, this.x2, this.y2, this.r2],\n Function: fn,\n Extend: [true, true]\n });\n };\n\n _proto3.opacityGradient = function opacityGradient() {\n return new PDFRadialGradient(this.doc, this.x1, this.y1, this.r1, this.x2, this.y2, this.r2);\n };\n\n return PDFRadialGradient;\n}(PDFGradient$1);\n\nvar Gradient = {\n PDFGradient: PDFGradient$1,\n PDFLinearGradient: PDFLinearGradient$1,\n PDFRadialGradient: PDFRadialGradient$1\n};\n\nvar PDFGradient = Gradient.PDFGradient,\n PDFLinearGradient = Gradient.PDFLinearGradient,\n PDFRadialGradient = Gradient.PDFRadialGradient;\nvar Color = {\n initColor: function initColor() {\n // The opacity dictionaries\n this._opacityRegistry = {};\n this._opacityCount = 0;\n return this._gradCount = 0;\n },\n _normalizeColor: function _normalizeColor(color) {\n if (color instanceof PDFGradient) {\n return color;\n }\n\n var part;\n\n if (typeof color === 'string') {\n if (color.charAt(0) === '#') {\n if (color.length === 4) {\n color = color.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i, '#$1$1$2$2$3$3');\n }\n\n var hex = parseInt(color.slice(1), 16);\n color = [hex >> 16, hex >> 8 & 0xff, hex & 0xff];\n } else if (namedColors[color]) {\n color = namedColors[color];\n }\n }\n\n if (Array.isArray(color)) {\n // RGB\n if (color.length === 3) {\n color = function () {\n var result = [];\n\n for (var _i = 0, _Array$from = Array.from(color); _i < _Array$from.length; _i++) {\n part = _Array$from[_i];\n result.push(part / 255);\n }\n\n return result;\n }(); // CMYK\n\n } else if (color.length === 4) {\n color = function () {\n var result1 = [];\n\n for (var _i2 = 0, _Array$from2 = Array.from(color); _i2 < _Array$from2.length; _i2++) {\n part = _Array$from2[_i2];\n result1.push(part / 100);\n }\n\n return result1;\n }();\n }\n\n return color;\n }\n\n return null;\n },\n _setColor: function _setColor(color, stroke) {\n color = this._normalizeColor(color);\n\n if (!color) {\n return false;\n }\n\n var op = stroke ? 'SCN' : 'scn';\n\n if (color instanceof PDFGradient) {\n this._setColorSpace('Pattern', stroke);\n\n color.apply(op);\n } else {\n var space = color.length === 4 ? 'DeviceCMYK' : 'DeviceRGB';\n\n this._setColorSpace(space, stroke);\n\n color = color.join(' ');\n this.addContent(color + \" \" + op);\n }\n\n return true;\n },\n _setColorSpace: function _setColorSpace(space, stroke) {\n var op = stroke ? 'CS' : 'cs';\n return this.addContent(\"/\" + space + \" \" + op);\n },\n fillColor: function fillColor(color, opacity) {\n var set = this._setColor(color, false);\n\n if (set) {\n this.fillOpacity(opacity);\n } // save this for text wrapper, which needs to reset\n // the fill color on new pages\n\n\n this._fillColor = [color, opacity];\n return this;\n },\n strokeColor: function strokeColor(color, opacity) {\n var set = this._setColor(color, true);\n\n if (set) {\n this.strokeOpacity(opacity);\n }\n\n return this;\n },\n opacity: function opacity(_opacity) {\n this._doOpacity(_opacity, _opacity);\n\n return this;\n },\n fillOpacity: function fillOpacity(opacity) {\n this._doOpacity(opacity, null);\n\n return this;\n },\n strokeOpacity: function strokeOpacity(opacity) {\n this._doOpacity(null, opacity);\n\n return this;\n },\n _doOpacity: function _doOpacity(fillOpacity, strokeOpacity) {\n var dictionary, name;\n\n if (fillOpacity == null && strokeOpacity == null) {\n return;\n }\n\n if (fillOpacity != null) {\n fillOpacity = Math.max(0, Math.min(1, fillOpacity));\n }\n\n if (strokeOpacity != null) {\n strokeOpacity = Math.max(0, Math.min(1, strokeOpacity));\n }\n\n var key = fillOpacity + \"_\" + strokeOpacity;\n\n if (this._opacityRegistry[key]) {\n var _Array$from3 = Array.from(this._opacityRegistry[key]);\n\n dictionary = _Array$from3[0];\n name = _Array$from3[1];\n } else {\n dictionary = {\n Type: 'ExtGState'\n };\n\n if (fillOpacity != null) {\n dictionary.ca = fillOpacity;\n }\n\n if (strokeOpacity != null) {\n dictionary.CA = strokeOpacity;\n }\n\n dictionary = this.ref(dictionary);\n dictionary.end();\n var id = ++this._opacityCount;\n name = \"Gs\" + id;\n this._opacityRegistry[key] = [dictionary, name];\n }\n\n this.page.ext_gstates[name] = dictionary;\n return this.addContent(\"/\" + name + \" gs\");\n },\n linearGradient: function linearGradient(x1, y1, x2, y2) {\n return new PDFLinearGradient(this, x1, y1, x2, y2);\n },\n radialGradient: function radialGradient(x1, y1, r1, x2, y2, r2) {\n return new PDFRadialGradient(this, x1, y1, r1, x2, y2, r2);\n }\n};\nvar namedColors = {\n aliceblue: [240, 248, 255],\n antiquewhite: [250, 235, 215],\n aqua: [0, 255, 255],\n aquamarine: [127, 255, 212],\n azure: [240, 255, 255],\n beige: [245, 245, 220],\n bisque: [255, 228, 196],\n black: [0, 0, 0],\n blanchedalmond: [255, 235, 205],\n blue: [0, 0, 255],\n blueviolet: [138, 43, 226],\n brown: [165, 42, 42],\n burlywood: [222, 184, 135],\n cadetblue: [95, 158, 160],\n chartreuse: [127, 255, 0],\n chocolate: [210, 105, 30],\n coral: [255, 127, 80],\n cornflowerblue: [100, 149, 237],\n cornsilk: [255, 248, 220],\n crimson: [220, 20, 60],\n cyan: [0, 255, 255],\n darkblue: [0, 0, 139],\n darkcyan: [0, 139, 139],\n darkgoldenrod: [184, 134, 11],\n darkgray: [169, 169, 169],\n darkgreen: [0, 100, 0],\n darkgrey: [169, 169, 169],\n darkkhaki: [189, 183, 107],\n darkmagenta: [139, 0, 139],\n darkolivegreen: [85, 107, 47],\n darkorange: [255, 140, 0],\n darkorchid: [153, 50, 204],\n darkred: [139, 0, 0],\n darksalmon: [233, 150, 122],\n darkseagreen: [143, 188, 143],\n darkslateblue: [72, 61, 139],\n darkslategray: [47, 79, 79],\n darkslategrey: [47, 79, 79],\n darkturquoise: [0, 206, 209],\n darkviolet: [148, 0, 211],\n deeppink: [255, 20, 147],\n deepskyblue: [0, 191, 255],\n dimgray: [105, 105, 105],\n dimgrey: [105, 105, 105],\n dodgerblue: [30, 144, 255],\n firebrick: [178, 34, 34],\n floralwhite: [255, 250, 240],\n forestgreen: [34, 139, 34],\n fuchsia: [255, 0, 255],\n gainsboro: [220, 220, 220],\n ghostwhite: [248, 248, 255],\n gold: [255, 215, 0],\n goldenrod: [218, 165, 32],\n gray: [128, 128, 128],\n grey: [128, 128, 128],\n green: [0, 128, 0],\n greenyellow: [173, 255, 47],\n honeydew: [240, 255, 240],\n hotpink: [255, 105, 180],\n indianred: [205, 92, 92],\n indigo: [75, 0, 130],\n ivory: [255, 255, 240],\n khaki: [240, 230, 140],\n lavender: [230, 230, 250],\n lavenderblush: [255, 240, 245],\n lawngreen: [124, 252, 0],\n lemonchiffon: [255, 250, 205],\n lightblue: [173, 216, 230],\n lightcoral: [240, 128, 128],\n lightcyan: [224, 255, 255],\n lightgoldenrodyellow: [250, 250, 210],\n lightgray: [211, 211, 211],\n lightgreen: [144, 238, 144],\n lightgrey: [211, 211, 211],\n lightpink: [255, 182, 193],\n lightsalmon: [255, 160, 122],\n lightseagreen: [32, 178, 170],\n lightskyblue: [135, 206, 250],\n lightslategray: [119, 136, 153],\n lightslategrey: [119, 136, 153],\n lightsteelblue: [176, 196, 222],\n lightyellow: [255, 255, 224],\n lime: [0, 255, 0],\n limegreen: [50, 205, 50],\n linen: [250, 240, 230],\n magenta: [255, 0, 255],\n maroon: [128, 0, 0],\n mediumaquamarine: [102, 205, 170],\n mediumblue: [0, 0, 205],\n mediumorchid: [186, 85, 211],\n mediumpurple: [147, 112, 219],\n mediumseagreen: [60, 179, 113],\n mediumslateblue: [123, 104, 238],\n mediumspringgreen: [0, 250, 154],\n mediumturquoise: [72, 209, 204],\n mediumvioletred: [199, 21, 133],\n midnightblue: [25, 25, 112],\n mintcream: [245, 255, 250],\n mistyrose: [255, 228, 225],\n moccasin: [255, 228, 181],\n navajowhite: [255, 222, 173],\n navy: [0, 0, 128],\n oldlace: [253, 245, 230],\n olive: [128, 128, 0],\n olivedrab: [107, 142, 35],\n orange: [255, 165, 0],\n orangered: [255, 69, 0],\n orchid: [218, 112, 214],\n palegoldenrod: [238, 232, 170],\n palegreen: [152, 251, 152],\n paleturquoise: [175, 238, 238],\n palevioletred: [219, 112, 147],\n papayawhip: [255, 239, 213],\n peachpuff: [255, 218, 185],\n peru: [205, 133, 63],\n pink: [255, 192, 203],\n plum: [221, 160, 221],\n powderblue: [176, 224, 230],\n purple: [128, 0, 128],\n red: [255, 0, 0],\n rosybrown: [188, 143, 143],\n royalblue: [65, 105, 225],\n saddlebrown: [139, 69, 19],\n salmon: [250, 128, 114],\n sandybrown: [244, 164, 96],\n seagreen: [46, 139, 87],\n seashell: [255, 245, 238],\n sienna: [160, 82, 45],\n silver: [192, 192, 192],\n skyblue: [135, 206, 235],\n slateblue: [106, 90, 205],\n slategray: [112, 128, 144],\n slategrey: [112, 128, 144],\n snow: [255, 250, 250],\n springgreen: [0, 255, 127],\n steelblue: [70, 130, 180],\n tan: [210, 180, 140],\n teal: [0, 128, 128],\n thistle: [216, 191, 216],\n tomato: [255, 99, 71],\n turquoise: [64, 224, 208],\n violet: [238, 130, 238],\n wheat: [245, 222, 179],\n white: [255, 255, 255],\n whitesmoke: [245, 245, 245],\n yellow: [255, 255, 0],\n yellowgreen: [154, 205, 50]\n};\n\nvar SVGPath = function () {\n var parameters = undefined;\n var parse = undefined;\n var cx = undefined;\n var _apply = undefined;\n var runners = undefined;\n var solveArc = undefined;\n var arcToSegments = undefined;\n var segmentToBezier = undefined;\n\n SVGPath = /*#__PURE__*/function () {\n function SVGPath() {}\n\n SVGPath.initClass = function initClass() {\n var cy, px, py, sx, sy;\n parameters = {\n A: 7,\n a: 7,\n C: 6,\n c: 6,\n H: 1,\n h: 1,\n L: 2,\n l: 2,\n M: 2,\n m: 2,\n Q: 4,\n q: 4,\n S: 4,\n s: 4,\n T: 2,\n t: 2,\n V: 1,\n v: 1,\n Z: 0,\n z: 0\n };\n\n parse = function parse(path) {\n var cmd;\n var ret = [];\n var args = [];\n var curArg = '';\n var foundDecimal = false;\n var params = 0;\n\n for (var _i = 0, _Array$from = Array.from(path); _i < _Array$from.length; _i++) {\n var c = _Array$from[_i];\n\n if (parameters[c] != null) {\n params = parameters[c];\n\n if (cmd) {\n // save existing command\n if (curArg.length > 0) {\n args[args.length] = +curArg;\n }\n\n ret[ret.length] = {\n cmd: cmd,\n args: args\n };\n args = [];\n curArg = '';\n foundDecimal = false;\n }\n\n cmd = c;\n } else if ([' ', ','].includes(c) || c === '-' && curArg.length > 0 && curArg[curArg.length - 1] !== 'e' || c === '.' && foundDecimal) {\n if (curArg.length === 0) {\n continue;\n }\n\n if (args.length === params) {\n // handle reused commands\n ret[ret.length] = {\n cmd: cmd,\n args: args\n };\n args = [+curArg]; // handle assumed commands\n\n if (cmd === 'M') {\n cmd = 'L';\n }\n\n if (cmd === 'm') {\n cmd = 'l';\n }\n } else {\n args[args.length] = +curArg;\n }\n\n foundDecimal = c === '.'; // fix for negative numbers or repeated decimals with no delimeter between commands\n\n curArg = ['-', '.'].includes(c) ? c : '';\n } else {\n curArg += c;\n\n if (c === '.') {\n foundDecimal = true;\n }\n }\n } // add the last command\n\n\n if (curArg.length > 0) {\n if (args.length === params) {\n // handle reused commands\n ret[ret.length] = {\n cmd: cmd,\n args: args\n };\n args = [+curArg]; // handle assumed commands\n\n if (cmd === 'M') {\n cmd = 'L';\n }\n\n if (cmd === 'm') {\n cmd = 'l';\n }\n } else {\n args[args.length] = +curArg;\n }\n }\n\n ret[ret.length] = {\n cmd: cmd,\n args: args\n };\n return ret;\n };\n\n cx = cy = px = py = sx = sy = 0;\n\n _apply = function _apply(commands, doc) {\n // current point, control point, and subpath starting point\n cx = cy = px = py = sx = sy = 0; // run the commands\n\n for (var i = 0; i < commands.length; i++) {\n var c = commands[i];\n\n if (typeof runners[c.cmd] === 'function') {\n runners[c.cmd](doc, c.args);\n }\n }\n\n return cx = cy = px = py = 0;\n };\n\n runners = {\n M: function M(doc, a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return doc.moveTo(cx, cy);\n },\n m: function m(doc, a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n sx = cx;\n sy = cy;\n return doc.moveTo(cx, cy);\n },\n C: function C(doc, a) {\n cx = a[4];\n cy = a[5];\n px = a[2];\n py = a[3];\n return doc.bezierCurveTo.apply(doc, Array.from(a || []));\n },\n c: function c(doc, a) {\n doc.bezierCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy, a[4] + cx, a[5] + cy);\n px = cx + a[2];\n py = cy + a[3];\n cx += a[4];\n return cy += a[5];\n },\n S: function S(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n }\n\n doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), a[0], a[1], a[2], a[3]);\n px = a[0];\n py = a[1];\n cx = a[2];\n return cy = a[3];\n },\n s: function s(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n }\n\n doc.bezierCurveTo(cx - (px - cx), cy - (py - cy), cx + a[0], cy + a[1], cx + a[2], cy + a[3]);\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n return cy += a[3];\n },\n Q: function Q(doc, a) {\n px = a[0];\n py = a[1];\n cx = a[2];\n cy = a[3];\n return doc.quadraticCurveTo(a[0], a[1], cx, cy);\n },\n q: function q(doc, a) {\n doc.quadraticCurveTo(a[0] + cx, a[1] + cy, a[2] + cx, a[3] + cy);\n px = cx + a[0];\n py = cy + a[1];\n cx += a[2];\n return cy += a[3];\n },\n T: function T(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n } else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n\n doc.quadraticCurveTo(px, py, a[0], a[1]);\n px = cx - (px - cx);\n py = cy - (py - cy);\n cx = a[0];\n return cy = a[1];\n },\n t: function t(doc, a) {\n if (px === null) {\n px = cx;\n py = cy;\n } else {\n px = cx - (px - cx);\n py = cy - (py - cy);\n }\n\n doc.quadraticCurveTo(px, py, cx + a[0], cy + a[1]);\n cx += a[0];\n return cy += a[1];\n },\n A: function A(doc, a) {\n solveArc(doc, cx, cy, a);\n cx = a[5];\n return cy = a[6];\n },\n a: function a(doc, _a) {\n _a[5] += cx;\n _a[6] += cy;\n solveArc(doc, cx, cy, _a);\n cx = _a[5];\n return cy = _a[6];\n },\n L: function L(doc, a) {\n cx = a[0];\n cy = a[1];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n l: function l(doc, a) {\n cx += a[0];\n cy += a[1];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n H: function H(doc, a) {\n cx = a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n h: function h(doc, a) {\n cx += a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n V: function V(doc, a) {\n cy = a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n v: function v(doc, a) {\n cy += a[0];\n px = py = null;\n return doc.lineTo(cx, cy);\n },\n Z: function Z(doc) {\n doc.closePath();\n cx = sx;\n return cy = sy;\n },\n z: function z(doc) {\n doc.closePath();\n cx = sx;\n return cy = sy;\n }\n };\n\n solveArc = function solveArc(doc, x, y, coords) {\n var _Array$from2 = Array.from(coords),\n rx = _Array$from2[0],\n ry = _Array$from2[1],\n rot = _Array$from2[2],\n large = _Array$from2[3],\n sweep = _Array$from2[4],\n ex = _Array$from2[5],\n ey = _Array$from2[6];\n\n var segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n return function () {\n var result = [];\n\n for (var _i2 = 0, _Array$from3 = Array.from(segs); _i2 < _Array$from3.length; _i2++) {\n var seg = _Array$from3[_i2];\n var bez = segmentToBezier.apply(void 0, Array.from(seg || []));\n result.push(doc.bezierCurveTo.apply(doc, Array.from(bez || [])));\n }\n\n return result;\n }();\n }; // from Inkscape svgtopdf, thanks!\n\n\n arcToSegments = function arcToSegments(x, y, rx, ry, large, sweep, rotateX, ox, oy) {\n var th = rotateX * (Math.PI / 180);\n var sin_th = Math.sin(th);\n var cos_th = Math.cos(th);\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n px = cos_th * (ox - x) * 0.5 + sin_th * (oy - y) * 0.5;\n py = cos_th * (oy - y) * 0.5 - sin_th * (ox - x) * 0.5;\n var pl = px * px / (rx * rx) + py * py / (ry * ry);\n\n if (pl > 1) {\n pl = Math.sqrt(pl);\n rx *= pl;\n ry *= pl;\n }\n\n var a00 = cos_th / rx;\n var a01 = sin_th / rx;\n var a10 = -sin_th / ry;\n var a11 = cos_th / ry;\n var x0 = a00 * ox + a01 * oy;\n var y0 = a10 * ox + a11 * oy;\n var x1 = a00 * x + a01 * y;\n var y1 = a10 * x + a11 * y;\n var d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n var sfactor_sq = 1 / d - 0.25;\n\n if (sfactor_sq < 0) {\n sfactor_sq = 0;\n }\n\n var sfactor = Math.sqrt(sfactor_sq);\n\n if (sweep === large) {\n sfactor = -sfactor;\n }\n\n var xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n var yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n var th0 = Math.atan2(y0 - yc, x0 - xc);\n var th1 = Math.atan2(y1 - yc, x1 - xc);\n var th_arc = th1 - th0;\n\n if (th_arc < 0 && sweep === 1) {\n th_arc += 2 * Math.PI;\n } else if (th_arc > 0 && sweep === 0) {\n th_arc -= 2 * Math.PI;\n }\n\n var segments = Math.ceil(Math.abs(th_arc / (Math.PI * 0.5 + 0.001)));\n var result = [];\n\n for (var i = 0, end = segments, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n var th2 = th0 + i * th_arc / segments;\n var th3 = th0 + (i + 1) * th_arc / segments;\n result[i] = [xc, yc, th2, th3, rx, ry, sin_th, cos_th];\n }\n\n return result;\n };\n\n segmentToBezier = function segmentToBezier(cx, cy, th0, th1, rx, ry, sin_th, cos_th) {\n var a00 = cos_th * rx;\n var a01 = -sin_th * ry;\n var a10 = sin_th * rx;\n var a11 = cos_th * ry;\n var th_half = 0.5 * (th1 - th0);\n var t = 8 / 3 * Math.sin(th_half * 0.5) * Math.sin(th_half * 0.5) / Math.sin(th_half);\n var x1 = cx + Math.cos(th0) - t * Math.sin(th0);\n var y1 = cy + Math.sin(th0) + t * Math.cos(th0);\n var x3 = cx + Math.cos(th1);\n var y3 = cy + Math.sin(th1);\n var x2 = x3 + t * Math.sin(th1);\n var y2 = y3 - t * Math.cos(th1);\n return [a00 * x1 + a01 * y1, a10 * x1 + a11 * y1, a00 * x2 + a01 * y2, a10 * x2 + a11 * y2, a00 * x3 + a01 * y3, a10 * x3 + a11 * y3];\n };\n };\n\n SVGPath.apply = function apply(doc, path) {\n var commands = parse(path);\n return _apply(commands, doc);\n };\n\n return SVGPath;\n }();\n\n SVGPath.initClass();\n return SVGPath;\n}();\n\nvar SVGPath$1 = SVGPath;\n\nvar number = PDFObject.number; // This constant is used to approximate a symmetrical arc using a cubic\n// Bezier curve.\n\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\nvar Vector = {\n initVector: function initVector() {\n this._ctm = [1, 0, 0, 1, 0, 0]; // current transformation matrix\n\n return this._ctmStack = [];\n },\n save: function save() {\n this._ctmStack.push(this._ctm.slice()); // TODO: save/restore colorspace and styles so not setting it unnessesarily all the time?\n\n\n return this.addContent('q');\n },\n restore: function restore() {\n this._ctm = this._ctmStack.pop() || [1, 0, 0, 1, 0, 0];\n return this.addContent('Q');\n },\n closePath: function closePath() {\n return this.addContent('h');\n },\n lineWidth: function lineWidth(w) {\n return this.addContent(number(w) + \" w\");\n },\n _CAP_STYLES: {\n BUTT: 0,\n ROUND: 1,\n SQUARE: 2\n },\n lineCap: function lineCap(c) {\n if (typeof c === 'string') {\n c = this._CAP_STYLES[c.toUpperCase()];\n }\n\n return this.addContent(c + \" J\");\n },\n _JOIN_STYLES: {\n MITER: 0,\n ROUND: 1,\n BEVEL: 2\n },\n lineJoin: function lineJoin(j) {\n if (typeof j === 'string') {\n j = this._JOIN_STYLES[j.toUpperCase()];\n }\n\n return this.addContent(j + \" j\");\n },\n miterLimit: function miterLimit(m) {\n return this.addContent(number(m) + \" M\");\n },\n dash: function dash(length, options) {\n var phase;\n\n if (options == null) {\n options = {};\n }\n\n if (length == null) {\n return this;\n }\n\n if (Array.isArray(length)) {\n length = Array.from(length).map(function (v) {\n return PDFObject.number(v);\n }).join(' ');\n phase = options.phase || 0;\n return this.addContent(\"[\" + length + \"] \" + PDFObject.number(phase) + \" d\");\n } else {\n var space = options.space != null ? options.space : length;\n phase = options.phase || 0;\n return this.addContent(\"[\" + PDFObject.number(length) + \" \" + PDFObject.number(space) + \"] \" + PDFObject.number(phase) + \" d\");\n }\n },\n undash: function undash() {\n return this.addContent('[] 0 d');\n },\n moveTo: function moveTo(x, y) {\n return this.addContent(number(x) + \" \" + number(y) + \" m\");\n },\n lineTo: function lineTo(x, y) {\n return this.addContent(number(x) + \" \" + number(y) + \" l\");\n },\n bezierCurveTo: function bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {\n return this.addContent(number(cp1x) + \" \" + number(cp1y) + \" \" + number(cp2x) + \" \" + number(cp2y) + \" \" + number(x) + \" \" + number(y) + \" c\");\n },\n quadraticCurveTo: function quadraticCurveTo(cpx, cpy, x, y) {\n return this.addContent(number(cpx) + \" \" + number(cpy) + \" \" + number(x) + \" \" + number(y) + \" v\");\n },\n rect: function rect(x, y, w, h) {\n return this.addContent(number(x) + \" \" + number(y) + \" \" + number(w) + \" \" + number(h) + \" re\");\n },\n roundedRect: function roundedRect(x, y, w, h, r) {\n if (r == null) {\n r = 0;\n }\n\n r = Math.min(r, 0.5 * w, 0.5 * h); // amount to inset control points from corners (see `ellipse`)\n\n var c = r * (1.0 - KAPPA);\n this.moveTo(x + r, y);\n this.lineTo(x + w - r, y);\n this.bezierCurveTo(x + w - c, y, x + w, y + c, x + w, y + r);\n this.lineTo(x + w, y + h - r);\n this.bezierCurveTo(x + w, y + h - c, x + w - c, y + h, x + w - r, y + h);\n this.lineTo(x + r, y + h);\n this.bezierCurveTo(x + c, y + h, x, y + h - c, x, y + h - r);\n this.lineTo(x, y + r);\n this.bezierCurveTo(x, y + c, x + c, y, x + r, y);\n return this.closePath();\n },\n ellipse: function ellipse(x, y, r1, r2) {\n // based on http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas/2173084#2173084\n if (r2 == null) {\n r2 = r1;\n }\n\n x -= r1;\n y -= r2;\n var ox = r1 * KAPPA;\n var oy = r2 * KAPPA;\n var xe = x + r1 * 2;\n var ye = y + r2 * 2;\n var xm = x + r1;\n var ym = y + r2;\n this.moveTo(x, ym);\n this.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n this.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n this.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n this.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n return this.closePath();\n },\n circle: function circle(x, y, radius) {\n return this.ellipse(x, y, radius);\n },\n arc: function arc(x, y, radius, startAngle, endAngle, anticlockwise) {\n if (anticlockwise == null) {\n anticlockwise = false;\n }\n\n var TWO_PI = 2.0 * Math.PI;\n var HALF_PI = 0.5 * Math.PI;\n var deltaAng = endAngle - startAngle;\n\n if (Math.abs(deltaAng) > TWO_PI) {\n // draw only full circle if more than that is specified\n deltaAng = TWO_PI;\n } else if (deltaAng !== 0 && anticlockwise !== deltaAng < 0) {\n // necessary to flip direction of rendering\n var dir = anticlockwise ? -1 : 1;\n deltaAng = dir * TWO_PI + deltaAng;\n }\n\n var numSegs = Math.ceil(Math.abs(deltaAng) / HALF_PI);\n var segAng = deltaAng / numSegs;\n var handleLen = segAng / HALF_PI * KAPPA * radius;\n var curAng = startAngle; // component distances between anchor point and control point\n\n var deltaCx = -Math.sin(curAng) * handleLen;\n var deltaCy = Math.cos(curAng) * handleLen; // anchor point\n\n var ax = x + Math.cos(curAng) * radius;\n var ay = y + Math.sin(curAng) * radius; // calculate and render segments\n\n this.moveTo(ax, ay);\n\n for (var segIdx = 0, end = numSegs, asc = 0 <= end; asc ? segIdx < end : segIdx > end; asc ? segIdx++ : segIdx--) {\n // starting control point\n var cp1x = ax + deltaCx;\n var cp1y = ay + deltaCy; // step angle\n\n curAng += segAng; // next anchor point\n\n ax = x + Math.cos(curAng) * radius;\n ay = y + Math.sin(curAng) * radius; // next control point delta\n\n deltaCx = -Math.sin(curAng) * handleLen;\n deltaCy = Math.cos(curAng) * handleLen; // ending control point\n\n var cp2x = ax - deltaCx;\n var cp2y = ay - deltaCy; // render segment\n\n this.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, ax, ay);\n }\n\n return this;\n },\n polygon: function polygon() {\n for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {\n points[_key] = arguments[_key];\n }\n\n this.moveTo.apply(this, Array.from(points.shift() || []));\n\n for (var _i = 0, _Array$from = Array.from(points); _i < _Array$from.length; _i++) {\n var point = _Array$from[_i];\n this.lineTo.apply(this, Array.from(point || []));\n }\n\n return this.closePath();\n },\n path: function path(_path) {\n SVGPath$1.apply(this, _path);\n return this;\n },\n _windingRule: function _windingRule(rule) {\n if (/even-?odd/.test(rule)) {\n return '*';\n }\n\n return '';\n },\n fill: function fill(color, rule) {\n if (/(even-?odd)|(non-?zero)/.test(color)) {\n rule = color;\n color = null;\n }\n\n if (color) {\n this.fillColor(color);\n }\n\n return this.addContent(\"f\" + this._windingRule(rule));\n },\n stroke: function stroke(color) {\n if (color) {\n this.strokeColor(color);\n }\n\n return this.addContent('S');\n },\n fillAndStroke: function fillAndStroke(fillColor, strokeColor, rule) {\n if (strokeColor == null) {\n strokeColor = fillColor;\n }\n\n var isFillRule = /(even-?odd)|(non-?zero)/;\n\n if (isFillRule.test(fillColor)) {\n rule = fillColor;\n fillColor = null;\n }\n\n if (isFillRule.test(strokeColor)) {\n rule = strokeColor;\n strokeColor = fillColor;\n }\n\n if (fillColor) {\n this.fillColor(fillColor);\n this.strokeColor(strokeColor);\n }\n\n return this.addContent(\"B\" + this._windingRule(rule));\n },\n clip: function clip(rule) {\n return this.addContent(\"W\" + this._windingRule(rule) + \" n\");\n },\n transform: function transform(m11, m12, m21, m22, dx, dy) {\n // keep track of the current transformation matrix\n var m = this._ctm;\n\n var _Array$from2 = Array.from(m),\n m0 = _Array$from2[0],\n m1 = _Array$from2[1],\n m2 = _Array$from2[2],\n m3 = _Array$from2[3],\n m4 = _Array$from2[4],\n m5 = _Array$from2[5];\n\n m[0] = m0 * m11 + m2 * m12;\n m[1] = m1 * m11 + m3 * m12;\n m[2] = m0 * m21 + m2 * m22;\n m[3] = m1 * m21 + m3 * m22;\n m[4] = m0 * dx + m2 * dy + m4;\n m[5] = m1 * dx + m3 * dy + m5;\n var values = [m11, m12, m21, m22, dx, dy].map(function (v) {\n return PDFObject.number(v);\n }).join(' ');\n return this.addContent(values + \" cm\");\n },\n translate: function translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n },\n rotate: function rotate(angle, options) {\n if (options === void 0) {\n options = {};\n }\n\n var y;\n var rad = angle * Math.PI / 180;\n var cos = Math.cos(rad);\n var sin = Math.sin(rad);\n var x = y = 0;\n\n if (options.origin != null) {\n var _Array$from3 = Array.from(options.origin);\n\n x = _Array$from3[0];\n y = _Array$from3[1];\n var x1 = x * cos - y * sin;\n var y1 = x * sin + y * cos;\n x -= x1;\n y -= y1;\n }\n\n return this.transform(cos, sin, -sin, cos, x, y);\n },\n scale: function scale(xFactor, yFactor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var y;\n\n if (yFactor == null) {\n yFactor = xFactor;\n }\n\n if (typeof yFactor === 'object') {\n options = yFactor;\n yFactor = xFactor;\n }\n\n var x = y = 0;\n\n if (options.origin != null) {\n var _Array$from4 = Array.from(options.origin);\n\n x = _Array$from4[0];\n y = _Array$from4[1];\n x -= xFactor * x;\n y -= yFactor * y;\n }\n\n return this.transform(xFactor, 0, 0, yFactor, x, y);\n }\n};\n\nvar range = function range(left, right, inclusive) {\n var range = [];\n var ascending = left < right;\n var end = !inclusive ? right : ascending ? right + 1 : right - 1;\n\n for (var i = left; ascending ? i < end : i > end; ascending ? i++ : i--) {\n range.push(i);\n }\n\n return range;\n};\n\nvar WIN_ANSI_MAP = {\n 402: 131,\n 8211: 150,\n 8212: 151,\n 8216: 145,\n 8217: 146,\n 8218: 130,\n 8220: 147,\n 8221: 148,\n 8222: 132,\n 8224: 134,\n 8225: 135,\n 8226: 149,\n 8230: 133,\n 8364: 128,\n 8240: 137,\n 8249: 139,\n 8250: 155,\n 710: 136,\n 8482: 153,\n 338: 140,\n 339: 156,\n 732: 152,\n 352: 138,\n 353: 154,\n 376: 159,\n 381: 142,\n 382: 158\n};\nvar characters = \".notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n.notdef .notdef .notdef .notdef\\n\\nspace exclam quotedbl numbersign\\ndollar percent ampersand quotesingle\\nparenleft parenright asterisk plus\\ncomma hyphen period slash\\nzero one two three\\nfour five six seven\\neight nine colon semicolon\\nless equal greater question\\n\\nat A B C\\nD E F G\\nH I J K\\nL M N O\\nP Q R S\\nT U V W\\nX Y Z bracketleft\\nbackslash bracketright asciicircum underscore\\n\\ngrave a b c\\nd e f g\\nh i j k\\nl m n o\\np q r s\\nt u v w\\nx y z braceleft\\nbar braceright asciitilde .notdef\\n\\nEuro .notdef quotesinglbase florin\\nquotedblbase ellipsis dagger daggerdbl\\ncircumflex perthousand Scaron guilsinglleft\\nOE .notdef Zcaron .notdef\\n.notdef quoteleft quoteright quotedblleft\\nquotedblright bullet endash emdash\\ntilde trademark scaron guilsinglright\\noe .notdef zcaron ydieresis\\n\\nspace exclamdown cent sterling\\ncurrency yen brokenbar section\\ndieresis copyright ordfeminine guillemotleft\\nlogicalnot hyphen registered macron\\ndegree plusminus twosuperior threesuperior\\nacute mu paragraph periodcentered\\ncedilla onesuperior ordmasculine guillemotright\\nonequarter onehalf threequarters questiondown\\n\\nAgrave Aacute Acircumflex Atilde\\nAdieresis Aring AE Ccedilla\\nEgrave Eacute Ecircumflex Edieresis\\nIgrave Iacute Icircumflex Idieresis\\nEth Ntilde Ograve Oacute\\nOcircumflex Otilde Odieresis multiply\\nOslash Ugrave Uacute Ucircumflex\\nUdieresis Yacute Thorn germandbls\\n\\nagrave aacute acircumflex atilde\\nadieresis aring ae ccedilla\\negrave eacute ecircumflex edieresis\\nigrave iacute icircumflex idieresis\\neth ntilde ograve oacute\\nocircumflex otilde odieresis divide\\noslash ugrave uacute ucircumflex\\nudieresis yacute thorn ydieresis\".split(/\\s+/);\n\nvar AFMFont = /*#__PURE__*/function () {\n AFMFont.open = function open(filename) {\n {\n throw new Error('AFMFont.open not available on browser build');\n }\n };\n\n function AFMFont(contents) {\n var _this = this;\n\n this.contents = contents;\n this.attributes = {};\n this.glyphWidths = {};\n this.boundingBoxes = {};\n this.kernPairs = {};\n this.parse();\n this.charWidths = range(0, 255, true).map(function (i) {\n return _this.glyphWidths[characters[i]];\n });\n this.bbox = Array.from(this.attributes['FontBBox'].split(/\\s+/)).map(function (e) {\n return +e;\n });\n this.ascender = +(this.attributes['Ascender'] || 0);\n this.descender = +(this.attributes['Descender'] || 0);\n this.xHeight = +(this.attributes['XHeight'] || 0);\n this.capHeight = +(this.attributes['CapHeight'] || 0);\n this.lineGap = this.bbox[3] - this.bbox[1] - (this.ascender - this.descender);\n }\n\n var _proto = AFMFont.prototype;\n\n _proto.parse = function parse() {\n var section = '';\n\n for (var _i = 0, _Array$from = Array.from(this.contents.split('\\n')); _i < _Array$from.length; _i++) {\n var line = _Array$from[_i];\n var match;\n var a;\n\n if (match = line.match(/^Start(\\w+)/)) {\n section = match[1];\n continue;\n } else if (match = line.match(/^End(\\w+)/)) {\n section = '';\n continue;\n }\n\n switch (section) {\n case 'FontMetrics':\n match = line.match(/(^\\w+)\\s+(.*)/);\n var key = match[1];\n var value = match[2];\n\n if (a = this.attributes[key]) {\n if (!Array.isArray(a)) {\n a = this.attributes[key] = [a];\n }\n\n a.push(value);\n } else {\n this.attributes[key] = value;\n }\n\n break;\n\n case 'CharMetrics':\n if (!/^CH?\\s/.test(line)) {\n continue;\n }\n\n var name = line.match(/\\bN\\s+(\\.?\\w+)\\s*;/)[1];\n this.glyphWidths[name] = +line.match(/\\bWX\\s+(\\d+)\\s*;/)[1];\n break;\n\n case 'KernPairs':\n match = line.match(/^KPX\\s+(\\.?\\w+)\\s+(\\.?\\w+)\\s+(-?\\d+)/);\n\n if (match) {\n this.kernPairs[match[1] + '\\0' + match[2]] = parseInt(match[3]);\n }\n\n break;\n }\n }\n };\n\n _proto.encodeText = function encodeText(text) {\n var res = [];\n\n for (var i = 0, end = text.length, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n var char = text.charCodeAt(i);\n char = WIN_ANSI_MAP[char] || char;\n res.push(char.toString(16));\n }\n\n return res;\n };\n\n _proto.glyphsForString = function glyphsForString(string) {\n var glyphs = [];\n\n for (var i = 0, end = string.length, asc = 0 <= end; asc ? i < end : i > end; asc ? i++ : i--) {\n var charCode = string.charCodeAt(i);\n glyphs.push(this.characterToGlyph(charCode));\n }\n\n return glyphs;\n };\n\n _proto.characterToGlyph = function characterToGlyph(character) {\n return characters[WIN_ANSI_MAP[character] || character] || '.notdef';\n };\n\n _proto.widthOfGlyph = function widthOfGlyph(glyph) {\n return this.glyphWidths[glyph] || 0;\n };\n\n _proto.getKernPair = function getKernPair(left, right) {\n return this.kernPairs[left + '\\0' + right] || 0;\n };\n\n _proto.advancesForGlyphs = function advancesForGlyphs(glyphs) {\n var advances = [];\n\n for (var index = 0; index < glyphs.length; index++) {\n var left = glyphs[index];\n var right = glyphs[index + 1];\n advances.push(this.widthOfGlyph(left) + this.getKernPair(left, right));\n }\n\n return advances;\n };\n\n return AFMFont;\n}();\n\nvar Courier = \"MoFwhgTiBiD2B2ICyBTEECWBjAzgAgBYA6ARgCgBhWAW2pUTyoAcBPTAcwAsQ8AKLAJR4SATgAcIgDTCRIgAzTRIkotkAmVSIDMmgOx4AggBNYAIxR5gLHCBTV8ASXhZYEJq7C2jRPIYA2fngAShhcIPhBKDgoEABuKN6UNHQMFBAonhgIeAAinigAXHgAKpwArnhIYCy+JMK6BWoNciIyIrpJtPQ8AKrwGACOZSgOOYRacgCscp0pPABqSGU4YOwWWu2TBHjTuroiZHCIAHJgdIywZZgxh2UBp+dUVxg30GcYfiwPFk/XEGQAdRQoW4lQSGDK1DIDnAfmwBng7D8FhmDhw0AwAA8EgAFDAgLCcPDoYaUTiQMBYWwQYBoPAAUUxtngRgSQRoYHghwQIAAQrzYJi8ABaNRaEVqaZ4XQkSZ4MRTPBkPqsiBw+AoHGwHD4rLwEUkOQzFUxdUoUrYADWGpw+GmZHmMR12SNWiIRpmx1gIGwP1grA4oP4QlEEk0CjaKjaGjaOja+mMZgsVhsdkczlc7gg+W8vgMAWCIPCwSiMXiiXpGaMGERwEJdgsifMoE5RkgRkrLmriMoYCYAAlgWEdgA2NRkAAag6LhDUI7IBhwWHoqrwY4OOSiy5ZMQNkw6oCM/YBO3Ih/mJ8mZ/AUAo5IgqHQ2HwWlllDwWjUeAA3HgARO1yNH88GOPAcCYSkLF/Xk8DkWD4Lg793y0cVf3/QDEJAvAUExLA/DOYCYLFEc9w/Edtn3L8kIoD9tjQgCRyA39QKGb0ElMQJoOEMR9E/MRCBIcVJjHH9kLleiMOA0D4EhcwIB1dh9S47QRU/HY5H0EcNlEmitBIiTGMw0CTACSBCOERVhRIOdCBEEiRxE6iP30AymKwpgYm3HguLEOorLlK9+LHKjkP41yjLwM4PPk1tzK00jJi0fitlQ5DWnCqS8FY6kZy4tRBI/NR+K0XQSOEkKaIITD0MMzKIPSeBkQAM28vAiJHVorLkfiCCqtc1AqgTgJqtzQPq+hA1amCSEYg1uo/V9+sGggqL/BjRsi1NMBwS1zJIGa8ElfQCDEbZGJc98CFQtbJOYvAmD8ZZzIVQgKLUOCCF0RDLrom7arulxaDAPbfINazaO2azlvEv6Ns4FgmE4eg9rkcUxTqAh2kOsRxMu/TYYi6KsiMcyBs62VnLqQ10sulyCcynB8JwIkuOsuVhRez65XXHTCDC+m7oALxiWAUZI/zbLOgbecx4b1oihAoLavA7Pg6ZuelpypQyu6QAAd1Frivvgz66mC3mrzl26sJATh0iVmDdHZimCAcpaLdWkaIqay4IHM3R+Lg6Y4PNrXrq9zKmoweJzJEL8JcxzSNIt36I7unUhVZ/bSMT92tZhtOsOieIlOVsQvw+sRxXOi38cL0Ch1BVm5Hjl3xDz999yt/6sP6DVY/Fl2JA7mjJn5+u8BcPxsjytRyblEq6iS3HR/SgWi7sbBYGn0vptBqzwcXj8cd52adaw5FbXMggMa/K9Wk+waRzqc+G6GMBOLLuDBOS97nP098jl16gXYOkfIfsuJuxWjsXqhBdBP3DvLTKQwog+hnsray89bJ33gafVOSC7qeH9voCWiVq6a0AQXAhWEDDmXFEHLG5VT512oaBGCXErpq0mK0JhTkRx0wnjRDhfkSDJT6mPb6NERzj1Ybka+9Cdi6Aoo5QBa8J70nMolLhQcVE0WNq/PA0BNEKK2AFXR0oX7ALwAAcToSI5KTsdgvScrggx/Y6EV1HMlcxuhEHW1Ag4Aeas5DKMGko7uG0ABSdDthWW8WVHxVD/F4AANJ0MDk4u+PiWHJIADLX30EHLYo4wkCNkUga+atVa8PfAHCJEVQJGwNEJFSNS9FqNkQAeXkQaZKXcJG82cVYnE/tWhFO8YNUGBiACKPSrJJR2P05x75y71MykEdJasxATMGX4nuoFgD+3jn/SYc8nGSPlPg5JxRNk6KEuYk+Bieh7RIaIpx9zJk5P2XgeY5lhSxIKoxUJgyynJJPFxYU4p5mAQ+YMmRySAJ5RMXsEpgyOnJIAJqk22EHUqqKnLyDWXdAAWs9EiQcSDAoJZYiephsxYEtGgZqU1DodTmj1aBod3xxyJVhUwlJLSMzAMzPabyOaVy/DzAleyNp0oFWgSae0x7soWmbChNERBXO+cKrAGBsAYAgFgSEsdthaGKdMey6qVZJO+WUHc8kXDpHMnBKykpJLCkcQSr5G1sooGZaTNQpqirH30G0lWoLtXGIStw16L9uXwu+aYPaAKAqOKldy9F3ysBxUHgFM5vU400UNNVWRJMOHOwCsofqNMi1yBpbIh2a5c0wI5YWiyntZFNVFTinYi0pV4HyRgPAUdgL5MCE1Ti75DQyoiuwa+FbQ1QJvrzQ0Wq4Ygy2ZKs5TlDQ2o2kO5Scog6KhHF3HdchvURQAFbPVbl3G+Icz1TuTgY3aHCTEvXTbWhNG1P4wREEe9SGsa0WUzRtagfzAOMTlAWldhpeXSVJuSxRMHl07uzgYw2ysRKkIWbB9DHbklMFjnuUNkxUNtv2jO5B87SM7CrfhqdlKEN4AgdhuCRSH5oaY3uiK+AfIuoplecUjGi0HQMSyniCUJijkoyQCNG0Kh5REWYr8K0AFiZ/RFWIKM5r0Y+jZdDYGIp6z+QCkOITZwaeEH/AxmdlZ/yDpzQzU78osZqE0/yoaeXqZXZrKxgtY5jPUmplzRaxQsblcuf1rNVldR6iVEeNm10RX5WxoijjRRSk/CRJ2Fy2aRfpTEXKGD4rxYEkFK11lL2ZR1Xqn0fhWRxXFKIUNfVPz5efixnCeEzgmD1rvQ6ek6N6W2FdTrhGs3dCCf8nhQFn50SnfFAxW11Rzp8rEtzpyzYYaWylyO9K0GDZ5cKfpLQm0r2EKe9zyM8rIf3FSpbNW7oTtcDWSpVlOGJVaFyot/CWPRCpHqUVUK6knWSssv7WnMpGogA1LAHnla+KcTsJo6lrMzWM8gsobEdSImRKTGNfFaJ1DDfJktyTfVGA4jFjBnDiem3xVOmULH2BlA+Miag3pacwUS8bYSInXYrtcVYtnHw8dIh58IWWxsCCW16hj5HBixd+Al34RVrMZcfXl0Lnd4SDEjq4iYrGX76i8cjn+j8VTNLbuZwpiKK5hUsyR3KdGqPXePOZ9Du6bZ2BrHS9LvyYOY0DL11jn3qx/fU8t5SoPPUQ+Q+4hT75RNYBGC8jEBIAavyiNaCVYqaOd2rIMfVVY2ZEaaJdXUq8pPzGiOo3dUwdxkQsvkznmTK1ipVxXadFjvq1f8uiKTAq8zTV4uLT383d0qccUH42ylULBJja7hPovz2sIz/VyV6a9Pg1y8XYNUR9vMoq8596DXys+d3Nehj7Z3WAgYCYDqfjl/XlmJa7totw8S8xFtpcFYLIdCpEtUv2Mg9alOwwNgeo/Wg2ho/EXmcCGMMmO6Kkyu2YMcrM8uWM+ea4riU6mqLGlIZQtg2KamWMrsP2eBRaAGLGuqhqkIE6OEe0gacCx0eKp6i21B6+oEDWTWzcMGw80w1cF6K6WMBi1AlIEA6C00JybqJ0Oil2oYhWKAGBGCWi0wGMn0gEIGSgLGJg4AWAXk2KPCiWZqkqfUTk70yeG01Ymez+yayUiWcu1cFh7470k2G0mAiIw+PU8USUW6F0NE70DeWEy41YpkAaKaS8Ik8GlhioBi5QiIkAkI+ExBe0KEtkbWIcVBh0IhmG7Aisb6Dm2cVkuCVUx0vM70x+AMkA0hyW2CcC9kbKcR3uWEdgbYIqXEcEbutURUl2A0U+NCGiRu2iTOQRheVirgRgTUm8fc8+wkh0ssvUd8ieYoHhEUuSQqnRysWhRSj2QRGRBinSWxzuMEnC4qiyNuIGYo+2d0nSwxSOas/2YaYogxoEUxEhS4dwNY8x+ggaXGQkqxaGViYA8+WC+4H03GQRcueh3OUQOoscgG6sVmlRJ0LGquTMpx1qwSwGqJ4eWE2omJcU8cL0iUyUeRbh2skxYJ0aXGbako4B3y/uEhLIHEL+Zx8BQmd+puVkLGDgth6Q9hyk92lmTsqUNEvJBiGQRqJBkCzaWwQUORkpIJdKKhjaWipCMajEIGypE8ZQiR7AyR1AqRLKbmpCn6SpjJG0KAWAtRg2bspCaJDkOpVpEUGKApUQGA7JixaseKYpvMuppa0cGAfBZcx0yUBUrsgRBoLGGKRBspDmPa+4JECol2gZySBgdBRq1AjB9mvO1u0oUmTk6Z2q8Z6pi+AUWplpLGPQWZDByIeZ9QvS7yhZ0ZJZG0LAZZ/sdG3Ckq1ZK2gMEhlIRhAmEoUowmsaAZrpmUNpBq2ZuZOaCUTpxSxZ05d0PQXh62GCryEO4opUFy7ZEUPQHpQp25zZY8e5Wiq5hBsABRGoRRMEGpbeTix0UJMZTyXZrMO5LZqZU5LGOOd5KAD5h0IiuC3CBm1mh5mU9IJ5XpUaRScE/p15BiOQWAUhRCRuHGii+x75Vig5YAw502rM7cWWcEKE7MyqyFeF/obA2+8EcSkkoe74UFd09IEhaFdRWiCFa47cVFE8hhdpi5pCZyzpf5BikANYW5j5FZiyP2hezFa5WExw+FhFDAnmkoDCsKfFsi+EMpjaNBx6cov52lySZeYAqh0ltJuBg0LFWExQKlhhRFl+8BGlo4WlClLGFAn5Ox9iMCcExlHl4lvB5ZVljEkFiloEMF3oqlLKXFiyiFV5gVViS4glo5pCgKzRSVE8S44IERaVsopOkZb5tloEGA3l/6SJJ6/ZVi08wsiI8+GSvUe5FJEpEVwQtpUhg2CyTm/ECoNlbV1iDlI5l+fkrl+4AUieJVeAZQdZOZDZw+CUIkHBYlIJs1C5XET5lZP2K5WVsiBg7FnVQBDCmkvFu1yShqqV7GXCP2mVrVtBYRHOwMcpe4pO+axVbVxK+hMVZKaszGSFZ13ypQrgg2+wasCyYaU1nSB1dR5xby5GJ1YUANG0QQ5Vx8WyvV8RSNEUwAqNuCooQcZyAVd1Bi6el1ZxFaFiuJJl3yPQ0NsB35F5PFiNxNVizw3hymi1ARK1E8ts9sOAZQqeAesorufUVUlq/VLGnSoC5ljasNfS+gRNuFE8Bg0tFlVux18omNLNytqpatxu+gviEt4hdwPoD0iOMEUmX2Ls+iWNmUZQqNZpQmS11VE89lZNaN1+fV3Nsi9UPoH81YTUXaX5qk8erQMoB5bVLAsF3pb+3mW6EdLGpwel3Z0K3C4oitU1+q9Bc1TBykSZJ6O12tsi9Ia181G1JiUoAcbZbVYA0dUampclCdUpddz1jplWTdeFqNDpQmIlLtsi8ADt92aafdySkIkhdRjtqmo4aZbVyl7tryLS6dLc3tySDgqNqsx62wGdbVD0yw1ANYT0Pkr5p4QklFttjeUhjK8AaWpMmW8mC8Nk/CM9LG6Q7AXp1IWeXRzZtUTFRdyS1iutjai0DF410oak1NG0/J0VjlalysG96k2w/1f93y/NQMR2SqemY8coX04VLG9IqtIV3F29L9XdWF5GlBRtkxdNxJ0m3iz9BixKqNYg92zGxDDDHVdRzDv1W9y9EDs6YCH978lu7cx6X44dK93y9ItsdCZD4SENbVFAD1eVPlL1fl5yEjv6Q1TlFVY5hl1aGjEUBI7tUmuGiF8mBjM5t5hRQlz5Cpk5fDmUPQVj95LyBoYF3e8jLGBgqN+tmt9DVixgLwgpcFIxGtSDStDaBDNjAUTpI93ygs69wW0wfZlDE8WQgFwFNBpRd8Bd1dktqNctlxfjFjd0sAXdd6vaipqTsiZw49g2m1sl09JTRcTDgmAUgKcT+6LdcDlVGsHdE8nSpdudOxi+8trZzToEPQUTwdID3ebDVim4fg4AcUVSQUd+DjusnAwNfyuaZGVN59NsBs/NgtLyfxSxLBoBkN3TZxozRT4TU11ASmxRPZIkvmGzWEoQ6B+lvT1lEzeAsABpRpJpND5p2R1TyS9IzjQF9dtjXWnjJNHFGFOxFN3CaqLpLGvNKAKA78UAToz0IoCxadTauDBidYuV+ERyqjpyPCk1bVfgHDx2SJGRPJbVKSWjsDvOLl45qy8LViuSBThSiyPD/jPN2YrIEhEAwFooaM8UY47lyD1pX1MDLK3dMT7dfzDg0zcDIpwrGr1DwpwSZ0p1CrGxDLBSXCOFU1is5IfgQdysLqXcz8Zs127zoEl80QQjscGSyTFi/TsisAQzjZOGQmCyy1rreAiAHwoZ7Uvp3MLVETySPQgLEAKRYAaRMzcNhK8z6iqNcV5G/lWtCb3ydgdT0TLaTT4b7AgDtGCBwk9k524bisOL1IzqBLScIcLrBzByZrRsxyBNrQXt4bdYyQBFyrlLpFqONLfrySnSybqb6bIz55L02bpaKAoCWLzBMrD8KKlzbVt5XzILIbVTfzij7ty6IDfUg7Xb01WrREKmqK/C4L3yYr2AH8QBpCWM+wT7G0qFZ7yKPD37EUhqI731kCLqY1MaomRbG0xwwVKdBURL8C6LmGcHkCFTZJgEJLViQQ7LLKCyE7Y8Oy4buSuH5rBH5q5iU1BgqHl+BZSHfzBgULwFi+uCjERH17Bgm5R19GBt2s17nSNHNz55Xc9H4bgsSrw1/6STy9Y407kjPbysebUoV7JrmUDgTHM2tjlmvLE8lopH76uj6jLLLG+9Mk3pL0axqO3R3e4bDggbQSm94z4bzg7tNkuK3Mt10Hhj+nYZhniUOibaU108b9tpfg8A3oz0+gcBJ9ZEyHkx1z/UtD/UcnimCXk9D7tm174XtgnrmBBoZU4ituqnd07APn5NLzuW804baAWJwbAUobRXXnmUgsCnUnwSkqnnU1GYQMoHDm4sY1jiUHVrNoAtxWrgLyX4/xs4lWgHmUGA+rPTOJFb179IVwWGMEWFWFSElYRgd4kAj4mAuAZAO3RwyACqz4ZAQAA===\";\n\nvar CourierBold = \"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\";\n\nvar CourierOblique = \"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=\";\n\nvar Helvetica = \"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\";\n\nvar HelveticaBold = \"MoFwhgTiBiD2B2ICyBTEECWBjAzgAgBYA6ARgCgBhWAW2pUTyoAcBPTAcwAsQ8AKLAJR4SATgAcAVgA0w8QHYZosSMUiRABlUi5eAIIATWACMUeYCxwgU1fAEl4WWBCZOwV/UTx6ANt7wAlDC4QfH8UHBQIADcUD0oaOgYKCBQ3DAQ8ABE3FAAuPAAVTgBXPCQwFi8SYQAmXIIAZlyJGtlteNp6HgBVeAwAR2KUW0zCBvUWjsSeADUkYpwwdlMGuRIANhFCMVECMjhEADkwOjwACRRvGJBsMABaACFYb3194t9j04urtFu8J5e+xOGG8LE+pm+11uZAA6iggtx/s9XrZwN5sLp4OxvKZ1GRbDhoBgAB6xAAKGBAWE4eAAZmBvBFKJxIGAsFYIMA0HgAKLEqzwfSxfw0MDwfYIEAPJ7EvB3EhydRymo1MTCdTqBp4ETrVpkXpCiDo+AoMmwHCU9LwOUkDX6wWRY0oIrYADWJpw+AkeJmkQtGQ1NSIGrxh1gNywpmYbARPH4QiU0lkYgUyZUbU0bR0BmMpnMlmsdgcThcEByHi8ul8AVjoXCkRiHkhvywYDwGHwbfQYCF1EgrrwsFpeAAMhh4OGWEwUHdvn5dABxPBi/QAeic7ZCeBwxSMFv0GEgGHCRDIPOLB6xwGp1lMOZMoBXkH058cl/YlDATAusbwazEZAABo/sEeASA0NRkLoOCRg6EB/iQAGZOEsGGsq6hyGQoD6GcMLCIhWEgPoMx4SQBB4o+UAUCyECoOg2D4A0JASJQeAQXgADceAwoBeA1HIapcYc25MGyphcQ8eBKtJUmcaxDRalxPFsQpnF4MJKDElg3gnGpkkaLJNQEAQCGCfJJlKbxBByBZ6l4IM4axEYfgSdqarGToqzrKZckUGxEhqcpEgSN5Ql4PAxTUCYEAWuw1quYhsngWqmxmX5DShdxvHBZlwmGL4kB6WxSrysxYE1FqchyAFHHyToll4GIyhqcJ04QLBPCuaqNpbGI6zVGsSq1elglZX+Kotcu1BtYsgpFRIJnylsioDYlw1sVsDX8aNwkORyv6uZshAEAFNTqMta2seRgW8Qpil2aJKTwDitKdf8/noWqTEmXIDQWVd1QNXdk2PfQHCIglWx3Gdao1OIf5/b5hCtEDzVhWABaYDgA5dZ5KZsbqPnrY0N1gWItmtd4CxFddSoLSZ3qhVdtnKdtk2OLQbaHYtGyw2RwgEEzfknaTwNhZwU6cPQRX8XxZXjN5f01VdmWswJIOROk+hFesJlKjU/NkULhD1WNbNhTgOk4DSrl3KpS1sSQA2rEjBCjUFIWTQAXpEsBFexDstD9tqu5tY05ZNCDie9R1KqsaqDUj3qkxHYUgAA7n7XXeXTTsIUNrESID4ee2nnApNHkmy4HGz50nKMl7ldKwMU8G40lNTeYn63gSnpd2bSGAxDLOg195qVJyz2X98JFqyq5TE9eVSrd4XNWN5NEQxPF701AFdPdRPPeq9PTfwqBC+tIHRl1z3pse03fQmv7JWiOVrSr35Eju7dqlhY43gMiuREK0fWBBWhFxRoXMOykxZ2QiNQbAzwgHvRATadYsNwFgRIFAvy6whrh3JpNHEnp/ZqjuGqBa3ki7/TwcXIKRCwooEGAyGmSp8b00IG/dahMGrfwpngdgKQcht3eg0chlDBbYNoXgdY91lL9WLrtIYlgrQ6xkhHOQsseFT21NVSabgipO3IW/SQXcXY8PXspLRDdhK6BljJRUH9Lp4JPuNWx71XJyBzrIo6/4kbrHvrxGxk0/KuWMkvDBP0LGsQwaTEJYVRheJ8RggK/ieEwN4usQJk0eRFW8bJXUq00p/gIQovOYVoD5J8d/HQ6TWJrHierMKS5wk8wupVGJfktHxImmFM4+TqhKnWEXImDT5G8XNnZWwOs9Zy2DiUmyfcm4ACkZZX0Sm7BZSN9ENQSXZAA0kVfGK8Jr1O6W4xRk0RzVKSmISqLi/xBMan/OySAdZbBXiMsZ3Sf7uMmsJQ6nzZELR+X+TJTydp4AAPI03aQjaJ9VWJiDKVknJYUyS3OGbLc5jV6HBOaXZAAinCuULQEZ1K6Y1Bu1i+l2X8Fi2RVUwX3NJtk02wlgD+yhm/XUy0qWMLGlcsKBQjFzIkPDXFkhekeO6PkjZWwRnFKRn1Nl6K7IzCMcC3WCdHn4waiICJYU8IJR8SAi6JSmpqo5XgXiCU5kjIeZaiF7LJoAE0jH7xBU6pGBkGrCrsgALRll67+XdHkiHxSpe6wkjBliwK6NAL03qSTkT1RW51/nrTQVtQlsa2SukthjG2707ZagdkxZ2SK/IiAmdGyacaC1oHBimvi7TvL8VObg7Uuj+EGJghgbAGB2qRR1q0CCWoWitCPqxEQVjT6TWKHBGCThK6yXlHvMCns7i7NnW4qZyjHLJo+YQUFZ1lraNnc81Odkua7x5QzWWVDfV/IDbGnW1R5QM3VritQyz2b+x5o+hmUj1q2lRbIipdltYLyA1u5VYH1BRpvRpGW5b+YtEkcbW0NLf4xrpEYmSTEE7aNHO2OkGA1I3L8LSFyrFbR1rfYIthyoFRbsnaB+j6hdFMZLam0NUjcW2nnXxPN5GgWGUzVo5WflbT7rEwAK39qxky57xoyfVNemeeAcYx2BSFZxJTbR/IPXgFyenJMWqRraCFTUw7CWoLM2SYhO5gU47JkO/qoPCR3vxpKUjn1gag+UpRg5AM2m/Vh6zOC2XebwEwMd6EdASHVoF+jJBGNxf6OF6GGEt0QPc/hXR4j7N4FEamuZqwOPYbKnw7T+AF6vwZm/NLHm3FwOEq2kOdwM2KoKUF55THSiHW8l+tzAVwLduMf+sKUQjFajpiTSb0WIVVShenQjslvFbGW2Bs6M27Lz3emVRb1Rdv0YNgd4SlQEolQNgzBoO32J7dw2BDU3sHGyTdnTZ7F260lYbfGy4KBXo0xMTqAmaS+kXd0aqAh+byuNUWiqAKogu67tk5u1GpXG2RhbTLdtbECADWh5jtxfb0YDstC8Nd/VhBppaFqP6il6N06Bq8jSWkdLUEMOnXz2pX6qqMg9qbvCN7/y6Dl6bQdZHdTA2murTdMbGnYDLEx1Didgo2LojYNraTxpuCgyS8pFRLwUuGgusnvmK8miwaWtt9PfJnVb8n2naNOHHEVeUd2Q5F3MdW+nWmlcoHZGo2DNoiFTvGgH3mV28BYFbk9LAN3S2VWoRK2RGVrNHS2uIyae1wjjmxGu03Hl6e6qM6bvh72woF/0M5Y93NT0mUaF3S9snGk27CuwYoIIcTUHDI396VqCmC3cow+jPT2f4Z7yCC0WJfAg9baygpe8lRbOs79UWHPBG98ZEX7w+PXIr47cnDfYGlledC4PTbi2P7t+ELsoVcXaO37c/fmPzKu92XoPoYtRV9Yn1PYxZJ8/kUM8A/92BlhEcs8Tczt9shM5AIVwDIDoD69zNJJYCFR4CV5HlEIINTM2otYOpIhYh5o1QFRWgVQ45EYwMXM49HolgywmA+M5RwcztHtSlLdhBWUgZk4wojB3gcQuslRdgicD4ZFEJYcxMC959sQjAMZacH0O1M0cEY9pVq94d7JihHJ0CFCIgnMv1vJW9ah1Dyca87I69nIj8Y4W8RYTChN9Vxc7JZ9F8B96IL5h8E5jC4lz96MrUGpwMtDLh0QmALQGtUFQEBcKDCtEIIUgiNYoBOAW5ZoYNU8l5wMHluDRAo0mNBhwhDdBRYA+d5oAoloJtRlztZNa1t8Z8yxh5bYKpZFuM+JN1qpsjDVaiDEE8rBCMUoWiGhPZ2jrM50uj/5h0E9qBaNNIvcQ58ETJmc/x+D6MIdp9JobgadZidB+o45k5foY9tAxi7I+wsAIAjc5Rx4BjODAkjN4Y1iBCUgGjS1p0ri0lljqiIUOsIDww2QOpCMTJ+pVNxhxpNpWIzoIMviDxSDwidZIMFicU4YkYzpXsvjMAsR5ods4l+I0l+swTNQjjhJIwDwCpYToZuojIvV1ozoRMviSgsRIBIodJihW1FUWi3Yu53i+J1B2sd9YB2Ao5dNJJGkySvoWjuCzpnkvjWwzj+dvdmiFiSZhiqT1A/kEimEed/9XJACdAEiQC/IUdSY1S7JdA8lXIvU51tkqTSNYEq87InB9BaRrBxxxw10JpyJqg/pKUA8KpXsmMRwi1rYvd9s6YV9HkKo601tJpoUAzWD7YcUIkbINMKodcQwozTSxFR434dQq0kTBjRZrc7SIB9A+wYJ3gXTYT3SCYV4qUjIo07MDFXSH1Gpv43NjYKTSZTNDAQASELQT19ZM0qi20TMxNGQrZWD5Q1R9YIdcUjIXU4tzQxz1llQdtmoQpxT+CxpDUBFYA11EYxtI0Cs2zRkr9JpoC+xBRnIIjU0myUt+VAZWJ5QOyxNbAoSUgYTGihliolRI0NNHzv8NI2RmTXT0NH0E5OS/znDhIwA40UAniq4bycVwLci4tig6T2AGTqAmTW1skItZc3juCIKH5JoQ9IBzimixtMMliCLcj1VhI3VXzC8rzhAvVHVtRasHzkNBU8oh4MAhQWM7gsFOEFoSlCK0UbU3VALeiEoWLe5a1jZRKs1jSsAJjIppijsq5HF1BWg5KkYFLwCwBJLGzcKWg6kkKZVJpuhlKR0picR1LxpIlRkdL1o9LtMWBDLNtoYMNOClSOK48V1OZfjJdGtlRuoi4dtCsXKz4rLJi1K0NjLuofK/IFL9lhJug0TVcvEFUQVqgdRu1kq6VUqGL3z3oekHYlU2LfzkNtMwA+SBSZYoYVQQMJsIqo0Uq8Buh3LMqHKcqs9nLkLQsdD+STRBTfEQrJEJtfskqaKbUeQiqOxGUikKrdLWqCqshTjYBDFbYWLpVcUFK192YEgDKsA/im8RS2gyVqL4kLE7JHBWAbDjc84HYbJ+UA8FLXUwoeQTiZSFrLs+oZFIr2ZpTzi9yMMb5EqbQ48jx0SuoEK6lcSprzKwpDgOY+xAqGAJMzqRlLTfLc0oUdIeilDZIIItgnKcbILlwhEwA4K+JYaqLlrYtQsCgUajqTrjtkdQrJVHl8qPEKBOr3oIkyqiFSaEb/zlwNi+KYb4qvT6b/VaLeQuy0bW0ClsUcr2KRbyaYJSL+dgSKK35waAaLYiS+871MC7tQqWsWqnyoVDwCa+y2JET9ao0CBOiwpAEfYsQ10Q518iFEyZaxo2r/Agb+dlamUdBhaIa9kxMFxmbFbSUzq1hOlXr+rF1orVLbKdZRsMMRZHbIbU6bKZjJaKLELLq9lVrdAvqyLNLWg/q/bYE0Y7J2otajFJy2It8c7RbjrYhjacsVRKEb5WsI7n9QtA0FbO70bd5Q1VUfza6xLJoignBg6UkcUubWqxNoUK7+cBa9bEYa6+rEb6U+ahSUlmVw63q5bgBD6NpIlETT7WqSYwp9Ag6pcfo9iV797UqN75VurGpdYZ7IMBr0qM7jLs74bB7YEd8QBy4UBwhigiCNxj9RMPTXNP4wGCUoVoVKbqat7+UTJb7369BMHXSq7tReqybaUPFdAYLqbgzSltLSH1aGEBFqB3gbgmBQQWMzsRZvRKqGbF1L6cKKLs6zKTyRUn77Ukp4Y8GGpnaBFHobgGQDxaRhwEpP1LsZG6a97RaWA5qmLut7swJvLETNH/bVrjhbaJNhlQUpGzYxMh1rLYrbYXY45a526hU5aeQ86HGSql6er5Kqqm4exjw3z5rC7Qa6kjGyGF0mEdG4qi6SNQSGGombrL6QbgMNHIn/7Jp4B+GBMOSS6h7F1P6RtgGAobi/62rkam6LGQVcH6HUHRMoVbB+HKsb66m9KuL4sqYcBEEIomLaY3MGZuS/64dAdYBE14AFDEciF5Rk40cuDynrrhIUh2AOwOQyDbZHq9a3YKVymo6qG11sGEItRrG1ZGnR7WaKtDJ+Zp7jGFELDZ5Io+xCixUbQQy0khnbnZ6PrCGfrfG/6Acwp40gKnM44fbhGCmwpRR1rta4MUsUpmkMmmNA1L7N0QzvITmsk4tA0xGJ67l0W2nkNnbTzhE1mWEMC+IakmjFR/qVqPEeRIGvdtq0k37S6eajaSS2kxrZEfaqU9qRyY6x7sKGrySMswUFKAW7IqQqnjsSpjDfqEXEmt0z5arhrYne7yootPnFLUqVWUARrSr1XyrdraXJpdAUXiGMXtW9AYmuoLW1b6nwCUAfmuoQKNX0nFXvQtCvZzWvsUV3X6nTN0ghq9WjFRtGq20L0eHI70HL7Dnfpam/HeHIWUnYWf1wWiL0Yin70pamURL/HN4UmmtsFlp03JlbGbXnjPzxhTkEn6nIywpoVPH07OWnrEZLW2ruhnWSqsryrLX+oPFkJvBwBYThkVTuW82k3JXkiIB+dCZctKEf0WWxoviM5zRYHNZ4HUE+JWUIJg58nrE16K3JI42237W3q4tmGgHctksuHJqA3bGu3jdk5+yS393MXQtYA0KMKsLn68L/Wz6ZrdX9Ww2b45ErMtWmNH6zjNqxE4MRlcCJ2Gp7kBFIGK4WEoA/RQ2l4kCLo33fEbVrwu6OWxFhWUoHbeWnb7mzMcXryvsx3jX8GDkBWLnGpR51WQkGORG7IRxL6Q7v5jmCXDTUy04yxex+xSUFZtQhil2M2f9zmgrd5XXKKtFa2+XGnH2LqrmE3hnnys3jdVJnHq7f6IO4sRwaO/walQzEOxpkPI4TQWRvBlHd5M7lpOiUG9KiXXbwgIgyX6qO4u4WiTOP2m2C7YPjK028OmNEAQQJaY5cmdmtWO2v2IBGSwBmSv7Ba/mIP3HeOfGSHE3RbrA2RvqXX4r4XrOQtTz9n+KDZkte5XHlJbPIWTR0OOQZYXOLOLc/73q7JrxpXMCeVFVWmCu3GCPmOFOBuuW+UEuMn627JoVkvUv0uW3t7tOtXyItChQhFoH5odBwFFZFSYsgvI4NPUmwIIvynVqKBzPDmol8vuuUKNOBGs78K/6FpStRPbhyXusAsYtJA8O2rMhzOQ7Ul7utWJWlnxvx7LmzqqtWzLuPFDhxbCbLHcGmjjvIXkff24WZvFWA6oelaQP4W6kZP33rkCfbkzr+OxWTWwpdAsfbWtstLtR0fZuy6gPPsySfosFOOTGKHAHGeV5mfcrdn0GGf+b4V42WeWcPWqOvZ5PoeuTfWa3uv3Hge8vLXTNbAOeNnVHySzlSelXJpXQKeMb1WDMaeU4OmenqZwlRDDjOFxhVOo0teQu7K7YdBnH8WRvKuwoHB+uQV/M8n/mIHTeZWuWnemUffsoOnAEVnWxvAJxW1rpjMBmuFnfJ3hJYAj2idwv4mHuBqc/numqQS3vPO7Ik/mFihWFpK5QiWFo6Yq9EW4t2Aw/j2fc6utR/uC/iKGXw8KKf0KOU45fzOaHvt/3k6/e2/A+qeAtLb7i7SPR13MBN2q4O1WUKoSe8PA29O2DDJpUymtXwCeRW4s53oZIZJapzx9BqJIA6JMBcBCJIAQADlIh4BshwAn+oBX+Z2yQwBh18ARkHYGQAORkheI9iJKuRBAFgC9AjAdygJTxCgDwBjAJ+ggOgHIDruRHHSHX0QEwD7ES4O4N6HQGwCFw1XQgbgOQHR1DqsdcgcQPsSwo0BSA2AdCngFQCmB9At3jgLoEwoYmjAvATCh+Z8DkBC3JdOhRS6YU0uPAIQcwM/rSD6BMZLgewJhRY85BeAElKoNFR3ANA3Apmk3S0EUDYBTNagYKzlDaClBcqWgeYPgFEDzBnAywfwO6C8CbBDgwQc4OQHdBFuEg9LvYPcGyC3BsA7oBzx8EBDAGwQ+xJqgoQGD7EeEHrFELwAepSocQiSrbUSHcD6KQTRijaFtDcDSgdsOIdXxSHjAchdgooUoOKC8DSh/A4oIIMqHIDUKog79pILlC1DYBkUYrhkDyE5CghLQ+xK3CLzNC4hc2VQRtk6FKDKgow/gW5UKFxDtGGQmEhMPAHuVIBUQpYawJWG21ruegtgXgKWHstsBcg9ygQP8FmtbapAx4qYDCGHCKelw22gwO2GLDbhawuge5UbYqV86soA4bcN4H3C9ALwwQT8JOHAsRB9JcQT+0+FAjZBAIl4QoPBG9FoUKgqEbbXUGIjgWmgswTsNtq6Dvq+g54ZiOuHoiHhwLCwccPcodUUhJI22pZTeGxUbhRIpwesKJGuCGRvRDwQ0NBFNDaRLIvwcyNMCBDg2A4TkbyNCEUjgWEQlFLiOBYxD8EEo3ogkKdg8j4h8A+UTKNMDpDoS81VIewPcq5Ceh2o+AbqNtrFAShCo8oXMI1EGjgW1Q+ohcItG9F6hIIpblINtGmA2h0LAYSqLwCDU6qCw34YaNCHOi8AQwlEb0RGEBjxhYY/UQqNmHqj8APoyhucMYCKC8B1XXmikIBEpjUB6YhMZgOJL7CsxsFUwEcKiHVczhBYi6nQJLHXDjh1XO4cWITEsC0xdYssa8Psbp05BNY74U2OHgYNrRSY8ATWM8Fgj8x3YyEV2NMDRlFy7Y+sQiLHFqC+xegarmiNnFYiOhBIhcQmKMEBUTBOI9gdV2JGziyRwLMIXuLsHViExjgs0bGLPFljO2vY48eeMHEcjrxw8boNyIrHnighz4oUf0PvFlixRs4qUbOLlHZDdxCY5IUeOVGgSyxao4JrGMgnJiExOo2cQUKPE9DquRo6kW2LQmISKhyEmochMfHeDsJZY10diOInDwvRqrOMehP9Gzigxs40MbOPDFMTIx74ssdGNgnuj2BnA5YXQJ4lPDuJmEmYpsOxEAieJewtsHIM4FFi+JQk2UKWOHhhDpJVYqIZwNrGyTWxMxBsUeLElySYUdg3SZpNlDQpOxGkmKunR7FU0Lhhk8yVpMIlSCbJadLSaOLMlOTjJMIxye8OUExdrJqkvSciL8lGTCgpgwKbZNlArjrQO4vAZwM3Go1txa43QJwP3GuSvJh43okpL0lUigpGUoKReJjHljBJuUpkSlNiqsiHRXgqQccKSlvjCpYU9qp+NCluT2qwoxqV5P/ElT06gEjqTMWAmtTYq4E9KfBPAGcCYJmQzUdFL0lITupsoFCelJ6GcCMJ2U+aZNNwnTTPR+EtafaLEGOiuJE0oKaRI6HLT9p3QvqenT6Hok4xnA+iWtMYlrTmJd01ibVKakcSxpPQmJrxPYHvSBJeA96ZmKiG/SsBkkgETExkmfTLxeABSRcOOEgyVJdAmJupLBn5TtJ6U4GeDJbF1S5B8M0yYjM4mWTFJqMpGfZPnEGA0ZLknGZkInH/5MZaMmcXDPBkBS6Z+UpcYzM4kRSQpLMzIbFJZqS4op4AmJslPJkwk0pUM/6eDKykYzoZYs+kRzKFnFTBZ81MqdtIqkFSfpYsmqarPyl8jvRkszWS1JlnzV2p8s/AF1KNnxCshos/KQNIuFDTrW4M0afMJtkkz8pU002bNJtEWzOJi0jGW9PBmmj8pcYmJlaKsm7S+ZvsomQHN9myCfZzsk6frPwDnTVcEc/KddNNm3TTZ909OY9I1mcSXp8wnoT8w+l4CC5308AQXL+l0Cy5gM4mT81BlFzexkMlWaXPrmwz2BPzBGXXODnIzfJFc3sejKalyC252Mjud2P+FRC254cgEW3LJnDzxxHkseb3NpmtzexDMpecHOZmrzh4bM3mQQ17FcyaBCUn5gLJnntVrB884OeLP7nHDD50sjebyLlnHzFZjQ7wVfN7Gvj2hkUl+efIak9zz5es2+XgENnHyTZx83qT/OHhWzzZYC1UbwMdk/MXZx8t2SHJ3nByvZ/c/Ob2L9mcS4xcCjaf/K2lPynRZ8iiVHKIUujY5eC2iVAsDHVzexac4+RnPoVZym5wc3OeaKiGf1C54AjhSXL0AcLy57AvhVXLkGf1a5XC9+RDLIHHCRFLcvAZ/XbliK3RXc4mXIoMnsLxFJk8GcIvUWjy6BciieWosUXTyFF31SmYGS0WKLF5si8RSvKsVuj15ti76lvISmf0958Ugxd9SPnGKMgwsxubwvEUXyvJYQz+nlKwVSL/F98rxdaEfnsjn57i7xerMiX1T+Rvi8uv4r/kOKMggCxJcAsSWgKBF4iiBeNNyUwKQJGS60PAsSWIK4xn9VBYEp6E1LVp+St0UHMUn1LxF+CmJYQt0XtKSF3S5peQrKWejKFTS76inMGV0LElDCyZUwr8VujWFsYnoRz04V6AllPC3QEsv4V4CNlQigERz1EUrLklDcsIXspkXgCOe8ig5XVSUVyDzlqiugecqHlnLkleM7uewPOX6L7lzyoxZctVamKaQNy55ZYqeV1UbFwK1VvYrBUhsnFUQjnq4r+Lbz1lySzxT8pDY+LjlSK08TCqRU3ytlSKiJSioHDRKdp6Kuqm/LdEkrVWWsqiccI55pUfxNK5JVkoJXcQLiWKuqnktxXsqlRpSyFQOHtkajHZHPCpcyqqWLLkltSmkWKrqqYLXpbK1Vi0vdmfLpV4cqVfKt6VvLxVAy3lUMp/GqqQ2Yy7VRMuZVTLjVMyxFXVXmVILdAgDZZdav6GpidJUQm1ZsvAHOqdlTq/ofsrtXokjlxwwBlQK3Hwq/V/Qi5d6tVzXKARgDPuYEsjUhrHlegKNTovYFRqPlyakNd8rDUwo55dAqNUCoTX9DQV+a9EhCqLWq5oVOa/oXCp5kJTAGyKzNWiuDXokAlNIxtarhCVjTW17VfFfWvDmdqyV2Ivtd/LTVNr0lrq/oUyszU5LS1ZsopdOsKWOzAG/KuCTyunXCrM1oqj1eiQlVYTN1quGVXnN3XrS7xPQwBh0uJUnr+hB0yKReq3VarV1wyvAYAwNXTqjVmak1W+rNWANLVcYrHrat/VrLf1LqvQIBvdV0CseXq8DZIqiHgbTlwGnyTCmJlY8I10G+DdGppEAikN8a+nqhqTV4CkNqavDahozVIbs17ApDXmuw2bFC1lGviiWpo2mBy1ZG+DVWoYAIqseda9jafLA3wbm1bY44expxXgD2N3a9jb2pQ2bF+1HQ/jTxqHWEaJNo6uDZsQnVY8p19GmdY7Kx7zqV1ampdZAqY2bE11WPDddxoM3GiTNfFfdWwvM0ujcFcmizSqvE0Wb1Vdmshckp/XwaE5VqrHs+rU2vqse76/zWav82NKYBkkexD6LC0zKwtZAloWFrM1MCwtIW3iGFts3JbZlZEgwWFrvVhaH1aWtTRFvaqvNiBkkNFSupK12Cyt7VGBZlq7V3jKtRK5Wd7mK3tVZB9WoIfVtCErrRg4Wn4d1p4XdayBvWvQHcqYHdb413W3DbxG63fLutQQobZmukHda81owCIUNpiFDaEhioYgaMEKVbbRt8Q3gXtpgGjBmaSC0YHA21g+igeTdHrQYOu3fVARKMu7U/XjFljFtL2kbcdpe3jaXtk2tajdpm0va5tz2m7aEN60vbltT9VbSDu+rraYdGQTbfDutC7akdB2zRUdqm1P1TtV2p+hdrO3rVDEt27bQTp4CPbXlX26DqTsG3PbKdw2vSe9tp1OysF4OxnX9qB6M7AdjO4HcTsZ1g6adG1UnZDtp3Q6edAullQzrF2I7RdhiFHdLp4C6ad0/OwxNjpaHs6xdeOn0VUnC3iimBWu+ATrpgFa6yBBu3iFrrsEm68AWu3gRbq12CCbd6WjofbvNVUSndoQp3SoPt2SSzoxAqpEdSPHe7ddy4MgQHsN3Lg7BIe03cuF4ER7LdFNO8THt92yCE9y4IIcnqhqJy09Kg5PdjvAw+74sG7S7bnqYFrJwtMekvfALL3ri3tlexKfTpr3R6DBJewQTXqT2N7mVuWYgSXtCE16s9be7HZXo12V7chQ+ivW3u3UzEO9xez0Q3s71Hrg5k+mAWsjPWNah9re2fZRJDYL7eIS+7vQYKOQMCWh++mZfvvi0wD99SWvAPvtS2X6YUDm4gfvuc28R99MIw/d5M2I+ijk1sliEwM/1Kjv9Z+vACRWxHMR79gBirf/qf2AGYFEBm/bEB+LbiQDP+wA4IMQMAGiu5K1A5AZQDtaYDRyP2HbFwODh9RhB2ACUJIMVCSDNQkgyqpINRySDL+kgyoMGKgHhVRyYzUgfH0fDX9lmhZXvrn2tK+Dy+sEdwcf036N9Ao7g7lpv3jCfhRyKYY6tAPfrZDFPA/XvpUPH6VDp+p/SoYv1MdjBfxF5Ugr0OBrJcwIpWcIbUP6HTDoh4w3FIMMv7LDJhhgPCPg0f6KeX++/e4b/2eGrDDAIAx0MwOX73D4Bnw04Z4Bd1/ZgR2w9zL8MK8pBUR9wygdwPuHWtyR3w+EZwOhG7DkufA8wZ/0U8NqhQtI2EcHBkGsjMRngNn00V5Gz9BRqg+Udjqfs2R564o9kYYBQsyJrRio4OAYMNGTB4YVwzUe0PpHPRRhinuwdqMjHODYxqY7ofGPX7ojsdIQxyMP3jGbD4xu9YsZMGea3DIxmQ44baM8B5DT2vo38SUMGCbkJay46gLXHXGRj28m5BEJtk3IYhFum5HKJj3vGlRnxtHZEZ+NWFD8v4L9Bce0KOR8cwJ4gTchNVQmZlUJi/Tx0xHsymBCJ1ETcYuPuUWNUg24+5SeMrqUTvRV4+idtofGiTwLedZ8fcoK6cEpJ3ogCfBNkQaTpgAvPSZ+H4nTA0J9ysccVXInOT8Jinlcf5NonITgp+47cYp64mLjFPQk8KZGMkmZTJR8k5KdlMwLPjFPOk0CYZPynDjoJ/aKBAhPImKe0Jw07CcNPwmFBVx800KeROWnRTFxhQRKchMKDpT1pxcnKZdP/5FTjp10yqbtOLl1TepzU+6cDLMmNTrJhQdCfDOwnwzF+2FOFv8GxmuNTA2M1BuIGxnMVqZ22f7PjPILFJ2Z1JeSrzOybeIsZhTbGZUHZnNBPw2FFvKrOFBrhtZiIdmZiHZneIwQ2FFLqTOKiUhGOhDQrp7OwpsdtZjXVWfcpxmDBSisnb4onMpmkzo59M7OdtpM6O1450c/ionMJKYUo5os5ucXOlnRz5Zlc4iekFKKazh51E/cZHO21GzZ5gk1Ofcqtn4zlJuUP2cpPwCXzxJw7TedMCDmvz+elfpdqrOcCxzqZoC4mZgFob06r23M+OaAvznwLQFwTfpL0m6A1zQFjcxBZmLO7N98ZoC6WaAsHmQLekyszBaItAaML4U+syRaCnXnCLQU5s1RbqkPmGLTUjs/Bb0my6kzI0z87Rbqk/meLTU4c+OZibAWkzwlsC8WeEsznwLwluCxJfBlLn5h8Z4S2ueEvoXhL25jRflIW1KX5LBF0S+DOIupmYmp5oywZcoumX8pNF/S/lPosWXOJTFuy5kNYtyXLZb5oS3bO4vWXOJfFry5kMEupmfmIl8C4FfEsCDexUFkWQFfCuyWwrwchSxqPjOBW1zgV9C4FY0uBXSzgVvS8Fd3nzjDDJlpMz80xN5WfmVlnK8HNsuFXexDlqq8HOcuxXwFblqK3Vc8vlXh4Pltq6YH8tJmiZQV4s71dCtmGCFVe6C6md6sxWhrnSzM6EvHO9W1zvV9C71Y0u9XSzvV7K/1eaPKzDLPVzaz+wKvgWiZxV480TLKsbXypP7Sqwdd2tNCarV18600PquTWdpHFu6+YYeutWzrb19Lh1c+vDXur4Fz+n1ZhSA3BrgNqS8WcBsTXAbiF9euIpQt3j4zgN9C4DY0uA3SzgN9a8DfEXbWAb2Nsiy4vMtJnP6p1rG26MusQ3xFt1im26Meuf0Xr1N76n2fHOf0frpN76v9eLMKCgbfy30UePjNc3wbWaxcrXuyn83hbMNrm2ua5voWubGlrm6Wa5uY2ebONzm4uX2uq3/8R1qs/aanNOndbi5Km0LY9PPnxzCg+m0bcDJM3UzCg1mzzY5tv6+K3NrHpObbPO3BbLhzYiLYlnjnnbMN522uedvoXnbGl526WedtK2seKth2wxrIuR3Cb4FrHiTY9t8Vyb0d21FOc00m3Uzmmpq0mc00fW07ttrHvbcxThai9MA0u0qLtBMDS7ZA8u7xFLsVbq7Fd6a2NPrt4BS7KB5uw3Yd2RT27pd9rd3Y7vTrvcBg0uyoP7vLgkFmKP3XNLHtB6ExPome1oeHuBN/ZLQme9fpnuiGZ7d6me1IZntMH57OemPZim5Mt3Ug0w4gWfdQEb2wD9Ou+xEawWP24j095A8evnvoGMt19wA3vbCzSDMUhRhQzXdKP06fhgD+NYA7+2AOCNPdjox0PAc9HJxiDgY+/sQca7qTxAklBYJXXYOq7WD9qk3YIftqHZBg7B13eIfhzcHLW8RU1qYHYPB7xDzrWQ/jyHUuSBDvHTHoZQMCuHO5/3QYO4fh6BHPAzRbw8MNb6Agt+6694LEdr6mB3DmEWI973ECGUmg3h1vPUfXDeHFg7R6PpUeEO69wjkhxqO0fN6jH4c7R3I5gEMoqVm+7R7vv0ck2GUcO/RwkP8EMpCl7j34zNZUcvD0Ivjx4SkK4cvChHAToETPvkd/D49Ajl4RY5ie3CrHvEfwNCMnHBPbhyjyJ0ebSeom9B2T3okdbye8j/HmTokXo5KcsjQn5T3kRE+sekizHYTlkXE4ae8jEnAQUkanvidEiHHVTgBb4uSe20XHPTtx509lGhX+nZJxC4HSbo8OBHT9a5Vw7meVPrHczmp0k7mf1P5Hczpp5s+metOpnJixR7M+mcZPlnTdNR0c8cWoCFnZzrRxc+8XFPTnHisp48+8VLO1nTdYx7GOuceKNnLzqJds7+c0PyV3z7xR05UdP06VF0kF9aCcdP1BngL4Z+C6bqeO7nyOyZyoYedrORj8z2Z9i7ecBAdDoj3FyUfEcLPsXALrFyS72cqHDn4L7Fyc8pfanzndLkoxo+JdMvbnLL7Uzo/ZfdG0VZLko7xon0CvuXqzglyMdvHz6RXfLil+K8FfUuJXYLzZxK+6fLORjsLkY/C8ZfdHEXyrhU2M4p4K7/BoqcLWuJNfwCzXI1i4Za69v9ybXvAm14IJteyCbXQQm16EJtcqDLXFy0VMhuIG+vPtvEX1/Gt9d/bfXsD4KbDfJU/DfXpGmAb67zWipJJFupN/roMFJvjd6bsPfTpTdR7NFubpgvPoLeyCC3QQgt27qzdpB39ubgBAg6zfY7c3Fw6UUwNFSX2jxzb+N2Ab0Edug3997KT2+ClP2xpA71t6/diH+v378+kd4AdkHTvsDbm6dxLBYLSwN0Wb/A7m6AfpSN35utd9brXd26134cjdyW7XcwiN3HurNxrtzfwRIhE7oFlu6zftR7jubhBEgkASRSY3ox7eaKiqWWvpj376fZor/dOus3yx7wX+5dege3XoHj11m5GHTvxhCH+AQh94EjuXtSJ+Ny9otfpuXtZAs1x9vp34ebtDrnDzdpA/+uXtkHijzdug/UeHtsHujxkHy1EeTF84tmX65beLOwHpHkxSG/Wd3iY3Wz6Rw5J48ZAo3ok0T9aB5vSD2Pibp+sm8k/Lg03jH60NBUXspv5PO7lT3m/9kaem6hbxSXp++onBaHRnjIDVTc1mfVPFb7T1W74q3vOPTdWtx+8U8NvFPTb9z8h/c+oC0PTdEPPTt8/fUh38wwLxkDgPgBtxoX60E6zvFReZ3tDuL/O+9Fxel3UsPuzHrZnrvFPm7i4VZ9AfZS8vVR3T9l4Pfaemj917wYV5Pdlez32Xi99p6veKeb3eX+97l6a/XC8vr75z2x6fq5CWPGQX94p//f9fylJH7Twqow9Bvev4ckb56Ko+Ofvq4hyb3Wabo7HZv8HxT4h829eftP36tDyMdNc4eDv2Hijwd7w9HeSjtrwJfh4O9jfOPB38j/d8u/zfMPB32j09+1MLabvl3r1xd+1M+v1DjY07yS8Dd1nsXfH7F2G5UMRvir4nut8D/+9xupv9L1w4J5GMKeEf3R2e218x+x01Pb2jT+j608fesfe73HyYIM84+SfeP6r9T4p9lu/vWPmz3T7+J2eqfr3ko915k8U83P5Pv4h575+S4236U/byUf8ORTRf2p/z/28Z+x1gvGoyX90fC80DFfcvwQar5MFf2OhGv/n0EJ1+S5UvK7zByz5yNsFZf/R5Tyb/aPE+Of2por1gsJ8lG+Sd4x33b6Pfm+/i8DyKa7+6MLkqZPvxo/V6t88BGvgvhgM149+S5WvZvsPzwCfclGHPtv7o11+QQufY/X7779qcG/p/hvkfhgDweW/FWJv378YzN7z88Ar1hfjY25sz/dG1v5fvABt/T9bfm/O34P3gD28GC5UQN7v6Fe7+C3u/MV7v4he7/4ru/G57v9ue78Kbu/mNuVCrq79/mtYSCnxT39HN9/RzA/uc/Tv8Gr+R/q5hG139HMT+tzbm3f6OZn/7nXD5/22gv+IE+KNdLQoV7KB7+gXyRXfoCwP9gs7+P/yFkf0BbH80LWh138gLKf1wt6VX/yCl8tEAL0k7/JgWf8l/bPhX9hLXxU+debdKV39JLRe0wD5LIf2EsR/ZS0P97/VS2ACu/dSzP8yA+Sxn9hLOfxiY4AmATQDH/Lv0CtUAkK3f97/QKwH9ArIf0CsR/JKyID4AlK1ICOA8Kyn8MrCAJEC4rOfx+Z6A3iEldh4JgPv9erVAIGt2A+AN6sB/cax/8lA4T1btFLLvzmsBAhgIWthA9QN0CsLAUV38VrCQLMCKvQXWv8DA3QNkD2qImUUD4AwG1QCQbNQIYCwbbAK79IbbQPcC4bEf0Bsx/JG1MCfAuGyn80bGwMiC3RaAP8DxFZwMk1rQNwIYCOeHvwyC+/DIIH8MgofwyCR/DILH8MgifwyCp/DIJn8Mgufw55kgjnjSC5AwBh79Ggvv0aCB/RoKH9Ggkf0aCx/RoIn9Ggqf0aCZ/RoLn9AGZIMAZ6g3p210DBTVBdsLdGYMzdiBGYJt9eIGYLJ8mBGYNK91g3uxj8tgiwJ2CYBGYOZ8DgxTXs85giGV8VNUX1WmCIZWDU1QGBfwTuDQrO4Jis7gxCzuD8VO4LE1Fgtmyk1rg6TweC07YIU1RJJAd2BC2/Y4Px9FJUEOzcZfb4LXssFaEMp9WVOENndrgiz2S80Q0IURCVBaEK58fhTVBPtrgyKy2DhfYkOODxfC4L7dvbb4Pl8rxIkLHcAQmL3n1GQjc01QkvalWuDDfb32uD8DNcU1QcvZb35C7BPkMHA7vY4Od959EUPK8vrLEx5CXvFYKQcqZKUN+9vgjBxj1NUFP3fd5xTVFyFoQqpT1C7BPUNQ9rg4vz1Dw5PUNRDvgpb3HctgnYwHc8IcLXtD0AgXyYEHQsgSdCrvGkQ9DjQ4gQdD1fAwQdDLQ10Pb0PQrEIDCTgl0JgE8IGZ19C+HdKRj1ow/F2jCxXaMN+deIaMNldow1p2jDaXYMOTsLhBMKntpBPCGx95xEsOp1YwtkG49Kw+NRLC/tEsO+USw7nWDD09MsLFpUfcMK58V1PCF59gwm0RgM8IUkOaEBwrt06NYw6X29kRw2kOHDxwsdyGMWVJkNaUpwug3HDuhEcK5C2w/AydCBQm0KjD8vDGW3CfQ4MIlCoQ8MOlDhrXcPTDBwIML3C/fMxW3CcQ8MND9gwzUICNww3IROhYwqpU/Dgw/9x/C9wgvwEoRw4v3/CrwsDwclgIyEWAi5tYCLB0Rw8YULCuTTFxZVv1GPQ9Qy7FdXQjuVAwXQi67TCLp1spG2XQiSlHCJzNrZfCPzNgDCiPa0KIzrQoiJ7fCIYEezD1GuVmIpC2yk2IzSywVOIwQU4jw5TiNkFOImEU4iVBNiMkk1xD1FLDt5SSPO9iBSSOFDSI+ELGkJIuPUlDFI+ULNl0QqiRUjWw6SPbD39FSK59/BD1Bz0h7D1HZ9eIcyMt8YBcyNQELdWyJzdSI6cMT9LIqA3gN4VeyMndDPJyNp8bI3+0s9SI/A3bsPUHcOCj9w/uTCj7fNuzMjBwLu0CiqHGKK99XmQKJhFIoiexiiMHGKNfCP5UiNyEwoqpXyim7XKOq1couKLkjPRBKNyjWtGKOtD8o5hxwjRzPTRsj1/FISIjN/RezajFzCrUwjRzEiLkiD/efU6jgWSiICMeoxcxoiGo3cx/Eho3ony0Zo8cSzsmBCBVYjJooETsFmIl4QLtlo3iNWi4RfiN2jxxQSIOiLbf5Q2j0nVwzOjgWcSOOipIiSPcpIQ61xuiFI/qNtolI+YTujXox72ajXojSIgUtIzfQ+irohjyWj7olUJBjb/VP18UIFUyOOiLIrs2BYhwlyPhjeiCkKRiIFCcP7l7I9ymcisY22mV9txXGIRjNg76IRjfIyyOxiGfF6OBYgosyPcpQo2mNtpSDenWCi6YkqKpjeiE8OtkGY6mMqj2Y0wCSjR7PmMVCzFFmMZj0o46Myjjo7KKhjtRZKKFiCo7mLtEio+WLZjwYy0TKi1Yu0V5jNYl0Wqjjo2qMViXReqLkiUA2dV00XbIiKwC3tS2NwDmYzCPwDNFG2K0sUDe2PktWtV2K0sJok2KoDpoj2M4k5ov2IplFomyPhlc7EOLRl1onCKxl0dKOLRkdo72MJldAxXQTjcZI6JTiKZYSNjikZUSKzjOJa6PTiYSW6NzjMhB6OW9dNKsOykJImJjeiNRKuPBkkQ6SOrjfo6uPe9w4/KV0i649uLBi247y0hjghXTRhiC4+ajhjdNRGPsiYmVGPHjwZDGMCUp4/KRxji4mEnxiPIxeOHjiYyyIniyY7x0yF2QzfTnjOJGmNXj8AemKPjwowJWCiYmKKNIdT4zmLliloy+O1ie4zIQFiL48GTvD/lV+PylUHez0/jOJSWKHj8AaWP7jA5O+KfiYSBWNPj/3X+MyFAI6BPASNYsBPmpwI0BI3jI5WhzgSkEwe0gTjYpgTbBE5FdTwS67AwTwTrhAhOoUZmYgTbARhQIzbAEI4hI79nnXiFoSxXUsPwTiE9ynYAiEyhI4TSE9hNtohhGhPcpqEmA1LC6E7hNtokIiR1ESWE6rjYTKE2RK4TcE2RN4T5EhMQESRE6rmETVE9iWQjS4yRJj09ElhM4E5E3BOMTFEmAQri6pVvnuMCEq6RtAREzgS0TTEvSTETnEoKX0TiEzgVQjiEmJhMSLE3xPMSmE3xJUTcEmJnUTKEmJicT/E8GVcTok/KQ8SIkmJJYSfmPxKYSUkwJNUjh4axIT8CEn5nCTcEn5iiS0k3sViTiklhUYTMk9kxYTP6VJKmhxFThI6jiEmpJCSLEz+nyTWk8RSKS6kuZV0TP6BJNwS+klhI55ak/6IHAGk62OIThklpKYSOedpJmTklLpNGSO/XRI55+kixNWSWEwBhGStkjJNbDsk7UzocLEp9XsTKEwBkWSv1XRK/UKk1sO8TKErHhGT7k3ZPuTpk/SL4o5k15NMBFk/zV0TAtIJ2ITgtIl2IEjAMzCK0mBYFPxoIJAwXBSXk8FNSioUr9xj1gUqpURTPRfFyRSxXJFLTC8AJFNlckU1pyRSlXGASRTVXXiGBShhFFNKTsUhhL+SgUjvzFcsAPAA/iDBBlIFEY9FlM5cmBBlL8AJHLlIqSuUjlJgEuU3MMFTlkw5N4gGUyRJXUJU6rWIFWwW2iZTZU9ylZTmUpVIFTxU9ym5S2UjVL5SNUtVPjwNU4VPVSJE0FMFTOTfB05TeTR2OZSn6BVM5Sn6ZVNlT7UvVOOom6TVOtTXUvlKfpvAZ1K9TDU+PCfpxhKVIDTzUwVIDSZUu1KrlbU0NKrkHUiNNzE2wE3nuM2UiSRBSeUlNIhT4w61KrlvUpNKzT40szD9TO6fNMDS807uklTS0kkm/UpUyGJwBRISMHnFTtf00RBV3WVLYcQzAMzZS2HWtLEh5xbWEL0DBPtJJ0TU3iG1h3k7WC6TtYQNJgNJ07wyYFJ06A2IEoOMXX7TF0odKXTDEMVIgIh0sdKHSJ0odKnTV02nUlTp0/dIXSmBb8zYcV1LqwL12Hc9PITAjT5JOS70j4QfTRU19OPTiBKpMdiYDIcNO0r09yk4cDBIcPeShwrpKHCX0n9M5Mn0mASHCP089MtTIjH9Kx1L0oDNx0b0mPQpCQMp+jAyn6CDM/SA06DN4gKQuDJgyw079PwzYAlDIoygpQDOoy6pLDL0kcMvSTwzz0rxMIyqQ56VnTSMlxLPSYMugKozz0mJlozBM8GRAzIk9jOnCWMvjJiSJMmJhIyiMuTN4yFM9yMlw/0oDNfthMvjJUyGAMTO0yeAMDNfspM5TIi8zjWTL0zqUiCR/TX7KtJ/SZAgTJgyfmTTKIy8kiTMKTXM3sSMyvI9k3czyk1qNsySkpTPi83RNTM/TP6JzKCzRlCTM/owMz+k8ytfa0APTz0vpK4yiMwZPIzz0moPsyiMuoPQygM2ZIkyOeMDI544s1ZIKzkleTP8iLVQLOHBTI4gWHAuYurMAMQ03iHqzUBFdVazmYgwXqzw0mAW6zzMzdPqyKHJgXqzqoxrN3iBRdrP/sY9YcB3Dpss+JpE5sq+JMcus2KOidGs88KmsJHGbNacZsv1JmyGXAjEyjGsptJ4AWhYcHbTEQFoVVxTAFdWuz3KW7NHCMgB7JnjYqZ7JiY3s8zOeyfmZ7M/pnsjngezak1XHGTFJAHJeTgc0wBuyDBcHKazbaW7Oq4KQuHITEXs9OkRyyxacNRzh4ZeMlwMciHO+yoc+HN+z8cpHP+yicssUByFExpOIFoc/ZO6NN0mnLl91QKnK8NYcqHOCMm6W7OCM9JDnJGN0c1nJ5zX7bnLF88cpnJ5zCckXLF8Sc8XO1NAcinmhy6c2XJeSaQSlKVyKkpXLFcBwIKJgMNclLJ0x5stsUCMNcwLI1ykjYgQ1yqHLXOvD0Ei3Pfj2MjXInstcgo1tyCjHXMTSnfEIyYFXcu3yNy6jOrQdyRjDbOJUDcgo1SNTcgo1Si/cp33tziBPwC6S/ARLJgE48nXLjzAsjNMfSKEpgVTy30mA0zyKsnPJTyKeWPMNN2MnNJKNc8003SyE8hQVjzwzYvMjM/M6POjMK83iEcxh9AwRbyKklvPxcW8sVxbysUlvNlcW81pxbzCU5vJ1UoXNvNFSWhRzEkSp8ulOqMDBcpWHTwoT0Wazl8qBIXzAPSIw3zi/FdXKUEo4gXKVRspgXKVGHY/LHzak60GfUEs5CISyKkhLLFdsmQ0SXzH8y0VXyX8pWM6yD87UR6zeId/Js06tBfO1F984/O1Ej8mAT/zPRU/PALtRZhy/z+E+cQgLKUxArvyEMrBRj1/eRb2fzevN/N68iHY/N68f88KF68hs8Aum8k43fN68wC3/N68oC6gtW9YC/Aqbor8gjIkcMCjIDWS6C76luT8CqYywKpjHAqmM8C0gtmMrUg/PmMACsQqmNgC4QpKNK/TdOLBZC2gqIKpjBgpkLtTZgr2Mb840xpSeC0vIfyjNZ/KM038ozSELf8ozUILouAzRIKzCjzWkKbCgzSoLwoIzSULLCizVUL7Ct5IQLvk1gt+T+HA/IBT/ZGPT9hyUgwT9gukv2C4NQi0VKCKLMzNOIE/YbgpgEBQkIviKhE9jIFDIi1IuNSJHAUI4KiDCRLFcmYoKRSKmBIorqlwizgUyLSitjJyKvEipLKLnpQorCTkIpbPwBwimJiqKkiuTJaK5M+osUzAU0opcycitzPTykin5k6LeIW+MpSpi+op+ZEiyYqJkSipIqJlwiomQmLBwImWmLNi+os2LCitpJaLos9ItiykFJKOmLksnQqSK0swItCKFBJYsmKq89IoUF1im3OmK68vwtKLG864viLvNFoqx5wirHmeLvCoIt8K4i0ooCK0CgwQSx483iChKdcqEsCy8dE7JtAY9REp0JdTZtON8YBPHW7T606QSRKcSuGILxj0IkqXw6+dYGIELsngEu0LdSkq3TadJGNpK3UikrRLNYUCEzyJHRkr1TGSv1NpLaSgSnJKmBWkpvcfhIUp4UhSoDXFKLzAwVpLYxAdxlLwQ3iBlKfPaUpZL8cGCCEU5S1Ut/B/KA5M1KwTbUrrTCSrUtAg7isrHjxkI+CDlT3imAUtKrnAwVtKhFGPUtK2HS8LNLLtJ0rpKxdCR3gh8EmAx9K67P0sERSEwMo3DvSqbPtL8i60t4h4IBosCUPS1ootLVsqVwjKA8lfRTLWnGMr9SYyg7PggNdAd3ghssMMrglAyxYHrymBeCE1pgDEspTTRi6Mu3Bgy4gXggeAD0qpARjD0rmwV1eCEqBOy2IshzGyufPylOy9ygZTvS4coqTo/F1OxEnS4cprLpyiGM5hkQ8svcp3S+0uXKh00cttpfSxso4SAy7cs3KGypcvlTJYFdznLqYi0rpjxyumPxdo/BMo3LqYrFJvLZXG8ozK6YrMrpicygDJvTXS6P0LLTy3omLK9y4FlLLLMwCv/K2sv0vcp1S/NNrKysSCoPKbS9ymbLVy22lbKSjP8tMAOy5CuBZuyrCt6IkIocoKLwZTsqx0LSrHXHKsdO0sbKKKx0vtLkMhcu/Kn6Fcqoqm6ddKkEnSp+i3Lyyjit3KuKpunpyEDP0ptTjyyKXYqm6fA1ErvqWbNoqxK68qfpbyiSoyBb470rkqnyuSozK5KrMrkqcytDP/NFym0qfpfy6Su+oAK3iuMqdcxumMrwK5issqhFQIwsqMgHUtpy7Kp+iQrrKjIFQrtTBSsvzGc0yvYKfK/Sqbp8KoyvYL3s2ipGMRy9ivCryK8KsoquKmKpoqqK8KpdL8yiniYq4qko1YrSKkY04r9K7Kp4rcqko34r4VZypGNQyyKqd8sqp32iq3cwx0SqnfMV3j87fB8oKNVK/3PUr/czSv9ztKkYzzKwqko0Mq6q7UxMqCqoavMqKeSsoCNBKkYygru6GCsark/eCujKKeVyvSrtTDyu6Nyq9Qv8qlqzQuIq9je7L6rtTS1RXU2i9jOAqQxM6uwzLqquS6THK2OluqnSbrwJL5xZ6s0F27V6rayh7D6psSvqw0t6ckY56udMYBZ6rdNgav6s9MmBEGp9NiBZ6oBNj0AGr+qSS0HFdK5sL3QMFUaipNRrg9dGphCMZGPVRqxXVGqxTUa1p1RqR86hV0j8aj5OQi5sXsJgE5sXIxxqdwloQZqV7Bmov0Ga6/QZq79JgQZrRDBmocNiBBmqPshaxAOpKDBDbFZsNscSolrIy0EpgFpa/F2lqxXaWqxTpa2V2lrWnaWr9Tpag7I2x7bWUAaymBQ2tXzDaz6uIEzaz/ONqoDUQutqsc1jRXVDa6wrwBDaxwsNqlCyoEkkWhT2pmVPamLQMFPale09qL9T2uv1Pa0Q09q71T2qkNPakWqYFKgOmt4hKgI2pgFk61fOTrza+Oo4zz4gOptqt84gWTqx3FdWTrna5OscLk6j2qmyYDSoFmzq6vXOFc66+Ssbrm9RuosdG6pPUbrFHRuqz06658NTr7opBSQipI72vuj/aguvuig6+6JDr7osOvuiI6+6Kjr7omOtBjBjAOuHKXSi3SQiU6pOuxj067GMzr+6vGNMLeyvOqwVi67GKLq16vGNLrsY8uopi3Nc+sZjlQauovKgnF+sZjw9d+upjo9L+o5iW68esZi26gBupiO64Bo5iu6sBv5ie6yBrFr9gpOurjB66uN9rq4sevjrq4oOuriQ66uLDqm42h29qW4tzXwb64mOuri461Ov4z6Kzeonil8y1URji6ieIPr4G6eOPraGwgtYb+s+hunjS6zePQSA6ieI9rL45+oLrL4ivWrrL4z+uEa34n+skav4/+rQa34oBvkav40BqUaD4iBtUbn46Bo0aYSPut4gvYQA22q8AfRqHCV1YxqfpTG7OteyDBYxtCriBGxs+zrGrzMMbjGsXKYFjGyXLcbsY5xt3qWcuxv3r2c6xv3qucwJrxjbGzxtCaHGvxuvrexUxtvrxFWJrxiPGmAS9gn6PsrcbUmg6rsbUm8xusbsm4Jqya/PMJuSbUmgXNya/PYXPSa/PVxuKa/PJJr0bX7NJuSaGmzJrcaGmnJrsa2m/JtabzM3nI6aem0pr6aTMoXwqammnpuqb6mnpslzr+H/ngA/+AATPBBQGZo/4wABZv0ADgZAGbQGIMgCAA===\";\n\nvar HelveticaOblique = \"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quEFWqyum6rwq1gp5N+q1/WELxcYauwh6yuKuDTEq4hAm84I10CmqeAWsWwhly442WraFdKoYVNqzKuqqq8nKt2qS/TaomlNqgqoOqiqg6uZp0q07CmrKgG6vyobqmpjiqC4kKrBy7o1yoLjPKlqoLjcC16vfzXqwKterKCgb2riwq4Gtbj/ZbrVeroqr6rTpYq96thqyPRKoPiomGGupFqklGo6qD4natRrNibKvXYUqg+Lyrqqg+NOqca0wDqS8xAmrbSManqubSyq4mrToKqhmupFxaakSpqWa+mrJr1OBquZrNiJqt5rTANqoFqy8rquFroyoWq5q4yrWnGr8qUatMAZagq2Mwua9bSRq06ZZKVrMatOiWr4a6kVWrDzZatHyaa8Kony06dmtjFsazWvnzWxM2pTEiarmt/yeAG2oTyMgJ2p1jXay6uFrrqnWubENa2mvrE06J6uvzZZOKtp8Xq2n3crafT6o6rafH6tp8/q2nwBrafIGt7LvPPrVcrafSKpTqEA0At/08Peat9rwqiDKaLEqyumSrqq0uqqqWq0uotqeq0upqYUq0urtro69ZktKVFBupbrzqqur7Sja3OqJpXShgHbqiaJmq7qh6yuubqh6zmvHqMga8lQJB6jIH5qR6jIAlqp610HDLxqyunFrbWRetXqu+devWY5arepXrkdAut7rdtBZJLr1mdWpDr1mbWu3q8APWp5Nlqu/LnqS802vLqf8musLqf8+uvfrgCputrqf846t/qMgTWJfrk8nupTqWjMBq9q7626vTrkC+6vgbbi1sRDr3/MOvf8I69/yjra69/1jr3/eOvf9E6sANkKq69/1Bq1KyAMzr4A6GujrVjOGtIbjjBKvTrVjMuoYbDzdGobqWGz+r+zjjPGtpJOG3hv/rC6lhtJraG3hs7qxGw8xKry61Y37rHamRuONh6yRp5NWazYgEbDzWquON1GlRp5q2GnkwXrlGrWmXqcG44zXqFGw803r161YylqDeKxtMbzeOxsPNJq5hsY9z6lxsPMr69xp5Nb6wxoN4H6rWifr0CiBopMx6kxpsDuGihsCCf6vRupMhGnhpsCgGmJsCDRGsJp5M3a8xrSaPapJpUyT6yJqNw4G7JoMzEGwpoYAyLVYXwB8M8SHmTdilgvwBHhcpvrSmi1Av0q1tJLJUEWm89MBkTK10EqbI6dZg4y+mkVK6bSPczNCELKyjwGbxmhNXqb7hOcp5NemuZvUC2m4QUWaDeGZrGaSEBdIcq+3Fir/Edm7ZrJUtRXZv0C4hI5u2aT7Y5u50xm7Zpd1rmhird12mm5qF07m5dJNMv0AwWObOK3HGu9hBU7EINdwv5ugMAW2vXINgWjFOEiwWmgzBb0DMFswMwW7AzBbcDMFvwNgWyyPuFTsDi2BblcrFopycW6NKxaoW0IQxa9c4aoxaYWolqWzg7LFoRaKWznOBbwo0lr5yPbelsJaVBU7BFzGW4ssudOWuFtpbwXelpRaKWjKPuEHscz13DRW9guEFRWjx3FbvKvj1la/K4MVQLRW/xwVautBVvucFWwbQVbIfWVpm1AvB7COkRW4bKoljWtkpzrDW3AsNb3861oZzutQ1sCrDWoGsNbQah7HK9jWumI9arW/bM1UPWx1oWLG8j1udb0Si1pnAaGqVuDTAvTUEGzhBaNsHlo2/DQTbdslQWjav1VNoZzVhaNu+lo2iWWjamjSoEIN7hAtppsC2oBwLaHrAtqEcC22ewLbxXAtoFsC24WwLbZXSoCH1VVSoGJzhBDtpLbx44OyLbp9anNCEO2qtr8MGc2TQ7aa2ylpC8u23GPqT+2znPnae2rMvHafWhy3nbJ2rlo28Y7SoFOLt2kNpXakKvdqf12256u3aC4kto+rR7Idu+rB2lQSdNFWsR3vaa2+uPcsi2guIbaC4ptoLiW2xppcq32tOk7bxIJ02Vz/26kXNbx2+eIrb54qtug6x20Ds2JvIwDuQrB4uto3iz4+DtMAF269t/iL23+Kg7f4mDt/jn23+KTSnTXdog7f4t3KA7P4n9qw8amihSA7LEx9ssSS2yxLLbLEittsSmMu9ocTDcotssS629xPQ6h2yxKbbfE+WXHbsippvbaamJDrIsQOkTuSSKc/jqU7b2rttk6q2jTrg7FO0JJrbZOwTsKThOnjtbEsO4zq6TWOkzs46TOzTpM69OkztI7Gkgzq6SqOofNllD2yTvYyrM1VXhwjpXcJ87JW8SB8735PzoHb6fELt5KWCnzr1zUCnztVbQhHzvVb4u2dtr8Qu8r1S6AuvAHhwsymLtXalW1Lri6VBLLra1UuxLsK6Q2nLsPaYu+eMi754jLt/KwO4Lvi7IO97z87oO/PKa6AO6Lta6AOgruEF6uhDtK6+utDr61uui+Jq6cO8YVG7NibLqm7MOvQsK7P43rsC7P44ro66L4wbuW7KOu8Sq7f43Vvi6FfSLoV86uhX0a7Cuk7pa79uo33m6+uhXy67Lu2XyW7MuhXw26nuo301b7u230O71mOmL87K6Gbo+7nfa7sC6/ux7oAqiaTdor9fu77pe6we23w68oe8Hr27CuqTN874ulHrq6Ue07r67Mei7uR75MiLsOLgK/Hru68e/TIYBEOyLpR6YelHve7Se7gMJ6pMn7rR75M/7rp6DeXMsp6We0HsZ7Vutns9zqelnvh7mesnuUC9uwgSYEWBNgWShHwaUAl66BMABl79AY4GQAJ0LiDIAgAA==\";\n\nvar TimesRoman = \"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\";\n\nvar TimesBold = \"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=\";\n\nvar TimesItalic = \"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\";\n\nvar STANDARD_FONTS = {\n Courier: LZString.decompressFromBase64(Courier),\n 'Courier-Bold': LZString.decompressFromBase64(CourierBold),\n 'Courier-Oblique': LZString.decompressFromBase64(CourierOblique),\n Helvetica: LZString.decompressFromBase64(Helvetica),\n 'Helvetica-Bold': LZString.decompressFromBase64(HelveticaBold),\n 'Helvetica-Oblique': LZString.decompressFromBase64(HelveticaOblique),\n 'Times-Roman': LZString.decompressFromBase64(TimesRoman),\n 'Times-Bold': LZString.decompressFromBase64(TimesBold),\n 'Times-Italic': LZString.decompressFromBase64(TimesItalic)\n};\n\nvar createStandardFont = function createStandardFont(PDFFont) {\n return /*#__PURE__*/function (_PDFFont) {\n _inheritsLoose(StandardFont, _PDFFont);\n\n function StandardFont(document, name, id) {\n var _this;\n\n _this = _PDFFont.call(this) || this;\n _this.document = document;\n _this.name = name;\n _this.id = id;\n _this.font = new AFMFont(STANDARD_FONTS[_this.name]);\n _this.ascender = _this.font.ascender;\n _this.descender = _this.font.descender;\n _this.bbox = _this.font.bbox;\n _this.lineGap = _this.font.lineGap;\n return _this;\n }\n\n var _proto = StandardFont.prototype;\n\n _proto.embed = function embed() {\n this.dictionary.data = {\n Type: 'Font',\n BaseFont: this.name,\n Subtype: 'Type1',\n Encoding: 'WinAnsiEncoding'\n };\n return this.dictionary.end();\n };\n\n _proto.encode = function encode(text) {\n var encoded = this.font.encodeText(text);\n var glyphs = this.font.glyphsForString(\"\" + text);\n var advances = this.font.advancesForGlyphs(glyphs);\n var positions = [];\n\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n positions.push({\n xAdvance: advances[i],\n yAdvance: 0,\n xOffset: 0,\n yOffset: 0,\n advanceWidth: this.font.widthOfGlyph(glyph)\n });\n }\n\n return [encoded, positions];\n };\n\n _proto.encodeGlyphs = function encodeGlyphs(glyphs) {\n var res = [];\n\n for (var _i = 0, _Array$from = Array.from(glyphs); _i < _Array$from.length; _i++) {\n var glyph = _Array$from[_i];\n res.push((\"00\" + glyph.id.toString(16)).slice(-2));\n }\n\n return res;\n };\n\n _proto.widthOfString = function widthOfString(string, size) {\n var glyphs = this.font.glyphsForString(\"\" + string);\n var advances = this.font.advancesForGlyphs(glyphs);\n var width = 0;\n\n for (var _i2 = 0, _Array$from2 = Array.from(advances); _i2 < _Array$from2.length; _i2++) {\n var advance = _Array$from2[_i2];\n width += advance;\n }\n\n var scale = size / 1000;\n return width * scale;\n };\n\n StandardFont.isStandardFont = function isStandardFont(name) {\n return name in STANDARD_FONTS;\n };\n\n return StandardFont;\n }(PDFFont);\n};\n\nvar toHex = function toHex() {\n for (var _len = arguments.length, codePoints = new Array(_len), _key = 0; _key < _len; _key++) {\n codePoints[_key] = arguments[_key];\n }\n\n var codes = Array.from(codePoints).map(function (code) {\n return (\"0000\" + code.toString(16)).slice(-4);\n });\n return codes.join('');\n};\n\nvar createEmbeddedFont = function createEmbeddedFont(PDFFont) {\n return /*#__PURE__*/function (_PDFFont) {\n _inheritsLoose(EmbeddedFont, _PDFFont);\n\n function EmbeddedFont(document, font, id) {\n var _this;\n\n _this = _PDFFont.call(this) || this;\n _this.document = document;\n _this.font = font;\n _this.id = id;\n _this.subset = _this.font.createSubset();\n _this.unicode = [[0]];\n _this.widths = [_this.font.getGlyph(0).advanceWidth];\n _this.name = _this.font.postscriptName;\n _this.scale = 1000 / _this.font.unitsPerEm;\n _this.ascender = _this.font.ascent * _this.scale;\n _this.descender = _this.font.descent * _this.scale;\n _this.xHeight = _this.font.xHeight * _this.scale;\n _this.capHeight = _this.font.capHeight * _this.scale;\n _this.lineGap = _this.font.lineGap * _this.scale;\n _this.bbox = _this.font.bbox;\n _this.layoutCache = Object.create(null);\n return _this;\n }\n\n var _proto = EmbeddedFont.prototype;\n\n _proto.layoutRun = function layoutRun(text, features) {\n var run = this.font.layout(text, features); // Normalize position values\n\n for (var i = 0; i < run.positions.length; i++) {\n var position = run.positions[i];\n\n for (var key in position) {\n position[key] *= this.scale;\n }\n\n position.advanceWidth = run.glyphs[i].advanceWidth * this.scale;\n }\n\n return run;\n };\n\n _proto.layoutCached = function layoutCached(text) {\n var cached;\n\n if (cached = this.layoutCache[text]) {\n return cached;\n }\n\n var run = this.layoutRun(text);\n this.layoutCache[text] = run;\n return run;\n };\n\n _proto.layout = function layout(text, features, onlyWidth) {\n // Skip the cache if any user defined features are applied\n if (onlyWidth == null) {\n onlyWidth = false;\n }\n\n if (features) {\n return this.layoutRun(text, features);\n }\n\n var glyphs = onlyWidth ? null : [];\n var positions = onlyWidth ? null : [];\n var advanceWidth = 0; // Split the string by words to increase cache efficiency.\n // For this purpose, spaces and tabs are a good enough delimeter.\n\n var last = 0;\n var index = 0;\n\n while (index <= text.length) {\n var needle;\n\n if (index === text.length && last < index || (needle = text.charAt(index), [' ', '\\t'].includes(needle))) {\n var run = this.layoutCached(text.slice(last, ++index));\n\n if (!onlyWidth) {\n glyphs.push.apply(glyphs, Array.from(run.glyphs || []));\n positions.push.apply(positions, Array.from(run.positions || []));\n }\n\n advanceWidth += run.advanceWidth;\n last = index;\n } else {\n index++;\n }\n }\n\n return {\n glyphs: glyphs,\n positions: positions,\n advanceWidth: advanceWidth\n };\n };\n\n _proto.encode = function encode(text, features) {\n var _this$layout = this.layout(text, features),\n glyphs = _this$layout.glyphs,\n positions = _this$layout.positions;\n\n var res = [];\n\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var gid = this.subset.includeGlyph(glyph.id);\n res.push((\"0000\" + gid.toString(16)).slice(-4));\n\n if (this.widths[gid] == null) {\n this.widths[gid] = glyph.advanceWidth * this.scale;\n }\n\n if (this.unicode[gid] == null) {\n this.unicode[gid] = this.font._cmapProcessor.codePointsForGlyph(glyph.id);\n }\n }\n\n return [res, positions];\n };\n\n _proto.encodeGlyphs = function encodeGlyphs(glyphs) {\n var res = [];\n\n for (var i = 0; i < glyphs.length; i++) {\n var glyph = glyphs[i];\n var gid = this.subset.includeGlyph(glyph.id);\n res.push((\"0000\" + gid.toString(16)).slice(-4));\n\n if (this.widths[gid] == null) {\n this.widths[gid] = glyph.advanceWidth * this.scale;\n }\n\n if (this.unicode[gid] == null) {\n this.unicode[gid] = this.font._cmapProcessor.codePointsForGlyph(glyph.id);\n }\n }\n\n return res;\n };\n\n _proto.widthOfString = function widthOfString(string, size, features) {\n var width = this.layout(string, features, true).advanceWidth;\n var scale = size / 1000;\n return width * scale;\n };\n\n _proto.embed = function embed() {\n var isCFF = this.subset.cff != null;\n var fontFile = this.document.ref();\n\n if (isCFF) {\n fontFile.data.Subtype = 'CIDFontType0C';\n }\n\n this.subset.encodeStream().pipe(fontFile);\n var familyClass = ((this.font['OS/2'] != null ? this.font['OS/2'].sFamilyClass : undefined) || 0) >> 8;\n var flags = 0;\n\n if (this.font.post.isFixedPitch) {\n flags |= 1 << 0;\n }\n\n if (1 <= familyClass && familyClass <= 7) {\n flags |= 1 << 1;\n }\n\n flags |= 1 << 2; // assume the font uses non-latin characters\n\n if (familyClass === 10) {\n flags |= 1 << 3;\n }\n\n if (this.font.head.macStyle.italic) {\n flags |= 1 << 6;\n } // generate a random tag (6 uppercase letters. 65 is the char code for 'A')\n\n\n var tag = [0, 1, 2, 3, 4, 5].map(function (i) {\n return String.fromCharCode(Math.random() * 26 + 65);\n }).join('');\n var name = tag + '+' + this.font.postscriptName;\n var bbox = this.font.bbox;\n var descriptor = this.document.ref({\n Type: 'FontDescriptor',\n FontName: name,\n Flags: flags,\n FontBBox: [bbox.minX * this.scale, bbox.minY * this.scale, bbox.maxX * this.scale, bbox.maxY * this.scale],\n ItalicAngle: this.font.italicAngle,\n Ascent: this.ascender,\n Descent: this.descender,\n CapHeight: (this.font.capHeight || this.font.ascent) * this.scale,\n XHeight: (this.font.xHeight || 0) * this.scale,\n StemV: 0\n }); // not sure how to calculate this\n\n if (isCFF) {\n descriptor.data.FontFile3 = fontFile;\n } else {\n descriptor.data.FontFile2 = fontFile;\n }\n\n descriptor.end();\n var descendantFont = this.document.ref({\n Type: 'Font',\n Subtype: isCFF ? 'CIDFontType0' : 'CIDFontType2',\n BaseFont: name,\n CIDSystemInfo: {\n Registry: new String('Adobe'),\n Ordering: new String('Identity'),\n Supplement: 0\n },\n FontDescriptor: descriptor,\n W: [0, this.widths]\n });\n descendantFont.end();\n this.dictionary.data = {\n Type: 'Font',\n Subtype: 'Type0',\n BaseFont: name,\n Encoding: 'Identity-H',\n DescendantFonts: [descendantFont],\n ToUnicode: this.toUnicodeCmap()\n };\n return this.dictionary.end();\n } // Maps the glyph ids encoded in the PDF back to unicode strings\n // Because of ligature substitutions and the like, there may be one or more\n // unicode characters represented by each glyph.\n ;\n\n _proto.toUnicodeCmap = function toUnicodeCmap() {\n var cmap = this.document.ref();\n var entries = [];\n\n for (var _i = 0, _Array$from = Array.from(this.unicode); _i < _Array$from.length; _i++) {\n var codePoints = _Array$from[_i];\n var encoded = [];\n\n for (var _i2 = 0, _Array$from2 = Array.from(codePoints); _i2 < _Array$from2.length; _i2++) {\n var value = _Array$from2[_i2];\n\n if (value > 0xffff) {\n value -= 0x10000;\n encoded.push(toHex(value >>> 10 & 0x3ff | 0xd800));\n value = 0xdc00 | value & 0x3ff;\n }\n\n encoded.push(toHex(value));\n entries.push(\"<\" + encoded.join(' ') + \">\");\n }\n }\n\n cmap.end(\" /CIDInit /ProcSet findresource begin\\n 12 dict begin\\n begincmap\\n /CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n >> def\\n /CMapName /Adobe-Identity-UCS def\\n /CMapType 2 def\\n 1 begincodespacerange\\n <0000>\\n endcodespacerange\\n 1 beginbfrange\\n <0000> <\" + toHex(entries.length - 1) + \"> [\" + entries.join(' ') + \"]\\n endbfrange\\n endcmap\\n CMapName currentdict /CMap defineresource pop\\n end\\n end \");\n return cmap;\n };\n\n return EmbeddedFont;\n }(PDFFont);\n};\n\nvar PDFFont = /*#__PURE__*/function () {\n function PDFFont() {}\n\n PDFFont.open = function open(document, src, family, id) {\n var font;\n\n if (typeof src === 'string') {\n if (StandardFont.isStandardFont(src)) {\n return new StandardFont(document, src, id);\n }\n\n font = fontkit.openSync(src, family);\n } else if (Buffer.isBuffer(src)) {\n font = fontkit.create(src, family);\n } else if (src instanceof Uint8Array) {\n font = fontkit.create(Buffer.from(src), family);\n } else if (src instanceof ArrayBuffer) {\n font = fontkit.create(Buffer.from(new Uint8Array(src)), family);\n } else if (typeof src === 'object') {\n font = src;\n }\n\n if (font == null) {\n throw new Error('Not a supported font format or standard PDF font.');\n }\n\n return new EmbeddedFont(document, font, id);\n };\n\n var _proto = PDFFont.prototype;\n\n _proto.encode = function encode(text) {\n throw new Error('Must be implemented by subclasses');\n };\n\n _proto.widthOfString = function widthOfString(text) {\n throw new Error('Must be implemented by subclasses');\n };\n\n _proto.ref = function ref() {\n return this.dictionary != null ? this.dictionary : this.dictionary = this.document.ref();\n };\n\n _proto.finalize = function finalize() {\n if (this.embedded || this.dictionary == null) {\n return;\n }\n\n this.embed();\n return this.embedded = true;\n };\n\n _proto.embed = function embed() {\n throw new Error('Must be implemented by subclasses');\n };\n\n _proto.lineHeight = function lineHeight(size, includeGap) {\n if (includeGap == null) {\n includeGap = false;\n }\n\n var gap = includeGap ? this.lineGap : 0;\n return (this.ascender + gap - this.descender) / 1000 * size;\n };\n\n return PDFFont;\n}();\nvar StandardFont = createStandardFont(PDFFont);\nvar EmbeddedFont = createEmbeddedFont(PDFFont);\n\nvar Fonts = {\n initFonts: function initFonts() {\n // Lookup table for embedded fonts\n this._fontFamilies = {};\n this._fontCount = 0; // Font state\n\n this._fontSize = 12;\n this._font = null;\n this._registeredFonts = {}; // Set the default font\n\n return this.font('Helvetica');\n },\n font: function font(src, family, size) {\n var cacheKey, font;\n\n if (typeof family === 'number') {\n size = family;\n family = null;\n } // check registered fonts if src is a string\n\n\n if (typeof src === 'string' && this._registeredFonts[src]) {\n cacheKey = src;\n var _this$_registeredFont = this._registeredFonts[src];\n src = _this$_registeredFont.src;\n family = _this$_registeredFont.family;\n } else {\n cacheKey = family || src;\n\n if (typeof cacheKey !== 'string') {\n cacheKey = null;\n }\n }\n\n if (size != null) {\n this.fontSize(size);\n } // fast path: check if the font is already in the PDF\n\n\n if (font = this._fontFamilies[cacheKey]) {\n this._font = font;\n return this;\n } // load the font\n\n\n var id = \"F\" + ++this._fontCount;\n this._font = PDFFont.open(this, src, family, id); // check for existing font familes with the same name already in the PDF\n // useful if the font was passed as a buffer\n\n if (font = this._fontFamilies[this._font.name]) {\n this._font = font;\n return this;\n } // save the font for reuse later\n\n\n if (cacheKey) {\n this._fontFamilies[cacheKey] = this._font;\n }\n\n if (this._font.name) {\n this._fontFamilies[this._font.name] = this._font;\n }\n\n return this;\n },\n fontSize: function fontSize(_fontSize) {\n this._fontSize = _fontSize;\n return this;\n },\n currentLineHeight: function currentLineHeight(includeGap) {\n if (includeGap == null) {\n includeGap = false;\n }\n\n return this._font.lineHeight(this._fontSize, includeGap);\n },\n registerFont: function registerFont(name, src, family) {\n this._registeredFonts[name] = {\n src: src,\n family: family\n };\n return this;\n }\n};\n\nvar Text = {\n initText: function initText() {\n // Current coordinates\n this.x = 0;\n this.y = 0;\n return this._lineGap = 0;\n },\n text: function text(_text, x, y, options) {\n options = this._initOptions(x, y, options); // if the wordSpacing option is specified, remove multiple consecutive spaces\n\n if (options.wordSpacing) {\n _text = _text.replace(/\\s{2,}/g, ' ');\n } // render paragraphs as single lines\n\n\n var lines = _text.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n this._line(lines[i], options);\n }\n\n return this;\n },\n _initOptions: function _initOptions(x, y, options) {\n if (x === void 0) {\n x = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n if (typeof x === 'object') {\n options = x;\n x = null;\n } // Update the current position\n\n\n if (x) this.x = x;\n if (y) this.y = y;\n options.columns = options.columns || 0;\n options.columnGap = options.columnGap || 18; // 1/4 inch\n\n return options;\n },\n _line: function _line(text, options, wrapper) {\n if (options === void 0) {\n options = {};\n }\n\n this._fragment(text, this.x, this.y, options);\n },\n _fragment: function _fragment(text, x, y, options) {\n text = ('' + text).replace(/\\n/g, '');\n if (text.length === 0) return; // add current font to page if necessary\n\n if (this.page.fonts[this._font.id] == null) {\n this.page.fonts[this._font.id] = this._font.ref();\n } // Glyph encoding and positioning\n\n\n var _this$_font$encode = this._font.encode(text, options.features),\n encoded = _this$_font$encode[0],\n positions = _this$_font$encode[1]; // Pass down spacings to _glyphs method\n\n\n options.wordSpacing = options.wordSpacing || 0;\n options.characterSpacing = options.characterSpacing || 0; // Adjust y to match coordinate flipping\n\n y = this.page.height - y - this._font.ascender / 1000 * this._fontSize;\n\n this._glyphs(encoded, positions, x, y, options);\n },\n _addGlyphs: function _addGlyphs(glyphs, positions, x, y, options) {\n // add current font to page if necessary\n if (options == null) {\n options = {};\n }\n\n if (this.page.fonts[this._font.id] == null) {\n this.page.fonts[this._font.id] = this._font.ref();\n } // Adjust y to match coordinate flipping\n\n\n y = this.page.height - y;\n var scale = 1000 / this._fontSize;\n var unitsPerEm = this._font.font.unitsPerEm || 1000;\n var advanceWidthScale = 1000 / unitsPerEm; // Glyph encoding and positioning\n\n var encodedGlyphs = this._font.encodeGlyphs(glyphs);\n\n var encodedPositions = positions.map(function (pos, i) {\n return {\n xAdvance: pos.xAdvance * scale,\n yAdvance: pos.yAdvance * scale,\n xOffset: pos.xOffset,\n yOffset: pos.yOffset,\n advanceWidth: glyphs[i].advanceWidth * advanceWidthScale\n };\n });\n return this._glyphs(encodedGlyphs, encodedPositions, x, y, options);\n },\n _glyphs: function _glyphs(encoded, positions, x, y, options) {\n var _this = this;\n\n // flip coordinate system\n var i;\n this.save();\n this.transform(1, 0, 0, -1, 0, this.page.height); // begin the text object\n\n this.addContent('BT'); // text position\n\n this.addContent(\"1 0 0 1 \" + PDFObject.number(x) + \" \" + PDFObject.number(y) + \" Tm\"); // font and font size\n\n this.addContent(\"/\" + this._font.id + \" \" + PDFObject.number(this._fontSize) + \" Tf\"); // rendering mode\n\n var mode = options.fill && options.stroke ? 2 : options.stroke ? 1 : 0;\n\n if (mode) {\n this.addContent(mode + \" Tr\");\n } // Character spacing\n\n\n if (options.characterSpacing) {\n this.addContent(PDFObject.number(options.characterSpacing) + \" Tc\");\n }\n\n var scale = this._fontSize / 1000;\n var commands = [];\n var last = 0;\n var hadOffset = false; // Adds a segment of text to the TJ command buffer\n\n var addSegment = function addSegment(cur) {\n if (last < cur) {\n var hex = encoded.slice(last, cur).join('');\n var advance = positions[cur - 1].xAdvance - positions[cur - 1].advanceWidth;\n commands.push(\"<\" + hex + \"> \" + PDFObject.number(-advance));\n }\n\n return last = cur;\n }; // Flushes the current TJ commands to the output stream\n\n\n var flush = function flush(i) {\n addSegment(i);\n\n if (commands.length > 0) {\n _this.addContent(\"[\" + commands.join(' ') + \"] TJ\");\n\n return commands.length = 0;\n }\n };\n\n for (i = 0; i < positions.length; i++) {\n // If we have an x or y offset, we have to break out of the current TJ command\n // so we can move the text position.\n var pos = positions[i];\n\n if (pos.xOffset || pos.yOffset) {\n // Flush the current buffer\n flush(i); // Move the text position and flush just the current character\n\n this.addContent(\"1 0 0 1 \" + PDFObject.number(x + pos.xOffset * scale) + \" \" + PDFObject.number(y + pos.yOffset * scale) + \" Tm\");\n flush(i + 1);\n hadOffset = true;\n } else {\n // If the last character had an offset, reset the text position\n if (hadOffset) {\n this.addContent(\"1 0 0 1 \" + PDFObject.number(x) + \" \" + PDFObject.number(y) + \" Tm\");\n hadOffset = false;\n } // Group segments that don't have any advance adjustments\n\n\n if (pos.xAdvance - pos.advanceWidth !== 0) {\n addSegment(i + 1);\n }\n }\n\n x += pos.xAdvance * scale;\n } // Flush any remaining commands\n\n\n flush(i); // end the text object\n\n this.addContent('ET'); // restore flipped coordinate system\n\n return this.restore();\n }\n};\n\nvar MARKERS = [0xffc0, 0xffc1, 0xffc2, 0xffc3, 0xffc5, 0xffc6, 0xffc7, 0xffc8, 0xffc9, 0xffca, 0xffcb, 0xffcc, 0xffcd, 0xffce, 0xffcf];\n\nvar JPEG = /*#__PURE__*/function () {\n function JPEG(data, label) {\n var marker;\n this.data = data;\n this.label = label;\n\n if (this.data.readUInt16BE(0) !== 0xffd8) {\n throw 'SOI not found in JPEG';\n }\n\n var pos = 2;\n\n while (pos < this.data.length) {\n marker = this.data.readUInt16BE(pos);\n pos += 2;\n\n if (Array.from(MARKERS).includes(marker)) {\n break;\n }\n\n pos += this.data.readUInt16BE(pos);\n }\n\n if (!Array.from(MARKERS).includes(marker)) {\n throw 'Invalid JPEG.';\n }\n\n pos += 2;\n this.bits = this.data[pos++];\n this.height = this.data.readUInt16BE(pos);\n pos += 2;\n this.width = this.data.readUInt16BE(pos);\n pos += 2;\n var channels = this.data[pos++];\n\n this.colorSpace = function () {\n switch (channels) {\n case 1:\n return 'DeviceGray';\n\n case 3:\n return 'DeviceRGB';\n\n case 4:\n return 'DeviceCMYK';\n }\n }();\n\n this.obj = null;\n }\n\n var _proto = JPEG.prototype;\n\n _proto.embed = function embed(document) {\n if (this.obj) {\n return;\n }\n\n this.obj = document.ref({\n Type: 'XObject',\n Subtype: 'Image',\n BitsPerComponent: this.bits,\n Width: this.width,\n Height: this.height,\n ColorSpace: this.colorSpace,\n Filter: 'DCTDecode'\n }); // add extra decode params for CMYK images. By swapping the\n // min and max values from the default, we invert the colors. See\n // section 4.8.4 of the spec.\n\n if (this.colorSpace === 'DeviceCMYK') {\n this.obj.data['Decode'] = [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0];\n }\n\n this.obj.end(this.data); // free memory\n\n return this.data = null;\n };\n\n return JPEG;\n}();\n\nvar PNGImage = /*#__PURE__*/function () {\n function PNGImage(data, label) {\n this.label = label;\n this.image = new PNG(data);\n this.width = this.image.width;\n this.height = this.image.height;\n this.imgData = this.image.imgData;\n this.obj = null;\n }\n\n var _proto = PNGImage.prototype;\n\n _proto.embed = function embed(document) {\n var dataDecoded = false;\n this.document = document;\n\n if (this.obj) {\n return;\n }\n\n var hasAlphaChannel = this.image.hasAlphaChannel;\n var isInterlaced = this.image.interlaceMethod === 1;\n this.obj = this.document.ref({\n Type: 'XObject',\n Subtype: 'Image',\n BitsPerComponent: hasAlphaChannel ? 8 : this.image.bits,\n Width: this.width,\n Height: this.height,\n Filter: 'FlateDecode'\n });\n\n if (!hasAlphaChannel) {\n var params = this.document.ref({\n Predictor: isInterlaced ? 1 : 15,\n Colors: this.image.colors,\n BitsPerComponent: this.image.bits,\n Columns: this.width\n });\n this.obj.data['DecodeParms'] = params;\n params.end();\n }\n\n if (this.image.palette.length === 0) {\n this.obj.data['ColorSpace'] = this.image.colorSpace;\n } else {\n // embed the color palette in the PDF as an object stream\n var palette = this.document.ref();\n palette.end(Buffer.from(this.image.palette)); // build the color space array for the image\n\n this.obj.data['ColorSpace'] = ['Indexed', 'DeviceRGB', this.image.palette.length / 3 - 1, palette];\n } // For PNG color types 0, 2 and 3, the transparency data is stored in\n // a dedicated PNG chunk.\n\n\n if (this.image.transparency.grayscale != null) {\n // Use Color Key Masking (spec section 4.8.5)\n // An array with N elements, where N is two times the number of color components.\n var val = this.image.transparency.grayscale;\n this.obj.data['Mask'] = [val, val];\n } else if (this.image.transparency.rgb) {\n // Use Color Key Masking (spec section 4.8.5)\n // An array with N elements, where N is two times the number of color components.\n var rgb = this.image.transparency.rgb;\n var mask = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(rgb), _step; !(_step = _iterator()).done;) {\n var x = _step.value;\n mask.push(x, x);\n }\n\n this.obj.data['Mask'] = mask;\n } else if (this.image.transparency.indexed) {\n // Create a transparency SMask for the image based on the data\n // in the PLTE and tRNS sections. See below for details on SMasks.\n dataDecoded = true;\n return this.loadIndexedAlphaChannel();\n } else if (hasAlphaChannel) {\n // For PNG color types 4 and 6, the transparency data is stored as a alpha\n // channel mixed in with the main image data. Separate this data out into an\n // SMask object and store it separately in the PDF.\n dataDecoded = true;\n return this.splitAlphaChannel();\n }\n\n if (isInterlaced && !dataDecoded) {\n return this.decodeData();\n }\n\n this.finalize();\n };\n\n _proto.finalize = function finalize() {\n if (this.alphaChannel) {\n var sMask = this.document.ref({\n Type: 'XObject',\n Subtype: 'Image',\n Height: this.height,\n Width: this.width,\n BitsPerComponent: 8,\n Filter: 'FlateDecode',\n ColorSpace: 'DeviceGray',\n Decode: [0, 1]\n });\n sMask.end(this.alphaChannel);\n this.obj.data['SMask'] = sMask;\n } // add the actual image data\n\n\n this.obj.end(this.imgData); // free memory\n\n this.image = null;\n return this.imgData = null;\n };\n\n _proto.splitAlphaChannel = function splitAlphaChannel() {\n var _this = this;\n\n return this.image.decodePixels(function (pixels) {\n var a;\n var p;\n var colorCount = _this.image.colors;\n var pixelCount = _this.width * _this.height;\n var imgData = Buffer.alloc(pixelCount * colorCount);\n var alphaChannel = Buffer.alloc(pixelCount);\n var i = p = a = 0;\n var len = pixels.length; // For 16bit images copy only most significant byte (MSB) - PNG data is always stored in network byte order (MSB first)\n\n var skipByteCount = _this.image.bits === 16 ? 1 : 0;\n\n while (i < len) {\n for (var colorIndex = 0; colorIndex < colorCount; colorIndex++) {\n imgData[p++] = pixels[i++];\n i += skipByteCount;\n }\n\n alphaChannel[a++] = pixels[i++];\n i += skipByteCount;\n }\n\n _this.imgData = zlib.deflateSync(imgData);\n _this.alphaChannel = zlib.deflateSync(alphaChannel);\n return _this.finalize();\n });\n };\n\n _proto.loadIndexedAlphaChannel = function loadIndexedAlphaChannel() {\n var _this2 = this;\n\n var transparency = this.image.transparency.indexed;\n return this.image.decodePixels(function (pixels) {\n var alphaChannel = Buffer.alloc(_this2.width * _this2.height);\n var i = 0;\n\n for (var j = 0, end = pixels.length; j < end; j++) {\n alphaChannel[i++] = transparency[pixels[j]];\n }\n\n _this2.alphaChannel = zlib.deflateSync(alphaChannel);\n return _this2.finalize();\n });\n };\n\n _proto.decodeData = function decodeData() {\n var _this3 = this;\n\n this.image.decodePixels(function (pixels) {\n _this3.imgData = zlib.deflateSync(pixels);\n\n _this3.finalize();\n });\n };\n\n return PNGImage;\n}();\n\nvar PDFImage = /*#__PURE__*/function () {\n function PDFImage() {}\n\n PDFImage.open = function open(src, label) {\n var data;\n\n if (Buffer.isBuffer(src)) {\n data = src;\n } else if (src instanceof ArrayBuffer) {\n data = Buffer.from(new Uint8Array(src));\n } else {\n var match = /^data:.+;base64,(.*)$/.exec(src);\n\n if (match) {\n data = Buffer.from(match[1], 'base64');\n }\n }\n\n if (data[0] === 0xff && data[1] === 0xd8) {\n return new JPEG(data, label);\n } else if (data[0] === 0x89 && data.toString('ascii', 1, 4) === 'PNG') {\n return new PNGImage(data, label);\n } else {\n throw new Error('Unknown image format.');\n }\n };\n\n return PDFImage;\n}();\n\nvar Images = {\n initImages: function initImages() {\n this._imageRegistry = {};\n return this._imageCount = 0;\n },\n image: function image(src, x, y, options) {\n var bh, bp, bw, image, ip, left, left1;\n\n if (options == null) {\n options = {};\n }\n\n if (typeof x === 'object') {\n options = x;\n x = null;\n }\n\n x = (left = x != null ? x : options.x) != null ? left : this.x;\n y = (left1 = y != null ? y : options.y) != null ? left1 : this.y;\n\n if (typeof src === 'string') {\n image = this._imageRegistry[src];\n }\n\n if (!image) {\n if (src.width && src.height) {\n image = src;\n } else {\n image = this.openImage(src);\n }\n }\n\n if (!image.obj) {\n image.embed(this);\n }\n\n if (this.page.xobjects[image.label] == null) {\n this.page.xobjects[image.label] = image.obj;\n }\n\n var w = options.width || image.width;\n var h = options.height || image.height;\n\n if (options.width && !options.height) {\n var wp = w / image.width;\n w = image.width * wp;\n h = image.height * wp;\n } else if (options.height && !options.width) {\n var hp = h / image.height;\n w = image.width * hp;\n h = image.height * hp;\n } else if (options.scale) {\n w = image.width * options.scale;\n h = image.height * options.scale;\n } else if (options.fit) {\n var _Array$from = Array.from(options.fit);\n\n bw = _Array$from[0];\n bh = _Array$from[1];\n bp = bw / bh;\n ip = image.width / image.height;\n\n if (ip > bp) {\n w = bw;\n h = bw / ip;\n } else {\n h = bh;\n w = bh * ip;\n }\n } else if (options.cover) {\n var _Array$from2 = Array.from(options.cover);\n\n bw = _Array$from2[0];\n bh = _Array$from2[1];\n bp = bw / bh;\n ip = image.width / image.height;\n\n if (ip > bp) {\n h = bh;\n w = bh * ip;\n } else {\n w = bw;\n h = bw / ip;\n }\n }\n\n if (options.fit || options.cover) {\n if (options.align === 'center') {\n x = x + bw / 2 - w / 2;\n } else if (options.align === 'right') {\n x = x + bw - w;\n }\n\n if (options.valign === 'center') {\n y = y + bh / 2 - h / 2;\n } else if (options.valign === 'bottom') {\n y = y + bh - h;\n }\n } // create link annotations if the link option is given\n\n\n if (options.link != null) {\n this.link(x, y, w, h, options.link);\n }\n\n if (options.goTo != null) {\n this.goTo(x, y, w, h, options.goTo);\n }\n\n if (options.destination != null) {\n this.addNamedDestination(options.destination, 'XYZ', x, y, null);\n } // Set the current y position to below the image if it is in the document flow\n\n\n if (this.y === y) {\n this.y += h;\n }\n\n this.save();\n this.transform(w, 0, 0, -h, x, y + h);\n this.addContent(\"/\" + image.label + \" Do\");\n this.restore();\n return this;\n },\n openImage: function openImage(src) {\n var image;\n\n if (typeof src === 'string') {\n image = this._imageRegistry[src];\n }\n\n if (!image) {\n image = PDFImage.open(src, \"I\" + ++this._imageCount);\n\n if (typeof src === 'string') {\n this._imageRegistry[src] = image;\n }\n }\n\n return image;\n }\n};\n\nvar Annotations = {\n annotate: function annotate(x, y, w, h, options) {\n options.Type = 'Annot';\n options.Rect = this._convertRect(x, y, w, h);\n options.Border = [0, 0, 0];\n\n if (options.Subtype === 'Link' && typeof options.F === 'undefined') {\n options.F = 1 << 2; // Print Annotation Flag\n }\n\n if (options.Subtype !== 'Link') {\n if (options.C == null) {\n options.C = this._normalizeColor(options.color || [0, 0, 0]);\n }\n } // convert colors\n\n\n delete options.color;\n\n if (typeof options.Dest === 'string') {\n options.Dest = new String(options.Dest);\n } // Capitalize keys\n\n\n for (var key in options) {\n var val = options[key];\n options[key[0].toUpperCase() + key.slice(1)] = val;\n }\n\n var ref = this.ref(options);\n this.page.annotations.push(ref);\n ref.end();\n return this;\n },\n note: function note(x, y, w, h, contents, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Text';\n options.Contents = new String(contents);\n options.Name = 'Comment';\n\n if (options.color == null) {\n options.color = [243, 223, 92];\n }\n\n return this.annotate(x, y, w, h, options);\n },\n goTo: function goTo(x, y, w, h, name, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Link';\n options.A = this.ref({\n S: 'GoTo',\n D: new String(name)\n });\n options.A.end();\n return this.annotate(x, y, w, h, options);\n },\n link: function link(x, y, w, h, url, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Link';\n\n if (typeof url === 'number') {\n // Link to a page in the document (the page must already exist)\n var pages = this._root.data.Pages.data;\n\n if (url >= 0 && url < pages.Kids.length) {\n options.A = this.ref({\n S: 'GoTo',\n D: [pages.Kids[url], 'XYZ', null, null, null]\n });\n options.A.end();\n } else {\n throw new Error(\"The document has no page \" + url);\n }\n } else {\n // Link to an external url\n options.A = this.ref({\n S: 'URI',\n URI: new String(url)\n });\n options.A.end();\n }\n\n return this.annotate(x, y, w, h, options);\n },\n _markup: function _markup(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _this$_convertRect = this._convertRect(x, y, w, h),\n x1 = _this$_convertRect[0],\n y1 = _this$_convertRect[1],\n x2 = _this$_convertRect[2],\n y2 = _this$_convertRect[3];\n\n options.QuadPoints = [x1, y2, x2, y2, x1, y1, x2, y1];\n options.Contents = new String();\n return this.annotate(x, y, w, h, options);\n },\n highlight: function highlight(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Highlight';\n\n if (options.color == null) {\n options.color = [241, 238, 148];\n }\n\n return this._markup(x, y, w, h, options);\n },\n underline: function underline(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Underline';\n return this._markup(x, y, w, h, options);\n },\n strike: function strike(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'StrikeOut';\n return this._markup(x, y, w, h, options);\n },\n lineAnnotation: function lineAnnotation(x1, y1, x2, y2, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Line';\n options.Contents = new String();\n options.L = [x1, this.page.height - y1, x2, this.page.height - y2];\n return this.annotate(x1, y1, x2, y2, options);\n },\n rectAnnotation: function rectAnnotation(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Square';\n options.Contents = new String();\n return this.annotate(x, y, w, h, options);\n },\n ellipseAnnotation: function ellipseAnnotation(x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'Circle';\n options.Contents = new String();\n return this.annotate(x, y, w, h, options);\n },\n textAnnotation: function textAnnotation(x, y, w, h, text, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.Subtype = 'FreeText';\n options.Contents = new String(text);\n options.DA = new String();\n return this.annotate(x, y, w, h, options);\n },\n fileAnnotation: function fileAnnotation(x, y, w, h, file, options) {\n if (file === void 0) {\n file = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // create hidden file\n var filespec = this.file(file.src, Object.assign({\n hidden: true\n }, file));\n options.Subtype = 'FileAttachment';\n options.FS = filespec; // add description from filespec unless description (Contents) has already been set\n\n if (options.Contents) {\n options.Contents = new String(options.Contents);\n } else if (filespec.data.Desc) {\n options.Contents = filespec.data.Desc;\n }\n\n return this.annotate(x, y, w, h, options);\n },\n _convertRect: function _convertRect(x1, y1, w, h) {\n // flip y1 and y2\n var y2 = y1;\n y1 += h; // make x2\n\n var x2 = x1 + w; // apply current transformation matrix to points\n\n var _this$_ctm = this._ctm,\n m0 = _this$_ctm[0],\n m1 = _this$_ctm[1],\n m2 = _this$_ctm[2],\n m3 = _this$_ctm[3],\n m4 = _this$_ctm[4],\n m5 = _this$_ctm[5];\n x1 = m0 * x1 + m2 * y1 + m4;\n y1 = m1 * x1 + m3 * y1 + m5;\n x2 = m0 * x2 + m2 * y2 + m4;\n y2 = m1 * x2 + m3 * y2 + m5;\n return [x1, y1, x2, y2];\n }\n};\n\nvar FIELD_FLAGS = {\n readOnly: 1,\n required: 2,\n noExport: 4,\n multiline: 0x1000,\n password: 0x2000,\n toggleToOffButton: 0x4000,\n radioButton: 0x8000,\n pushButton: 0x10000,\n combo: 0x20000,\n edit: 0x40000,\n sort: 0x80000,\n multiSelect: 0x200000,\n noSpell: 0x400000\n};\nvar FIELD_JUSTIFY = {\n left: 0,\n center: 1,\n right: 2\n};\nvar VALUE_MAP = {\n value: 'V',\n defaultValue: 'DV'\n};\nvar FORMAT_SPECIAL = {\n zip: '0',\n zipPlus4: '1',\n zip4: '1',\n phone: '2',\n ssn: '3'\n};\nvar FORMAT_DEFAULT = {\n number: {\n nDec: 0,\n sepComma: false,\n negStyle: 'MinusBlack',\n currency: '',\n currencyPrepend: true\n },\n percent: {\n nDec: 0,\n sepComma: false\n }\n};\nvar AcroFormMixin = {\n /**\n * Must call if adding AcroForms to a document. Must also call font() before\n * this method to set the default font.\n */\n initForm: function initForm() {\n if (!this._font) {\n throw new Error('Must set a font before calling initForm method');\n }\n\n this._acroform = {\n fonts: {},\n defaultFont: this._font.name\n };\n this._acroform.fonts[this._font.id] = this._font.ref();\n var data = {\n Fields: [],\n NeedAppearances: true,\n DA: new String(\"/\" + this._font.id + \" 0 Tf 0 g\"),\n DR: {\n Font: {}\n }\n };\n data.DR.Font[this._font.id] = this._font.ref();\n var AcroForm = this.ref(data);\n this._root.data.AcroForm = AcroForm;\n return this;\n },\n\n /**\n * Called automatically by document.js\n */\n endAcroForm: function endAcroForm() {\n var _this = this;\n\n if (this._root.data.AcroForm) {\n if (!Object.keys(this._acroform.fonts).length && !this._acroform.defaultFont) {\n throw new Error('No fonts specified for PDF form');\n }\n\n var fontDict = this._root.data.AcroForm.data.DR.Font;\n Object.keys(this._acroform.fonts).forEach(function (name) {\n fontDict[name] = _this._acroform.fonts[name];\n });\n\n this._root.data.AcroForm.data.Fields.forEach(function (fieldRef) {\n _this._endChild(fieldRef);\n });\n\n this._root.data.AcroForm.end();\n }\n\n return this;\n },\n _endChild: function _endChild(ref) {\n var _this2 = this;\n\n if (Array.isArray(ref.data.Kids)) {\n ref.data.Kids.forEach(function (childRef) {\n _this2._endChild(childRef);\n });\n ref.end();\n }\n\n return this;\n },\n\n /**\n * Creates and adds a form field to the document. Form fields are intermediate\n * nodes in a PDF form that are used to specify form name heirarchy and form\n * value defaults.\n * @param {string} name - field name (T attribute in field dictionary)\n * @param {object} options - other attributes to include in field dictionary\n */\n formField: function formField(name, options) {\n if (options === void 0) {\n options = {};\n }\n\n var fieldDict = this._fieldDict(name, null, options);\n\n var fieldRef = this.ref(fieldDict);\n\n this._addToParent(fieldRef);\n\n return fieldRef;\n },\n\n /**\n * Creates and adds a Form Annotation to the document. Form annotations are\n * called Widget annotations internally within a PDF file.\n * @param {string} name - form field name (T attribute of widget annotation\n * dictionary)\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {object} options\n */\n formAnnotation: function formAnnotation(name, type, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n var fieldDict = this._fieldDict(name, type, options);\n\n fieldDict.Subtype = 'Widget';\n\n if (fieldDict.F === undefined) {\n fieldDict.F = 4; // print the annotation\n } // Add Field annot to page, and get it's ref\n\n\n this.annotate(x, y, w, h, fieldDict);\n var annotRef = this.page.annotations[this.page.annotations.length - 1];\n return this._addToParent(annotRef);\n },\n formText: function formText(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this.formAnnotation(name, 'text', x, y, w, h, options);\n },\n formPushButton: function formPushButton(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this.formAnnotation(name, 'pushButton', x, y, w, h, options);\n },\n formCombo: function formCombo(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this.formAnnotation(name, 'combo', x, y, w, h, options);\n },\n formList: function formList(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this.formAnnotation(name, 'list', x, y, w, h, options);\n },\n formRadioButton: function formRadioButton(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this.formAnnotation(name, 'radioButton', x, y, w, h, options);\n },\n formCheckbox: function formCheckbox(name, x, y, w, h, options) {\n if (options === void 0) {\n options = {};\n }\n\n return this.formAnnotation(name, 'checkbox', x, y, w, h, options);\n },\n _addToParent: function _addToParent(fieldRef) {\n var parent = fieldRef.data.Parent;\n\n if (parent) {\n if (!parent.data.Kids) {\n parent.data.Kids = [];\n }\n\n parent.data.Kids.push(fieldRef);\n } else {\n this._root.data.AcroForm.data.Fields.push(fieldRef);\n }\n\n return this;\n },\n _fieldDict: function _fieldDict(name, type, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!this._acroform) {\n throw new Error('Call document.initForms() method before adding form elements to document');\n }\n\n var opts = Object.assign({}, options);\n\n if (type !== null) {\n opts = this._resolveType(type, options);\n }\n\n opts = this._resolveFlags(opts);\n opts = this._resolveJustify(opts);\n opts = this._resolveFont(opts);\n opts = this._resolveStrings(opts);\n opts = this._resolveColors(opts);\n opts = this._resolveFormat(opts);\n opts.T = new String(name);\n\n if (opts.parent) {\n opts.Parent = opts.parent;\n delete opts.parent;\n }\n\n return opts;\n },\n _resolveType: function _resolveType(type, opts) {\n if (type === 'text') {\n opts.FT = 'Tx';\n } else if (type === 'pushButton') {\n opts.FT = 'Btn';\n opts.pushButton = true;\n } else if (type === 'radioButton') {\n opts.FT = 'Btn';\n opts.radioButton = true;\n } else if (type === 'checkbox') {\n opts.FT = 'Btn';\n } else if (type === 'combo') {\n opts.FT = 'Ch';\n opts.combo = true;\n } else if (type === 'list') {\n opts.FT = 'Ch';\n } else {\n throw new Error(\"Invalid form annotation type '\" + type + \"'\");\n }\n\n return opts;\n },\n _resolveFormat: function _resolveFormat(opts) {\n var f = opts.format;\n\n if (f && f.type) {\n var fnKeystroke;\n var fnFormat;\n var params = '';\n\n if (FORMAT_SPECIAL[f.type] !== undefined) {\n fnKeystroke = \"AFSpecial_Keystroke\";\n fnFormat = \"AFSpecial_Format\";\n params = FORMAT_SPECIAL[f.type];\n } else {\n var format = f.type.charAt(0).toUpperCase() + f.type.slice(1);\n fnKeystroke = \"AF\" + format + \"_Keystroke\";\n fnFormat = \"AF\" + format + \"_Format\";\n\n if (f.type === 'date') {\n fnKeystroke += 'Ex';\n params = String(f.param);\n } else if (f.type === 'time') {\n params = String(f.param);\n } else if (f.type === 'number') {\n var p = Object.assign({}, FORMAT_DEFAULT.number, f);\n params = String([String(p.nDec), p.sepComma ? '0' : '1', '\"' + p.negStyle + '\"', 'null', '\"' + p.currency + '\"', String(p.currencyPrepend)].join(','));\n } else if (f.type === 'percent') {\n var _p = Object.assign({}, FORMAT_DEFAULT.percent, f);\n\n params = String([String(_p.nDec), _p.sepComma ? '0' : '1'].join(','));\n }\n }\n\n opts.AA = opts.AA ? opts.AA : {};\n opts.AA.K = {\n S: 'JavaScript',\n JS: new String(fnKeystroke + \"(\" + params + \");\")\n };\n opts.AA.F = {\n S: 'JavaScript',\n JS: new String(fnFormat + \"(\" + params + \");\")\n };\n }\n\n delete opts.format;\n return opts;\n },\n _resolveColors: function _resolveColors(opts) {\n var color = this._normalizeColor(opts.backgroundColor);\n\n if (color) {\n if (!opts.MK) {\n opts.MK = {};\n }\n\n opts.MK.BG = color;\n }\n\n color = this._normalizeColor(opts.borderColor);\n\n if (color) {\n if (!opts.MK) {\n opts.MK = {};\n }\n\n opts.MK.BC = color;\n }\n\n delete opts.backgroundColor;\n delete opts.borderColor;\n return opts;\n },\n _resolveFlags: function _resolveFlags(options) {\n var result = 0;\n Object.keys(options).forEach(function (key) {\n if (FIELD_FLAGS[key]) {\n result |= FIELD_FLAGS[key];\n delete options[key];\n }\n });\n\n if (result !== 0) {\n options.Ff = options.Ff ? options.Ff : 0;\n options.Ff |= result;\n }\n\n return options;\n },\n _resolveJustify: function _resolveJustify(options) {\n var result = 0;\n\n if (options.align !== undefined) {\n if (typeof FIELD_JUSTIFY[options.align] === 'number') {\n result = FIELD_JUSTIFY[options.align];\n }\n\n delete options.align;\n }\n\n if (result !== 0) {\n options.Q = result; // default\n }\n\n return options;\n },\n _resolveFont: function _resolveFont(options) {\n // add current font to document-level AcroForm dict if necessary\n if (this._acroform.fonts[this._font.id] === null) {\n this._acroform.fonts[this._font.id] = this._font.ref();\n } // add current font to field's resource dict (RD) if not the default acroform font\n\n\n if (this._acroform.defaultFont !== this._font.name) {\n options.DR = {\n Font: {}\n };\n options.DR.Font[this._font.id] = this._font.ref();\n options.DA = new String(\"/\" + this._font.id + \" 0 Tf 0 g\");\n }\n\n return options;\n },\n _resolveStrings: function _resolveStrings(options) {\n var select = [];\n\n function appendChoices(a) {\n if (Array.isArray(a)) {\n for (var idx = 0; idx < a.length; idx++) {\n if (typeof a[idx] === 'string') {\n select.push(new String(a[idx]));\n } else {\n select.push(a[idx]);\n }\n }\n }\n }\n\n appendChoices(options.Opt);\n\n if (options.select) {\n appendChoices(options.select);\n delete options.select;\n }\n\n if (select.length) {\n options.Opt = select;\n }\n\n Object.keys(VALUE_MAP).forEach(function (key) {\n if (options[key] !== undefined) {\n options[VALUE_MAP[key]] = options[key];\n delete options[key];\n }\n });\n ['V', 'DV'].forEach(function (key) {\n if (typeof options[key] === 'string') {\n options[key] = new String(options[key]);\n }\n });\n\n if (options.MK && options.MK.CA) {\n options.MK.CA = new String(options.MK.CA);\n }\n\n if (options.label) {\n options.MK = options.MK ? options.MK : {};\n options.MK.CA = new String(options.label);\n delete options.label;\n }\n\n return options;\n }\n};\n\nvar Attachments = {\n /**\n * Embed contents of `src` in PDF\n * @param {Buffer | ArrayBuffer | string} src input Buffer, ArrayBuffer, base64 encoded string or path to file\n * @param {object} options\n * * options.name: filename to be shown in PDF, will use `src` if none set\n * * options.type: filetype to be shown in PDF\n * * options.description: description to be shown in PDF\n * * options.hidden: if true, do not add attachment to EmbeddedFiles dictionary. Useful for file attachment annotations\n * * options.creationDate: override creation date\n * * options.modifiedDate: override modified date\n * @returns filespec reference\n */\n file: function file(src, options) {\n if (options === void 0) {\n options = {};\n }\n\n options.name = options.name || src;\n var refBody = {\n Type: 'EmbeddedFile',\n Params: {}\n };\n var data;\n\n if (!src) {\n throw new Error('No src specified');\n }\n\n if (Buffer.isBuffer(src)) {\n data = src;\n } else if (src instanceof ArrayBuffer) {\n data = Buffer.from(new Uint8Array(src));\n } else {\n var match;\n\n if (match = /^data:(.*);base64,(.*)$/.exec(src)) {\n if (match[1]) {\n refBody.Subtype = match[1].replace('/', '#2F');\n }\n\n data = Buffer.from(match[2], 'base64');\n } else {\n throw new Error(\"Could not find file \" + src);\n }\n } // override creation date and modified date\n\n\n if (options.creationDate instanceof Date) {\n refBody.Params.CreationDate = options.creationDate;\n }\n\n if (options.modifiedDate instanceof Date) {\n refBody.Params.ModDate = options.modifiedDate;\n } // add optional subtype\n\n\n if (options.type) {\n refBody.Subtype = options.type.replace('/', '#2F');\n } // add checksum and size information\n\n\n var checksum = CryptoJS.MD5(CryptoJS.lib.WordArray.create(new Uint8Array(data)));\n refBody.Params.CheckSum = new String(checksum);\n refBody.Params.Size = data.byteLength; // save some space when embedding the same file again\n // if a file with the same name and metadata exists, reuse its reference\n\n var ref;\n if (!this._fileRegistry) this._fileRegistry = {};\n var file = this._fileRegistry[options.name];\n\n if (file && isEqual(refBody, file)) {\n ref = file.ref;\n } else {\n ref = this.ref(refBody);\n ref.end(data);\n this._fileRegistry[options.name] = _extends({}, refBody, {\n ref: ref\n });\n } // add filespec for embedded file\n\n\n var fileSpecBody = {\n Type: 'Filespec',\n F: new String(options.name),\n EF: {\n F: ref\n },\n UF: new String(options.name)\n };\n\n if (options.description) {\n fileSpecBody.Desc = new String(options.description);\n }\n\n var filespec = this.ref(fileSpecBody);\n filespec.end();\n\n if (!options.hidden) {\n this.addNamedEmbeddedFile(options.name, filespec);\n }\n\n return filespec;\n }\n};\n/** check two embedded file metadata objects for equality */\n\nfunction isEqual(a, b) {\n if (a.Subtype !== b.Subtype || a.Params.CheckSum.toString() !== b.Params.CheckSum.toString() || a.Params.Size !== b.Params.Size || a.Params.CreationDate !== b.Params.CreationDate || a.Params.ModDate !== b.Params.ModDate) {\n return false;\n }\n\n return true;\n}\n\nvar PDFDocument = /*#__PURE__*/function (_stream$Readable) {\n _inheritsLoose(PDFDocument, _stream$Readable);\n\n function PDFDocument(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _stream$Readable.call(this) || this;\n _this.options = options; // PDF version\n\n switch (options.pdfVersion) {\n case '1.4':\n _this.version = 1.4;\n break;\n\n case '1.5':\n _this.version = 1.5;\n break;\n\n case '1.6':\n _this.version = 1.6;\n break;\n\n case '1.7':\n case '1.7ext3':\n _this.version = 1.7;\n break;\n\n default:\n _this.version = 1.3;\n break;\n } // Whether streams should be compressed\n\n\n _this.compress = _this.options.compress != null ? _this.options.compress : true;\n _this._pageBuffer = [];\n _this._pageBufferStart = 0; // The PDF object store\n\n _this._offsets = [];\n _this._waiting = 0;\n _this._ended = false;\n _this._offset = 0;\n\n var Pages = _this.ref({\n Type: 'Pages',\n Count: 0,\n Kids: []\n });\n\n var Names = _this.ref({\n Dests: new PDFNameTree()\n });\n\n _this._root = _this.ref({\n Type: 'Catalog',\n Pages: Pages,\n Names: Names\n });\n\n if (_this.options.lang) {\n _this._root.data.Lang = new String(_this.options.lang);\n } // The current page\n\n\n _this.page = null; // Initialize mixins\n\n _this.initColor();\n\n _this.initVector();\n\n _this.initFonts();\n\n _this.initText();\n\n _this.initImages(); // Initialize the metadata\n\n\n _this.info = {\n Producer: 'PDFKit',\n Creator: 'PDFKit',\n CreationDate: new Date()\n };\n\n if (_this.options.info) {\n for (var key in _this.options.info) {\n var val = _this.options.info[key];\n _this.info[key] = val;\n }\n }\n\n if (_this.options.displayTitle) {\n _this._root.data.ViewerPreferences = _this.ref({\n DisplayDocTitle: true\n });\n } // Write the header PDF version\n\n\n _this._write(\"%PDF-\" + _this.version); // 4 binary chars, as recommended by the spec\n\n\n _this._write('%\\xFF\\xFF\\xFF\\xFF'); // Add the first page\n\n\n if (_this.options.autoFirstPage !== false) {\n _this.addPage();\n }\n\n return _this;\n }\n\n var _proto = PDFDocument.prototype;\n\n _proto.addPage = function addPage(options) {\n // end the current page if needed\n if (options == null) {\n options = this.options;\n }\n\n if (!this.options.bufferPages) {\n this.flushPages();\n } // create a page object\n\n\n this.page = new PDFPage(this, options);\n\n this._pageBuffer.push(this.page); // add the page to the object store\n\n\n var pages = this._root.data.Pages.data;\n pages.Kids.push(this.page.dictionary);\n pages.Count++; // flip PDF coordinate system so that the origin is in\n // the top left rather than the bottom left\n\n this._ctm = [1, 0, 0, 1, 0, 0];\n this.transform(1, 0, 0, -1, 0, this.page.height);\n return this;\n };\n\n _proto.flushPages = function flushPages() {\n // this local variable exists so we're future-proof against\n // reentrant calls to flushPages.\n var pages = this._pageBuffer;\n this._pageBuffer = [];\n this._pageBufferStart += pages.length;\n\n for (var _i = 0, _Array$from = Array.from(pages); _i < _Array$from.length; _i++) {\n var page = _Array$from[_i];\n page.end();\n }\n };\n\n _proto.addNamedDestination = function addNamedDestination(name) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (args.length === 0) {\n args = ['XYZ', null, null, null];\n }\n\n if (args[0] === 'XYZ' && args[2] !== null) {\n args[2] = this.page.height - args[2];\n }\n\n args.unshift(this.page.dictionary);\n\n this._root.data.Names.data.Dests.add(name, args);\n };\n\n _proto.addNamedEmbeddedFile = function addNamedEmbeddedFile(name, ref) {\n if (!this._root.data.Names.data.EmbeddedFiles) {\n // disabling /Limits for this tree fixes attachments not showing in Adobe Reader\n this._root.data.Names.data.EmbeddedFiles = new PDFNameTree({\n limits: false\n });\n } // add filespec to EmbeddedFiles\n\n\n this._root.data.Names.data.EmbeddedFiles.add(name, ref);\n };\n\n _proto.addNamedJavaScript = function addNamedJavaScript(name, js) {\n if (!this._root.data.Names.data.JavaScript) {\n this._root.data.Names.data.JavaScript = new PDFNameTree();\n }\n\n var data = {\n JS: new String(js),\n S: 'JavaScript'\n };\n\n this._root.data.Names.data.JavaScript.add(name, data);\n };\n\n _proto.ref = function ref(data) {\n var ref = new PDFReference(this, this._offsets.length + 1, data);\n\n this._offsets.push(null); // placeholder for this object's offset once it is finalized\n\n\n this._waiting++;\n return ref;\n };\n\n _proto._read = function _read() {// do nothing, but this method is required by node\n };\n\n _proto._write = function _write(data) {\n if (!Buffer.isBuffer(data)) {\n data = Buffer.from(data + '\\n', 'binary');\n }\n\n this.push(data);\n return this._offset += data.length;\n };\n\n _proto.addContent = function addContent(data) {\n this.page.write(data);\n return this;\n };\n\n _proto._refEnd = function _refEnd(ref) {\n this._offsets[ref.id - 1] = ref.offset;\n\n if (--this._waiting === 0 && this._ended) {\n this._finalize();\n\n return this._ended = false;\n }\n };\n\n _proto.end = function end() {\n this.flushPages();\n this._info = this.ref();\n\n for (var key in this.info) {\n var val = this.info[key];\n\n if (typeof val === 'string') {\n val = new String(val);\n }\n\n var entry = this.ref(val);\n entry.end();\n this._info.data[key] = entry;\n }\n\n this._info.end();\n\n for (var name in this._fontFamilies) {\n var font = this._fontFamilies[name];\n font.finalize();\n }\n\n this._root.end();\n\n this._root.data.Pages.end();\n\n this._root.data.Names.end();\n\n this.endAcroForm();\n\n if (this._root.data.ViewerPreferences) {\n this._root.data.ViewerPreferences.end();\n }\n\n if (this._waiting === 0) {\n return this._finalize();\n } else {\n return this._ended = true;\n }\n };\n\n _proto._finalize = function _finalize(fn) {\n // generate xref\n var xRefOffset = this._offset;\n\n this._write('xref');\n\n this._write(\"0 \" + (this._offsets.length + 1));\n\n this._write('0000000000 65535 f ');\n\n for (var _i2 = 0, _Array$from2 = Array.from(this._offsets); _i2 < _Array$from2.length; _i2++) {\n var offset = _Array$from2[_i2];\n offset = (\"0000000000\" + offset).slice(-10);\n\n this._write(offset + ' 00000 n ');\n } // trailer\n\n\n this._write('trailer');\n\n this._write(PDFObject.convert({\n Size: this._offsets.length + 1,\n Root: this._root,\n Info: this._info\n }));\n\n this._write('startxref');\n\n this._write(\"\" + xRefOffset);\n\n this._write('%%EOF'); // end the stream\n\n\n return this.push(null);\n };\n\n _proto.toString = function toString() {\n return '[object PDFDocument]';\n };\n\n return PDFDocument;\n}(stream.Readable);\n\nvar mixin = function mixin(methods) {\n return function () {\n var result = [];\n\n for (var name in methods) {\n var method = methods[name];\n result.push(PDFDocument.prototype[name] = method);\n }\n\n return result;\n }();\n}; // Load mixins\n\n\nmixin(Color);\nmixin(Vector);\nmixin(Fonts);\nmixin(Text);\nmixin(Images);\nmixin(Annotations);\nmixin(AcroFormMixin);\nmixin(Attachments);\n\nexport default PDFDocument;\nexport { EmbeddedFont, PDFFont, StandardFont };\n","import zlib from 'zlib';\n\nvar PNG = /*#__PURE__*/function () {\n PNG.decode = function decode(path, fn) {\n {\n throw new Error('PNG.decode not available in browser build');\n }\n };\n\n PNG.load = function load(path) {\n {\n throw new Error('PNG.load not available in browser build');\n }\n };\n\n function PNG(data) {\n var i;\n this.data = data;\n this.pos = 8; // Skip the default header\n\n this.palette = [];\n this.imgData = [];\n this.transparency = {};\n this.text = {};\n\n while (true) {\n var chunkSize = this.readUInt32();\n var section = '';\n\n for (i = 0; i < 4; i++) {\n section += String.fromCharCode(this.data[this.pos++]);\n }\n\n switch (section) {\n case 'IHDR':\n // we can grab interesting values from here (like width, height, etc)\n this.width = this.readUInt32();\n this.height = this.readUInt32();\n this.bits = this.data[this.pos++];\n this.colorType = this.data[this.pos++];\n this.compressionMethod = this.data[this.pos++];\n this.filterMethod = this.data[this.pos++];\n this.interlaceMethod = this.data[this.pos++];\n break;\n\n case 'PLTE':\n this.palette = this.read(chunkSize);\n break;\n\n case 'IDAT':\n for (i = 0; i < chunkSize; i++) {\n this.imgData.push(this.data[this.pos++]);\n }\n\n break;\n\n case 'tRNS':\n // This chunk can only occur once and it must occur after the\n // PLTE chunk and before the IDAT chunk.\n this.transparency = {};\n\n switch (this.colorType) {\n case 3:\n // Indexed color, RGB. Each byte in this chunk is an alpha for\n // the palette index in the PLTE (\"palette\") chunk up until the\n // last non-opaque entry. Set up an array, stretching over all\n // palette entries which will be 0 (opaque) or 1 (transparent).\n this.transparency.indexed = this.read(chunkSize);\n var short = 255 - this.transparency.indexed.length;\n\n if (short > 0) {\n for (i = 0; i < short; i++) {\n this.transparency.indexed.push(255);\n }\n }\n\n break;\n\n case 0:\n // Greyscale. Corresponding to entries in the PLTE chunk.\n // Grey is two bytes, range 0 .. (2 ^ bit-depth) - 1\n this.transparency.grayscale = this.read(chunkSize)[0];\n break;\n\n case 2:\n // True color with proper alpha channel.\n this.transparency.rgb = this.read(chunkSize);\n break;\n }\n\n break;\n\n case 'tEXt':\n var text = this.read(chunkSize);\n var index = text.indexOf(0);\n var key = String.fromCharCode.apply(String, text.slice(0, index));\n this.text[key] = String.fromCharCode.apply(String, text.slice(index + 1));\n break;\n\n case 'IEND':\n // we've got everything we need!\n switch (this.colorType) {\n case 0:\n case 3:\n case 4:\n this.colors = 1;\n break;\n\n case 2:\n case 6:\n this.colors = 3;\n break;\n }\n\n this.hasAlphaChannel = [4, 6].includes(this.colorType);\n var colors = this.colors + (this.hasAlphaChannel ? 1 : 0);\n this.pixelBitlength = this.bits * colors;\n\n switch (this.colors) {\n case 1:\n this.colorSpace = 'DeviceGray';\n break;\n\n case 3:\n this.colorSpace = 'DeviceRGB';\n break;\n }\n\n this.imgData = Buffer.from(this.imgData);\n return;\n\n default:\n // unknown (or unimportant) section, skip it\n this.pos += chunkSize;\n }\n\n this.pos += 4; // Skip the CRC\n\n if (this.pos > this.data.length) {\n throw new Error('Incomplete or corrupt PNG file');\n }\n }\n }\n\n var _proto = PNG.prototype;\n\n _proto.read = function read(bytes) {\n var result = new Array(bytes);\n\n for (var i = 0; i < bytes; i++) {\n result[i] = this.data[this.pos++];\n }\n\n return result;\n };\n\n _proto.readUInt32 = function readUInt32() {\n var b1 = this.data[this.pos++] << 24;\n var b2 = this.data[this.pos++] << 16;\n var b3 = this.data[this.pos++] << 8;\n var b4 = this.data[this.pos++];\n return b1 | b2 | b3 | b4;\n };\n\n _proto.readUInt16 = function readUInt16() {\n var b1 = this.data[this.pos++] << 8;\n var b2 = this.data[this.pos++];\n return b1 | b2;\n };\n\n _proto.decodePixels = function decodePixels(fn) {\n var _this = this;\n\n return zlib.inflate(this.imgData, function (err, data) {\n if (err) throw err;\n var pos = 0;\n var width = _this.width,\n height = _this.height;\n var pixelBytes = _this.pixelBitlength / 8;\n var pixels = Buffer.alloc(width * height * pixelBytes);\n\n function pass(x0, y0, dx, dy, singlePass) {\n if (singlePass === void 0) {\n singlePass = false;\n }\n\n var w = Math.ceil((width - x0) / dx);\n var h = Math.ceil((height - y0) / dy);\n var scanlineLength = pixelBytes * w;\n var buffer = singlePass ? pixels : Buffer.alloc(scanlineLength * h);\n var row = 0;\n var c = 0;\n\n while (row < h && pos < data.length) {\n var byte;\n var col;\n var i;\n var left;\n var upper;\n\n switch (data[pos++]) {\n case 0:\n // None\n for (i = 0; i < scanlineLength; i++) {\n buffer[c++] = data[pos++];\n }\n\n break;\n\n case 1:\n // Sub\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n buffer[c++] = (byte + left) % 256;\n }\n\n break;\n\n case 2:\n // Up\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n buffer[c++] = (upper + byte) % 256;\n }\n\n break;\n\n case 3:\n // Average\n for (i = 0; i < scanlineLength; i++) {\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n upper = row && buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n buffer[c++] = (byte + Math.floor((left + upper) / 2)) % 256;\n }\n\n break;\n\n case 4:\n // Paeth\n for (i = 0; i < scanlineLength; i++) {\n var paeth;\n var upperLeft;\n byte = data[pos++];\n col = (i - i % pixelBytes) / pixelBytes;\n left = i < pixelBytes ? 0 : buffer[c - pixelBytes];\n\n if (row === 0) {\n upper = upperLeft = 0;\n } else {\n upper = buffer[(row - 1) * scanlineLength + col * pixelBytes + i % pixelBytes];\n upperLeft = col && buffer[(row - 1) * scanlineLength + (col - 1) * pixelBytes + i % pixelBytes];\n }\n\n var p = left + upper - upperLeft;\n var pa = Math.abs(p - left);\n var pb = Math.abs(p - upper);\n var pc = Math.abs(p - upperLeft);\n\n if (pa <= pb && pa <= pc) {\n paeth = left;\n } else if (pb <= pc) {\n paeth = upper;\n } else {\n paeth = upperLeft;\n }\n\n buffer[c++] = (byte + paeth) % 256;\n }\n\n break;\n\n default:\n throw new Error(\"Invalid filter algorithm: \" + data[pos - 1]);\n }\n\n if (!singlePass) {\n var pixelsPos = ((y0 + row * dy) * width + x0) * pixelBytes;\n var bufferPos = row * scanlineLength;\n\n for (i = 0; i < w; i++) {\n for (var j = 0; j < pixelBytes; j++) {\n pixels[pixelsPos++] = buffer[bufferPos++];\n }\n\n pixelsPos += (dx - 1) * pixelBytes;\n }\n }\n\n row++;\n }\n }\n\n if (_this.interlaceMethod === 1) {\n /*\n 1 6 4 6 2 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n 3 6 4 6 3 6 4 6\n 7 7 7 7 7 7 7 7\n 5 6 5 6 5 6 5 6\n 7 7 7 7 7 7 7 7\n */\n pass(0, 0, 8, 8); // 1\n\n pass(4, 0, 8, 8); // 2\n\n pass(0, 4, 4, 8); // 3\n\n pass(2, 0, 4, 4); // 4\n\n pass(0, 2, 2, 4); // 5\n\n pass(1, 0, 2, 2); // 6\n\n pass(0, 1, 1, 2); // 7\n } else {\n pass(0, 0, 1, 1, true);\n }\n\n return fn(pixels);\n });\n };\n\n _proto.decodePalette = function decodePalette() {\n var palette = this.palette;\n var length = palette.length;\n var transparency = this.transparency.indexed || [];\n var ret = Buffer.alloc(transparency.length + length);\n var pos = 0;\n var c = 0;\n\n for (var i = 0; i < length; i += 3) {\n var left;\n ret[pos++] = palette[i];\n ret[pos++] = palette[i + 1];\n ret[pos++] = palette[i + 2];\n ret[pos++] = (left = transparency[c++]) != null ? left : 255;\n }\n\n return ret;\n };\n\n _proto.copyToImageData = function copyToImageData(imageData, pixels) {\n var j;\n var k;\n var colors = this.colors;\n var palette = null;\n var alpha = this.hasAlphaChannel;\n\n if (this.palette.length) {\n palette = this._decodedPalette || (this._decodedPalette = this.decodePalette());\n colors = 4;\n alpha = true;\n }\n\n var data = imageData.data || imageData;\n var length = data.length;\n var input = palette || pixels;\n var i = j = 0;\n\n if (colors === 1) {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n var v = input[k++];\n data[i++] = v;\n data[i++] = v;\n data[i++] = v;\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n } else {\n while (i < length) {\n k = palette ? pixels[i / 4] * 4 : j;\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = input[k++];\n data[i++] = alpha ? input[k++] : 255;\n j = k;\n }\n }\n };\n\n _proto.decode = function decode(fn) {\n var _this2 = this;\n\n var ret = Buffer.alloc(this.width * this.height * 4);\n return this.decodePixels(function (pixels) {\n _this2.copyToImageData(ret, pixels);\n\n return fn(ret);\n });\n };\n\n return PNG;\n}();\n\nexport default PNG;\n","exports.G = 'G';\nexports.Svg = 'SVG';\nexports.View = 'VIEW';\nexports.Text = 'TEXT';\nexports.Link = 'LINK';\nexports.Page = 'PAGE';\nexports.Note = 'NOTE';\nexports.Path = 'PATH';\nexports.Rect = 'RECT';\nexports.Line = 'LINE';\nexports.Stop = 'STOP';\nexports.Defs = 'DEFS';\nexports.Image = 'IMAGE';\nexports.Tspan = 'TSPAN';\nexports.Canvas = 'CANVAS';\nexports.Circle = 'CIRCLE';\nexports.Ellipse = 'ELLIPSE';\nexports.Polygon = 'POLYGON';\nexports.Document = 'DOCUMENT';\nexports.Polyline = 'POLYLINE';\nexports.ClipPath = 'CLIP_PATH';\nexports.TextInstance = 'TEXT_INSTANCE';\nexports.LinearGradient = 'LINEAR_GRADIENT';\nexports.RadialGradient = 'RADIAL_GRADIENT';\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _renderNode = _interopRequireDefault(require(\"./primitives/renderNode\"));\n\nvar _addMetadata = _interopRequireDefault(require(\"./operations/addMetadata\"));\n\nvar renderDocument = function renderDocument(ctx) {\n return R.compose(R.forEach((0, _renderNode.default)(ctx)), R.pathOr([], ['children']));\n};\n\nvar render = function render(ctx, doc) {\n (0, _addMetadata.default)(ctx)(doc);\n renderDocument(ctx)(doc);\n ctx.end();\n return ctx;\n};\n\nvar _default = render;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/* eslint-disable no-param-reassign */\nvar getDocumentProp = function getDocumentProp(target) {\n return function (or, prop) {\n return R.pathOr(or, ['props', prop], target);\n };\n};\n\nvar setPDFMetadata = function setPDFMetadata(target) {\n return function (key, value) {\n if (value) target.info[key] = value;\n };\n};\n/**\n * Set document instance metadata\n *\n * @param {Object} ctx document instance\n * @param {Object} doc document root\n */\n\n\nvar addMetadata = function addMetadata(ctx, doc) {\n var getProp = getDocumentProp(doc);\n var setProp = setPDFMetadata(ctx);\n var title = getProp(null, 'title');\n var author = getProp(null, 'author');\n var subject = getProp(null, 'subject');\n var keywords = getProp(null, 'keywords');\n var creator = getProp('react-pdf', 'creator');\n var producer = getProp('react-pdf', 'producer');\n setProp('Title', title);\n setProp('Author', author);\n setProp('Subject', subject);\n setProp('Keywords', keywords);\n setProp('Creator', creator);\n setProp('Producer', producer);\n return doc;\n};\n\nvar _default = R.curryN(2, addMetadata);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n// This constant is used to approximate a symmetrical arc using a cubic\n// Bezier curve.\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n\nvar clipNode = function clipNode(ctx, node) {\n if (!node.style) return node;\n var _node$box = node.box,\n top = _node$box.top,\n left = _node$box.left,\n width = _node$box.width,\n height = _node$box.height;\n var _node$style = node.style,\n _node$style$borderTop = _node$style.borderTopLeftRadius,\n borderTopLeftRadius = _node$style$borderTop === void 0 ? 0 : _node$style$borderTop,\n _node$style$borderTop2 = _node$style.borderTopRightRadius,\n borderTopRightRadius = _node$style$borderTop2 === void 0 ? 0 : _node$style$borderTop2,\n _node$style$borderBot = _node$style.borderBottomRightRadius,\n borderBottomRightRadius = _node$style$borderBot === void 0 ? 0 : _node$style$borderBot,\n _node$style$borderBot2 = _node$style.borderBottomLeftRadius,\n borderBottomLeftRadius = _node$style$borderBot2 === void 0 ? 0 : _node$style$borderBot2; // Border top\n\n var rtr = Math.min(borderTopRightRadius, 0.5 * width, 0.5 * height);\n var ctr = rtr * (1.0 - KAPPA);\n ctx.moveTo(left + rtr, top);\n ctx.lineTo(left + width - rtr, top);\n ctx.bezierCurveTo(left + width - ctr, top, left + width, top + ctr, left + width, top + rtr); // Border right\n\n var rbr = Math.min(borderBottomRightRadius, 0.5 * width, 0.5 * height);\n var cbr = rbr * (1.0 - KAPPA);\n ctx.lineTo(left + width, top + height - rbr);\n ctx.bezierCurveTo(left + width, top + height - cbr, left + width - cbr, top + height, left + width - rbr, top + height); // Border bottom\n\n var rbl = Math.min(borderBottomLeftRadius, 0.5 * width, 0.5 * height);\n var cbl = rbl * (1.0 - KAPPA);\n ctx.lineTo(left + rbl, top + height);\n ctx.bezierCurveTo(left + cbl, top + height, left, top + height - cbl, left, top + height - rbl); // Border left\n\n var rtl = Math.min(borderTopLeftRadius, 0.5 * width, 0.5 * height);\n var ctl = rtl * (1.0 - KAPPA);\n ctx.lineTo(left, top + rtl);\n ctx.bezierCurveTo(left, top + ctl, left + ctl, top, left + rtl, top);\n ctx.closePath();\n ctx.clip();\n return node;\n};\n\nvar _default = R.curryN(2, clipNode);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar restore = function restore(ctx, node) {\n ctx.restore();\n return node;\n};\n\nvar _default = R.curryN(2, restore);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar save = function save(ctx, node) {\n ctx.save();\n return node;\n};\n\nvar _default = R.curryN(2, save);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar setDestination = function setDestination(ctx, node) {\n var _node$props;\n\n if ((_node$props = node.props) !== null && _node$props !== void 0 && _node$props.id) {\n ctx.addNamedDestination(node.props.id, 'XYZ', null, node.box.top, null);\n }\n\n return node;\n};\n\nvar _default = R.curryN(2, setDestination);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n// import { getURL } from '../utils/url';\nvar DEST_REGEXP = /^#.+/;\nvar isSrcId = R.test(DEST_REGEXP);\n\nvar getSource = function getSource(node) {\n var props = node.props || {};\n return props.src || props.href;\n};\n\nvar setLink = function setLink(ctx, node) {\n var _node$box = node.box,\n top = _node$box.top,\n left = _node$box.left,\n width = _node$box.width,\n height = _node$box.height;\n var src = getSource(node);\n\n if (src) {\n var isId = isSrcId(src);\n var method = isId ? 'goTo' : 'link';\n var value = isId ? src.slice(1) : src;\n ctx[method](left, top, width, height, value);\n }\n\n return node;\n};\n\nvar _default = R.curryN(2, setLink);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n// TODO: Implement using only matrices to support skew and even more operations than css.\nvar getRotation = function getRotation(transform) {\n var match = /rotate\\((-?\\d+(.\\d+)?)(.+)\\)/g.exec(transform);\n\n if (match && match[1] && match[3]) {\n var value = match[1];\n return match[3] === 'rad' ? value * 180 / Math.PI : value;\n }\n\n return 0;\n};\n\nvar getTranslateX = function getTranslateX(transform) {\n var matchX = /translateX\\((-?\\d+\\.?d*)\\)/g.exec(transform);\n var matchGeneric = /translate\\((-?\\d+\\.?d*).*(,|\\s)\\s*(-?\\d+\\.?d*).*\\)/g.exec(transform);\n if (matchX && matchX[1]) return matchX[1];\n if (matchGeneric && matchGeneric[1]) return matchGeneric[1];\n return 0;\n};\n\nvar getTranslateY = function getTranslateY(transform) {\n var matchY = /translateY\\((-?\\d+\\.?\\d*)\\)/g.exec(transform);\n var matchGeneric = /translate\\((-?\\d+\\.?\\d*).*(,|\\s)\\s*(-?\\d+\\.?\\d*).*\\)/g.exec(transform);\n if (matchY && matchY[1]) return matchY[1];\n if (matchGeneric && matchGeneric[3]) return matchGeneric[3];\n return 0;\n};\n\nvar getScaleX = function getScaleX(transform) {\n var matchX = /scaleX\\((-?\\d+\\.?\\d*)\\)/g.exec(transform);\n var matchGeneric = /scale\\((-?\\d+\\.?\\d*).*,?\\s*(-?\\d+\\.?\\d*).*\\)/g.exec(transform);\n if (matchX && matchX[1]) return matchX[1];\n if (matchGeneric && matchGeneric[1]) return matchGeneric[1];\n return 1;\n};\n\nvar getScaleY = function getScaleY(transform) {\n var matchY = /scaleY\\((-?\\d+\\.?\\d*)\\)/g.exec(transform);\n var matchGeneric = /scale\\((-?\\d+\\.?\\d*).*,?\\s*(-?\\d+\\.?\\d*).*\\)/g.exec(transform);\n if (matchY && matchY[1]) return matchY[1];\n if (matchGeneric && matchGeneric[2]) return matchGeneric[2];\n return 1;\n};\n\nvar getMatrix = function getMatrix(transform) {\n var match = /matrix\\(([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)\\)/g.exec(transform);\n if (match) return match.slice(1, 7);\n return null;\n};\n\nvar applySingleTransformation = function applySingleTransformation(ctx, transform, origin) {\n if (/rotate/g.test(transform)) {\n ctx.rotate(getRotation(transform), {\n origin: origin\n });\n } else if (/scaleX/g.test(transform)) {\n ctx.scale(getScaleX(transform), 1, {\n origin: origin\n });\n } else if (/scaleY/g.test(transform)) {\n ctx.scale(1, getScaleY(transform), {\n origin: origin\n });\n } else if (/scale/g.test(transform)) {\n ctx.scale(getScaleX(transform), getScaleY(transform), {\n origin: origin\n });\n } else if (/translateX/g.test(transform)) {\n ctx.translate(getTranslateX(transform), 1, {\n origin: origin\n });\n } else if (/translateY/g.test(transform)) {\n ctx.translate(1, getTranslateY(transform), {\n origin: origin\n });\n } else if (/translate/g.test(transform)) {\n ctx.translate(getTranslateX(transform), getTranslateY(transform), {\n origin: origin\n });\n } else if (/matrix/g.test(transform)) {\n ctx.transform.apply(ctx, getMatrix(transform));\n }\n};\n\nvar applyTransformations = function applyTransformations(ctx, node) {\n if (!node.origin) return node;\n var match;\n var re = /[a-zA-Z]+\\([^)]+\\)/g;\n var origin = [node.origin.left, node.origin.top];\n var transform = node.style && node.style.transform || node.props && node.props.transform || '';\n\n while ((match = re.exec(transform)) != null) {\n applySingleTransformation(ctx, match[0], origin);\n }\n\n return node;\n};\n\nvar _default = R.curryN(2, applyTransformations);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _colorString = _interopRequireDefault(require(\"color-string\"));\n\nvar _save = _interopRequireDefault(require(\"../operations/save\"));\n\nvar _restore = _interopRequireDefault(require(\"../operations/restore\"));\n\nvar _clipNode = _interopRequireDefault(require(\"../operations/clipNode\"));\n\nvar parseColor = function parseColor(hex) {\n var parsed = _colorString.default.get(hex);\n\n var value = _colorString.default.to.hex(parsed.value.slice(0, 3));\n\n var opacity = parsed.value[3];\n return {\n value: value,\n opacity: opacity\n };\n};\n\nvar drawBackground = function drawBackground(ctx, node) {\n if (node.box && node.style.backgroundColor) {\n var _node$style;\n\n var _node$box = node.box,\n top = _node$box.top,\n left = _node$box.left,\n width = _node$box.width,\n height = _node$box.height;\n var color = parseColor(node.style.backgroundColor);\n var opacity = R.defaultTo(color.opacity, (_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.opacity);\n ctx.fillOpacity(opacity).fillColor(color.value).rect(left, top, width, height).fill();\n }\n\n return node;\n};\n\nvar renderBackground = function renderBackground(ctx, node) {\n var _node$style2;\n\n var hasBackground = !!node.box && !!((_node$style2 = node.style) !== null && _node$style2 !== void 0 && _node$style2.backgroundColor);\n\n if (hasBackground) {\n (0, _save.default)(ctx, node);\n (0, _clipNode.default)(ctx, node);\n drawBackground(ctx, node);\n (0, _restore.default)(ctx, node);\n }\n\n return node;\n};\n\nvar _default = R.curryN(2, renderBackground);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n// Ref: https://www.w3.org/TR/css-backgrounds-3/#borders\n// This constant is used to approximate a symmetrical arc using a cubic Bezier curve.\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n\nvar clipBorderTop = function clipBorderTop(ctx, layout, style, rtr, rtl) {\n var top = layout.top,\n left = layout.left,\n width = layout.width,\n height = layout.height;\n var borderTopWidth = style.borderTopWidth,\n borderRightWidth = style.borderRightWidth,\n borderLeftWidth = style.borderLeftWidth; // Clip outer top border edge\n\n ctx.moveTo(left + rtl, top);\n ctx.lineTo(left + width - rtr, top); // Ellipse coefficients outer top right cap\n\n var c0 = rtr * (1.0 - KAPPA); // Clip outer top right cap\n\n ctx.bezierCurveTo(left + width - c0, top, left + width, top + c0, left + width, top + rtr); // Move down in case the margin exceedes the radius\n\n var topRightYCoord = top + Math.max(borderTopWidth, rtr);\n ctx.lineTo(left + width, topRightYCoord); // Clip inner top right cap\n\n ctx.lineTo(left + width - borderRightWidth, topRightYCoord); // Ellipse coefficients inner top right cap\n\n var innerTopRightRadiusX = Math.max(rtr - borderRightWidth, 0);\n var innerTopRightRadiusY = Math.max(rtr - borderTopWidth, 0);\n var c1 = innerTopRightRadiusX * (1.0 - KAPPA);\n var c2 = innerTopRightRadiusY * (1.0 - KAPPA); // Clip inner top right cap\n\n ctx.bezierCurveTo(left + width - borderRightWidth, top + borderTopWidth + c2, left + width - borderRightWidth - c1, top + borderTopWidth, left + width - borderRightWidth - innerTopRightRadiusX, top + borderTopWidth); // Clip inner top border edge\n\n ctx.lineTo(left + Math.max(rtl, borderLeftWidth), top + borderTopWidth); // Ellipse coefficients inner top left cap\n\n var innerTopLeftRadiusX = Math.max(rtl - borderLeftWidth, 0);\n var innerTopLeftRadiusY = Math.max(rtl - borderTopWidth, 0);\n var c3 = innerTopLeftRadiusX * (1.0 - KAPPA);\n var c4 = innerTopLeftRadiusY * (1.0 - KAPPA);\n var topLeftYCoord = top + Math.max(borderTopWidth, rtl); // Clip inner top left cap\n\n ctx.bezierCurveTo(left + borderLeftWidth + c3, top + borderTopWidth, left + borderLeftWidth, top + borderTopWidth + c4, left + borderLeftWidth, topLeftYCoord);\n ctx.lineTo(left, topLeftYCoord); // Move down in case the margin exceedes the radius\n\n ctx.lineTo(left, top + rtl); // Ellipse coefficients outer top left cap\n\n var c5 = rtl * (1.0 - KAPPA); // Clip outer top left cap\n\n ctx.bezierCurveTo(left, top + c5, left + c5, top, left + rtl, top);\n ctx.closePath();\n ctx.clip(); // Clip border top cap joins\n\n if (borderRightWidth) {\n var trSlope = -borderTopWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left, top);\n ctx.lineTo(left, top + height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (borderLeftWidth) {\n var _trSlope = -borderTopWidth / borderLeftWidth;\n\n ctx.moveTo(left + width / 2, _trSlope * (-width / 2) + top);\n ctx.lineTo(left, top);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left + width, top + height);\n ctx.closePath();\n ctx.clip();\n }\n};\n\nvar fillBorderTop = function fillBorderTop(ctx, layout, style, rtr, rtl) {\n var top = layout.top,\n left = layout.left,\n width = layout.width;\n var borderTopColor = style.borderTopColor,\n borderTopWidth = style.borderTopWidth,\n borderTopStyle = style.borderTopStyle,\n borderRightWidth = style.borderRightWidth,\n borderLeftWidth = style.borderLeftWidth;\n var c0 = rtl * (1.0 - KAPPA);\n var c1 = rtr * (1.0 - KAPPA);\n ctx.moveTo(left, top + Math.max(rtl, borderTopWidth));\n ctx.bezierCurveTo(left, top + c0, left + c0, top, left + rtl, top);\n ctx.lineTo(left + width - rtr, top);\n ctx.bezierCurveTo(left + width - c1, top, left + width, top + c1, left + width, top + rtr);\n ctx.strokeColor(borderTopColor);\n ctx.lineWidth(Math.max(borderRightWidth, borderTopWidth, borderLeftWidth) * 2);\n\n if (borderTopStyle === 'dashed') {\n ctx.dash(borderTopWidth * 2, {\n space: borderTopWidth * 1.2\n });\n } else if (borderTopStyle === 'dotted') {\n ctx.dash(borderTopWidth, {\n space: borderTopWidth * 1.2\n });\n }\n\n ctx.stroke();\n ctx.undash();\n};\n\nvar clipBorderRight = function clipBorderRight(ctx, layout, style, rtr, rbr) {\n var top = layout.top,\n left = layout.left,\n width = layout.width,\n height = layout.height;\n var borderTopWidth = style.borderTopWidth,\n borderRightWidth = style.borderRightWidth,\n borderBottomWidth = style.borderBottomWidth; // Clip outer right border edge\n\n ctx.moveTo(left + width, top + rtr);\n ctx.lineTo(left + width, top + height - rbr); // Ellipse coefficients outer bottom right cap\n\n var c0 = rbr * (1.0 - KAPPA); // Clip outer top right cap\n\n ctx.bezierCurveTo(left + width, top + height - c0, left + width - c0, top + height, left + width - rbr, top + height); // Move left in case the margin exceedes the radius\n\n var topBottomXCoord = left + width - Math.max(borderRightWidth, rbr);\n ctx.lineTo(topBottomXCoord, top + height); // Clip inner bottom right cap\n\n ctx.lineTo(topBottomXCoord, top + height - borderBottomWidth); // Ellipse coefficients inner bottom right cap\n\n var innerBottomRightRadiusX = Math.max(rbr - borderRightWidth, 0);\n var innerBottomRightRadiusY = Math.max(rbr - borderBottomWidth, 0);\n var c1 = innerBottomRightRadiusX * (1.0 - KAPPA);\n var c2 = innerBottomRightRadiusY * (1.0 - KAPPA); // Clip inner top right cap\n\n ctx.bezierCurveTo(left + width - borderRightWidth - c1, top + height - borderBottomWidth, left + width - borderRightWidth, top + height - borderBottomWidth - c2, left + width - borderRightWidth, top + height - Math.max(rbr, borderBottomWidth)); // Clip inner right border edge\n\n ctx.lineTo(left + width - borderRightWidth, top + Math.max(rtr, borderTopWidth)); // Ellipse coefficients inner top right cap\n\n var innerTopRightRadiusX = Math.max(rtr - borderRightWidth, 0);\n var innerTopRightRadiusY = Math.max(rtr - borderTopWidth, 0);\n var c3 = innerTopRightRadiusX * (1.0 - KAPPA);\n var c4 = innerTopRightRadiusY * (1.0 - KAPPA);\n var topRightXCoord = left + width - Math.max(rtr, borderRightWidth); // Clip inner top left cap\n\n ctx.bezierCurveTo(left + width - borderRightWidth, top + borderTopWidth + c4, left + width - borderRightWidth - c3, top + borderTopWidth, topRightXCoord, top + borderTopWidth);\n ctx.lineTo(topRightXCoord, top); // Move right in case the margin exceedes the radius\n\n ctx.lineTo(left + width - rtr, top); // Ellipse coefficients outer top right cap\n\n var c5 = rtr * (1.0 - KAPPA); // Clip outer top right cap\n\n ctx.bezierCurveTo(left + width - c5, top, left + width, top + c5, left + width, top + rtr);\n ctx.closePath();\n ctx.clip(); // Clip border right cap joins\n\n if (borderTopWidth) {\n var trSlope = -borderTopWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, trSlope * (-width / 2) + top);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left, top + height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (borderBottomWidth) {\n var brSlope = borderBottomWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, brSlope * (-width / 2) + top + height);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left + width, top);\n ctx.lineTo(left, top);\n ctx.closePath();\n ctx.clip();\n }\n};\n\nvar fillBorderRight = function fillBorderRight(ctx, layout, style, rtr, rbr) {\n var top = layout.top,\n left = layout.left,\n width = layout.width,\n height = layout.height;\n var borderRightColor = style.borderRightColor,\n borderRightStyle = style.borderRightStyle,\n borderRightWidth = style.borderRightWidth,\n borderTopWidth = style.borderTopWidth,\n borderBottomWidth = style.borderBottomWidth;\n var c0 = rbr * (1.0 - KAPPA);\n var c1 = rtr * (1.0 - KAPPA);\n ctx.moveTo(left + width - rtr, top);\n ctx.bezierCurveTo(left + width - c1, top, left + width, top + c1, left + width, top + rtr);\n ctx.lineTo(left + width, top + height - rbr);\n ctx.bezierCurveTo(left + width, top + height - c0, left + width - c0, top + height, left + width - rbr, top + height);\n ctx.strokeColor(borderRightColor);\n ctx.lineWidth(Math.max(borderRightWidth, borderTopWidth, borderBottomWidth) * 2);\n\n if (borderRightStyle === 'dashed') {\n ctx.dash(borderRightWidth * 2, {\n space: borderRightWidth * 1.2\n });\n } else if (borderRightStyle === 'dotted') {\n ctx.dash(borderRightWidth, {\n space: borderRightWidth * 1.2\n });\n }\n\n ctx.stroke();\n ctx.undash();\n};\n\nvar clipBorderBottom = function clipBorderBottom(ctx, layout, style, rbl, rbr) {\n var top = layout.top,\n left = layout.left,\n width = layout.width,\n height = layout.height;\n var borderBottomWidth = style.borderBottomWidth,\n borderRightWidth = style.borderRightWidth,\n borderLeftWidth = style.borderLeftWidth; // Clip outer top border edge\n\n ctx.moveTo(left + width - rbr, top + height);\n ctx.lineTo(left + rbl, top + height); // Ellipse coefficients outer top right cap\n\n var c0 = rbl * (1.0 - KAPPA); // Clip outer top right cap\n\n ctx.bezierCurveTo(left + c0, top + height, left, top + height - c0, left, top + height - rbl); // Move up in case the margin exceedes the radius\n\n var bottomLeftYCoord = top + height - Math.max(borderBottomWidth, rbl);\n ctx.lineTo(left, bottomLeftYCoord); // Clip inner bottom left cap\n\n ctx.lineTo(left + borderLeftWidth, bottomLeftYCoord); // Ellipse coefficients inner top right cap\n\n var innerBottomLeftRadiusX = Math.max(rbl - borderLeftWidth, 0);\n var innerBottomLeftRadiusY = Math.max(rbl - borderBottomWidth, 0);\n var c1 = innerBottomLeftRadiusX * (1.0 - KAPPA);\n var c2 = innerBottomLeftRadiusY * (1.0 - KAPPA); // Clip inner bottom left cap\n\n ctx.bezierCurveTo(left + borderLeftWidth, top + height - borderBottomWidth - c2, left + borderLeftWidth + c1, top + height - borderBottomWidth, left + borderLeftWidth + innerBottomLeftRadiusX, top + height - borderBottomWidth); // Clip inner bottom border edge\n\n ctx.lineTo(left + width - Math.max(rbr, borderRightWidth), top + height - borderBottomWidth); // Ellipse coefficients inner top left cap\n\n var innerBottomRightRadiusX = Math.max(rbr - borderRightWidth, 0);\n var innerBottomRightRadiusY = Math.max(rbr - borderBottomWidth, 0);\n var c3 = innerBottomRightRadiusX * (1.0 - KAPPA);\n var c4 = innerBottomRightRadiusY * (1.0 - KAPPA);\n var bottomRightYCoord = top + height - Math.max(borderBottomWidth, rbr); // Clip inner top left cap\n\n ctx.bezierCurveTo(left + width - borderRightWidth - c3, top + height - borderBottomWidth, left + width - borderRightWidth, top + height - borderBottomWidth - c4, left + width - borderRightWidth, bottomRightYCoord);\n ctx.lineTo(left + width, bottomRightYCoord); // Move down in case the margin exceedes the radius\n\n ctx.lineTo(left + width, top + height - rbr); // Ellipse coefficients outer top left cap\n\n var c5 = rbr * (1.0 - KAPPA); // Clip outer top left cap\n\n ctx.bezierCurveTo(left + width, top + height - c5, left + width - c5, top + height, left + width - rbr, top + height);\n ctx.closePath();\n ctx.clip(); // Clip border bottom cap joins\n\n if (borderRightWidth) {\n var brSlope = borderBottomWidth / borderRightWidth;\n ctx.moveTo(left + width / 2, brSlope * (-width / 2) + top + height);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left, top);\n ctx.closePath();\n ctx.clip();\n }\n\n if (borderLeftWidth) {\n var trSlope = -borderBottomWidth / borderLeftWidth;\n ctx.moveTo(left + width / 2, trSlope * (width / 2) + top + height);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left + width, top + height);\n ctx.lineTo(left + width, top);\n ctx.closePath();\n ctx.clip();\n }\n};\n\nvar fillBorderBottom = function fillBorderBottom(ctx, layout, style, rbl, rbr) {\n var top = layout.top,\n left = layout.left,\n width = layout.width,\n height = layout.height;\n var borderBottomColor = style.borderBottomColor,\n borderBottomStyle = style.borderBottomStyle,\n borderBottomWidth = style.borderBottomWidth,\n borderRightWidth = style.borderRightWidth,\n borderLeftWidth = style.borderLeftWidth;\n var c0 = rbl * (1.0 - KAPPA);\n var c1 = rbr * (1.0 - KAPPA);\n ctx.moveTo(left + width, top + height - rbr);\n ctx.bezierCurveTo(left + width, top + height - c1, left + width - c1, top + height, left + width - rbr, top + height);\n ctx.lineTo(left + rbl, top + height);\n ctx.bezierCurveTo(left + c0, top + height, left, top + height - c0, left, top + height - rbl);\n ctx.strokeColor(borderBottomColor);\n ctx.lineWidth(Math.max(borderBottomWidth, borderRightWidth, borderLeftWidth) * 2);\n\n if (borderBottomStyle === 'dashed') {\n ctx.dash(borderBottomWidth * 2, {\n space: borderBottomWidth * 1.2\n });\n } else if (borderBottomStyle === 'dotted') {\n ctx.dash(borderBottomWidth, {\n space: borderBottomWidth * 1.2\n });\n }\n\n ctx.stroke();\n ctx.undash();\n};\n\nvar clipBorderLeft = function clipBorderLeft(ctx, layout, style, rbl, rtl) {\n var top = layout.top,\n left = layout.left,\n width = layout.width,\n height = layout.height;\n var borderTopWidth = style.borderTopWidth,\n borderLeftWidth = style.borderLeftWidth,\n borderBottomWidth = style.borderBottomWidth; // Clip outer left border edge\n\n ctx.moveTo(left, top + height - rbl);\n ctx.lineTo(left, top + rtl); // Ellipse coefficients outer top left cap\n\n var c0 = rtl * (1.0 - KAPPA); // Clip outer top left cap\n\n ctx.bezierCurveTo(left, top + c0, left + c0, top, left + rtl, top); // Move right in case the margin exceedes the radius\n\n var topLeftCoordX = left + Math.max(borderLeftWidth, rtl);\n ctx.lineTo(topLeftCoordX, top); // Clip inner top left cap\n\n ctx.lineTo(topLeftCoordX, top + borderTopWidth); // Ellipse coefficients inner top left cap\n\n var innerTopLeftRadiusX = Math.max(rtl - borderLeftWidth, 0);\n var innerTopLeftRadiusY = Math.max(rtl - borderTopWidth, 0);\n var c1 = innerTopLeftRadiusX * (1.0 - KAPPA);\n var c2 = innerTopLeftRadiusY * (1.0 - KAPPA); // Clip inner top right cap\n\n ctx.bezierCurveTo(left + borderLeftWidth + c1, top + borderTopWidth, left + borderLeftWidth, top + borderTopWidth + c2, left + borderLeftWidth, top + Math.max(rtl, borderTopWidth)); // Clip inner left border edge\n\n ctx.lineTo(left + borderLeftWidth, top + height - Math.max(rbl, borderBottomWidth)); // Ellipse coefficients inner bottom left cap\n\n var innerBottomLeftRadiusX = Math.max(rbl - borderLeftWidth, 0);\n var innerBottomLeftRadiusY = Math.max(rbl - borderBottomWidth, 0);\n var c3 = innerBottomLeftRadiusX * (1.0 - KAPPA);\n var c4 = innerBottomLeftRadiusY * (1.0 - KAPPA);\n var bottomLeftXCoord = left + Math.max(rbl, borderLeftWidth); // Clip inner top left cap\n\n ctx.bezierCurveTo(left + borderLeftWidth, top + height - borderBottomWidth - c4, left + borderLeftWidth + c3, top + height - borderBottomWidth, bottomLeftXCoord, top + height - borderBottomWidth);\n ctx.lineTo(bottomLeftXCoord, top + height); // Move left in case the margin exceedes the radius\n\n ctx.lineTo(left + rbl, top + height); // Ellipse coefficients outer top right cap\n\n var c5 = rbl * (1.0 - KAPPA); // Clip outer top right cap\n\n ctx.bezierCurveTo(left + c5, top + height, left, top + height - c5, left, top + height - rbl);\n ctx.closePath();\n ctx.clip(); // Clip border right cap joins\n\n if (borderBottomWidth) {\n var trSlope = -borderBottomWidth / borderLeftWidth;\n ctx.moveTo(left + width / 2, trSlope * (width / 2) + top + height);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left, top);\n ctx.lineTo(left + width, top);\n ctx.closePath();\n ctx.clip();\n }\n\n if (borderBottomWidth) {\n var _trSlope2 = -borderTopWidth / borderLeftWidth;\n\n ctx.moveTo(left + width / 2, _trSlope2 * (-width / 2) + top);\n ctx.lineTo(left, top);\n ctx.lineTo(left, top + height);\n ctx.lineTo(left + width, top + height);\n ctx.closePath();\n ctx.clip();\n }\n};\n\nvar fillBorderLeft = function fillBorderLeft(ctx, layout, style, rbl, rtl) {\n var top = layout.top,\n left = layout.left,\n height = layout.height;\n var borderLeftColor = style.borderLeftColor,\n borderLeftStyle = style.borderLeftStyle,\n borderLeftWidth = style.borderLeftWidth,\n borderTopWidth = style.borderTopWidth,\n borderBottomWidth = style.borderBottomWidth;\n var c0 = rbl * (1.0 - KAPPA);\n var c1 = rtl * (1.0 - KAPPA);\n ctx.moveTo(left + rbl, top + height);\n ctx.bezierCurveTo(left + c0, top + height, left, top + height - c0, left, top + height - rbl);\n ctx.lineTo(left, top + rtl);\n ctx.bezierCurveTo(left, top + c1, left + c1, top, left + rtl, top);\n ctx.strokeColor(borderLeftColor);\n ctx.lineWidth(Math.max(borderLeftWidth, borderTopWidth, borderBottomWidth) * 2);\n\n if (borderLeftStyle === 'dashed') {\n ctx.dash(borderLeftWidth * 2, {\n space: borderLeftWidth * 1.2\n });\n } else if (borderLeftStyle === 'dotted') {\n ctx.dash(borderLeftWidth, {\n space: borderLeftWidth * 1.2\n });\n }\n\n ctx.stroke();\n ctx.undash();\n};\n\nvar shouldRenderBorders = function shouldRenderBorders(node) {\n return node.box && (node.box.borderTopWidth || node.box.borderRightWidth || node.box.borderBottomWidth || node.box.borderLeftWidth);\n};\n\nvar renderBorders = function renderBorders(ctx, node) {\n if (!shouldRenderBorders(node)) return node;\n var _node$box = node.box,\n width = _node$box.width,\n height = _node$box.height,\n borderTopWidth = _node$box.borderTopWidth,\n borderLeftWidth = _node$box.borderLeftWidth,\n borderRightWidth = _node$box.borderRightWidth,\n borderBottomWidth = _node$box.borderBottomWidth;\n var _node$style = node.style,\n opacity = _node$style.opacity,\n _node$style$borderTop = _node$style.borderTopLeftRadius,\n borderTopLeftRadius = _node$style$borderTop === void 0 ? 0 : _node$style$borderTop,\n _node$style$borderTop2 = _node$style.borderTopRightRadius,\n borderTopRightRadius = _node$style$borderTop2 === void 0 ? 0 : _node$style$borderTop2,\n _node$style$borderBot = _node$style.borderBottomLeftRadius,\n borderBottomLeftRadius = _node$style$borderBot === void 0 ? 0 : _node$style$borderBot,\n _node$style$borderBot2 = _node$style.borderBottomRightRadius,\n borderBottomRightRadius = _node$style$borderBot2 === void 0 ? 0 : _node$style$borderBot2,\n _node$style$borderTop3 = _node$style.borderTopColor,\n borderTopColor = _node$style$borderTop3 === void 0 ? 'black' : _node$style$borderTop3,\n _node$style$borderTop4 = _node$style.borderTopStyle,\n borderTopStyle = _node$style$borderTop4 === void 0 ? 'solid' : _node$style$borderTop4,\n _node$style$borderLef = _node$style.borderLeftColor,\n borderLeftColor = _node$style$borderLef === void 0 ? 'black' : _node$style$borderLef,\n _node$style$borderLef2 = _node$style.borderLeftStyle,\n borderLeftStyle = _node$style$borderLef2 === void 0 ? 'solid' : _node$style$borderLef2,\n _node$style$borderRig = _node$style.borderRightColor,\n borderRightColor = _node$style$borderRig === void 0 ? 'black' : _node$style$borderRig,\n _node$style$borderRig2 = _node$style.borderRightStyle,\n borderRightStyle = _node$style$borderRig2 === void 0 ? 'solid' : _node$style$borderRig2,\n _node$style$borderBot3 = _node$style.borderBottomColor,\n borderBottomColor = _node$style$borderBot3 === void 0 ? 'black' : _node$style$borderBot3,\n _node$style$borderBot4 = _node$style.borderBottomStyle,\n borderBottomStyle = _node$style$borderBot4 === void 0 ? 'solid' : _node$style$borderBot4;\n var style = {\n borderTopColor: borderTopColor,\n borderTopWidth: borderTopWidth,\n borderTopStyle: borderTopStyle,\n borderLeftColor: borderLeftColor,\n borderLeftWidth: borderLeftWidth,\n borderLeftStyle: borderLeftStyle,\n borderRightColor: borderRightColor,\n borderRightWidth: borderRightWidth,\n borderRightStyle: borderRightStyle,\n borderBottomColor: borderBottomColor,\n borderBottomWidth: borderBottomWidth,\n borderBottomStyle: borderBottomStyle,\n borderTopLeftRadius: borderTopLeftRadius,\n borderTopRightRadius: borderTopRightRadius,\n borderBottomLeftRadius: borderBottomLeftRadius,\n borderBottomRightRadius: borderBottomRightRadius\n };\n var rtr = Math.min(borderTopRightRadius, 0.5 * width, 0.5 * height);\n var rtl = Math.min(borderTopLeftRadius, 0.5 * width, 0.5 * height);\n var rbr = Math.min(borderBottomRightRadius, 0.5 * width, 0.5 * height);\n var rbl = Math.min(borderBottomLeftRadius, 0.5 * width, 0.5 * height);\n ctx.save();\n ctx.strokeOpacity(opacity);\n\n if (borderTopWidth) {\n ctx.save();\n clipBorderTop(ctx, node.box, style, rtr, rtl);\n fillBorderTop(ctx, node.box, style, rtr, rtl);\n ctx.restore();\n }\n\n if (borderRightWidth) {\n ctx.save();\n clipBorderRight(ctx, node.box, style, rtr, rbr);\n fillBorderRight(ctx, node.box, style, rtr, rbr);\n ctx.restore();\n }\n\n if (borderBottomWidth) {\n ctx.save();\n clipBorderBottom(ctx, node.box, style, rbl, rbr);\n fillBorderBottom(ctx, node.box, style, rbl, rbr);\n ctx.restore();\n }\n\n if (borderLeftWidth) {\n ctx.save();\n clipBorderLeft(ctx, node.box, style, rbl, rtl);\n fillBorderLeft(ctx, node.box, style, rbl, rtl);\n ctx.restore();\n }\n\n ctx.restore();\n return node;\n};\n\nvar _default = R.curryN(2, renderBorders);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar availableMethods = ['dash', 'clip', 'save', 'path', 'fill', 'font', 'text', 'rect', 'scale', 'moveTo', 'lineTo', 'stroke', 'rotate', 'circle', 'lineCap', 'opacity', 'ellipse', 'polygon', 'restore', 'lineJoin', 'fontSize', 'fillColor', 'lineWidth', 'translate', 'miterLimit', 'strokeColor', 'fillOpacity', 'roundedRect', 'fillAndStroke', 'strokeOpacity', 'bezierCurveTo', 'quadraticCurveTo', 'linearGradient', 'radialGradient'];\n\nvar painter = function painter(ctx) {\n var p = availableMethods.reduce(function (acc, prop) {\n var _extends2;\n\n return (0, _extends3.default)({}, acc, (_extends2 = {}, _extends2[prop] = function () {\n ctx[prop].apply(ctx, arguments);\n return p;\n }, _extends2));\n }, {});\n return p;\n};\n\nvar defaultsZero = R.propOr(0);\n\nvar renderCanvas = function renderCanvas(ctx, node) {\n var _node$box = node.box,\n top = _node$box.top,\n left = _node$box.left,\n width = _node$box.width,\n height = _node$box.height;\n var paddingTop = defaultsZero('paddingTop', node.box);\n var paddingLeft = defaultsZero('paddingLeft', node.box);\n var paddingRight = defaultsZero('paddingRight', node.box);\n var paddingBottom = defaultsZero('paddingBottom', node.box);\n var availableWidth = width - paddingLeft - paddingRight;\n var availableHeight = height - paddingTop - paddingBottom;\n\n if (!availableWidth || !availableHeight) {\n console.warn('Canvas element has null width or height. Please provide valid values via the `style` prop in order to correctly render it.');\n }\n\n ctx.save().translate(left + paddingLeft, top + paddingTop);\n\n if (node.props.paint) {\n node.props.paint(painter(ctx), availableWidth, availableHeight);\n }\n\n ctx.restore();\n return node;\n};\n\nvar _default = R.curryN(2, renderCanvas);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _renderEllipse = require(\"./renderEllipse\");\n\nvar getProp = function getProp(p, v) {\n return R.path(['props', p], v);\n};\n\nvar renderCircle = function renderCircle(ctx, node) {\n var cx = getProp('cx', node);\n var cy = getProp('cy', node);\n var r = getProp('r', node);\n (0, _renderEllipse.drawEllipse)(ctx, cx, cy, r, r);\n return node;\n};\n\nvar _default = R.curryN(2, renderCircle);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _save = _interopRequireDefault(require(\"../operations/save\"));\n\nvar _restore = _interopRequireDefault(require(\"../operations/restore\"));\n\nvar CONTENT_COLOR = '#a1c6e7';\nvar PADDING_COLOR = '#c4deb9';\nvar MARGIN_COLOR = '#f8cca1';\nvar shouldDebug = R.pathEq(['props', 'debug'], true); // TODO: Draw debug boxes using clipping to enhance quality\n\nvar debugContent = function debugContent(ctx) {\n return R.tap(function (node) {\n var _node$box = node.box,\n left = _node$box.left,\n top = _node$box.top,\n width = _node$box.width,\n height = _node$box.height,\n _node$box$paddingLeft = _node$box.paddingLeft,\n paddingLeft = _node$box$paddingLeft === void 0 ? 0 : _node$box$paddingLeft,\n _node$box$paddingTop = _node$box.paddingTop,\n paddingTop = _node$box$paddingTop === void 0 ? 0 : _node$box$paddingTop,\n _node$box$paddingRigh = _node$box.paddingRight,\n paddingRight = _node$box$paddingRigh === void 0 ? 0 : _node$box$paddingRigh,\n _node$box$paddingBott = _node$box.paddingBottom,\n paddingBottom = _node$box$paddingBott === void 0 ? 0 : _node$box$paddingBott,\n _node$box$borderLeftW = _node$box.borderLeftWidth,\n borderLeftWidth = _node$box$borderLeftW === void 0 ? 0 : _node$box$borderLeftW,\n _node$box$borderTopWi = _node$box.borderTopWidth,\n borderTopWidth = _node$box$borderTopWi === void 0 ? 0 : _node$box$borderTopWi,\n _node$box$borderRight = _node$box.borderRightWidth,\n borderRightWidth = _node$box$borderRight === void 0 ? 0 : _node$box$borderRight,\n _node$box$borderBotto = _node$box.borderBottomWidth,\n borderBottomWidth = _node$box$borderBotto === void 0 ? 0 : _node$box$borderBotto;\n ctx.fillColor(CONTENT_COLOR).opacity(0.5).rect(left + paddingLeft + borderLeftWidth, top + paddingTop + borderTopWidth, width - paddingLeft - paddingRight - borderRightWidth - borderLeftWidth, height - paddingTop - paddingBottom - borderTopWidth - borderBottomWidth).fill();\n });\n};\n\nvar debugPadding = function debugPadding(ctx) {\n return R.tap(function (node) {\n var _node$box2 = node.box,\n left = _node$box2.left,\n top = _node$box2.top,\n width = _node$box2.width,\n height = _node$box2.height,\n _node$box2$paddingLef = _node$box2.paddingLeft,\n paddingLeft = _node$box2$paddingLef === void 0 ? 0 : _node$box2$paddingLef,\n _node$box2$paddingTop = _node$box2.paddingTop,\n paddingTop = _node$box2$paddingTop === void 0 ? 0 : _node$box2$paddingTop,\n _node$box2$paddingRig = _node$box2.paddingRight,\n paddingRight = _node$box2$paddingRig === void 0 ? 0 : _node$box2$paddingRig,\n _node$box2$paddingBot = _node$box2.paddingBottom,\n paddingBottom = _node$box2$paddingBot === void 0 ? 0 : _node$box2$paddingBot,\n _node$box2$borderLeft = _node$box2.borderLeftWidth,\n borderLeftWidth = _node$box2$borderLeft === void 0 ? 0 : _node$box2$borderLeft,\n _node$box2$borderTopW = _node$box2.borderTopWidth,\n borderTopWidth = _node$box2$borderTopW === void 0 ? 0 : _node$box2$borderTopW,\n _node$box2$borderRigh = _node$box2.borderRightWidth,\n borderRightWidth = _node$box2$borderRigh === void 0 ? 0 : _node$box2$borderRigh,\n _node$box2$borderBott = _node$box2.borderBottomWidth,\n borderBottomWidth = _node$box2$borderBott === void 0 ? 0 : _node$box2$borderBott;\n ctx.fillColor(PADDING_COLOR).opacity(0.5); // Padding top\n\n ctx.rect(left + paddingLeft + borderLeftWidth, top + borderTopWidth, width - paddingRight - paddingLeft - borderLeftWidth - borderRightWidth, paddingTop).fill(); // Padding left\n\n ctx.rect(left + borderLeftWidth, top + borderTopWidth, paddingLeft, height - borderTopWidth - borderBottomWidth).fill(); // Padding right\n\n ctx.rect(left + width - paddingRight - borderRightWidth, top + borderTopWidth, paddingRight, height - borderTopWidth - borderBottomWidth).fill(); // Padding bottom\n\n ctx.rect(left + paddingLeft + borderLeftWidth, top + height - paddingBottom - borderBottomWidth, width - paddingRight - paddingLeft - borderLeftWidth - borderRightWidth, paddingBottom).fill();\n });\n};\n\nvar debugMargin = function debugMargin(ctx) {\n return R.tap(function (node) {\n var _node$box3 = node.box,\n left = _node$box3.left,\n top = _node$box3.top,\n width = _node$box3.width,\n height = _node$box3.height,\n _node$box3$marginLeft = _node$box3.marginLeft,\n marginLeft = _node$box3$marginLeft === void 0 ? 0 : _node$box3$marginLeft,\n _node$box3$marginTop = _node$box3.marginTop,\n marginTop = _node$box3$marginTop === void 0 ? 0 : _node$box3$marginTop,\n _node$box3$marginRigh = _node$box3.marginRight,\n marginRight = _node$box3$marginRigh === void 0 ? 0 : _node$box3$marginRigh,\n _node$box3$marginBott = _node$box3.marginBottom,\n marginBottom = _node$box3$marginBott === void 0 ? 0 : _node$box3$marginBott;\n ctx.fillColor(MARGIN_COLOR).opacity(0.5); // Margin top\n\n ctx.rect(left, top - marginTop, width, marginTop).fill(); // Margin left\n\n ctx.rect(left - marginLeft, top - marginTop, marginLeft, height + marginTop + marginBottom).fill(); // Margin right\n\n ctx.rect(left + width, top - marginTop, marginRight, height + marginTop + marginBottom).fill(); // Margin bottom\n\n ctx.rect(left, top + height, width, marginBottom).fill();\n });\n};\n\nvar debugText = function debugText(ctx) {\n return R.tap(function (node) {\n var _node$box4 = node.box,\n left = _node$box4.left,\n top = _node$box4.top,\n width = _node$box4.width,\n height = _node$box4.height,\n _node$box4$marginLeft = _node$box4.marginLeft,\n marginLeft = _node$box4$marginLeft === void 0 ? 0 : _node$box4$marginLeft,\n _node$box4$marginTop = _node$box4.marginTop,\n marginTop = _node$box4$marginTop === void 0 ? 0 : _node$box4$marginTop,\n _node$box4$marginRigh = _node$box4.marginRight,\n marginRight = _node$box4$marginRigh === void 0 ? 0 : _node$box4$marginRigh,\n _node$box4$marginBott = _node$box4.marginBottom,\n marginBottom = _node$box4$marginBott === void 0 ? 0 : _node$box4$marginBott;\n var roundedWidth = Math.round(width + marginLeft + marginRight);\n var roundedHeight = Math.round(height + marginTop + marginBottom);\n ctx.fontSize(4).opacity(1).fillColor('black').text(roundedWidth + \" x \" + roundedHeight, left - marginLeft, Math.max(top - marginTop - 4, 1));\n });\n};\n\nvar debugOrigin = function debugOrigin(ctx) {\n return R.tap(function (node) {\n if (node.origin) {\n ctx.circle(node.origin.left, node.origin.top, 3).fill('red').circle(node.origin.left, node.origin.top, 5).stroke('red');\n }\n });\n};\n\nvar renderDebug = function renderDebug(ctx) {\n return R.tap(R.when(shouldDebug, R.compose((0, _restore.default)(ctx), debugOrigin(ctx), debugText(ctx), debugMargin(ctx), debugPadding(ctx), debugContent(ctx), (0, _save.default)(ctx))));\n};\n\nvar _default = renderDebug;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = exports.drawEllipse = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n\nvar getProp = function getProp(p, v) {\n return R.path(['props', p], v);\n};\n\nvar drawEllipse = function drawEllipse(ctx, cx, cy, rx, ry) {\n var x = cx - rx;\n var y = cy - ry;\n var ox = rx * KAPPA;\n var oy = ry * KAPPA;\n var xe = x + rx * 2;\n var ye = y + ry * 2;\n var xm = x + rx;\n var ym = y + ry;\n ctx.moveTo(x, ym);\n ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n ctx.closePath();\n};\n\nexports.drawEllipse = drawEllipse;\n\nvar renderEllipse = function renderEllipse(ctx, node) {\n var cx = getProp('cx', node);\n var cy = getProp('cy', node);\n var rx = getProp('rx', node);\n var ry = getProp('ry', node);\n drawEllipse(ctx, cx, cy, rx, ry);\n return node;\n};\n\nvar _default = R.curryN(2, renderEllipse);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar renderGroup = function renderGroup() {\n return R.identity;\n};\n\nvar _default = renderGroup;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _save = _interopRequireDefault(require(\"../operations/save\"));\n\nvar _restore = _interopRequireDefault(require(\"../operations/restore\"));\n\nvar _clipNode = _interopRequireDefault(require(\"../operations/clipNode\"));\n\nvar _resolveObjectFit2 = _interopRequireDefault(require(\"../utils/resolveObjectFit\"));\n\nvar drawImage = function drawImage(ctx) {\n return function (node) {\n var _node$style, _node$style2, _node$style3, _node$style4;\n\n var _node$box = node.box,\n left = _node$box.left,\n top = _node$box.top;\n var opacity = (_node$style = node.style) === null || _node$style === void 0 ? void 0 : _node$style.opacity;\n var objectFit = (_node$style2 = node.style) === null || _node$style2 === void 0 ? void 0 : _node$style2.objectFit;\n var objectPositionX = (_node$style3 = node.style) === null || _node$style3 === void 0 ? void 0 : _node$style3.objectPositionX;\n var objectPositionY = (_node$style4 = node.style) === null || _node$style4 === void 0 ? void 0 : _node$style4.objectPositionY;\n var paddingTop = node.box.paddingLeft || 0;\n var paddingRight = node.box.paddingRight || 0;\n var paddingBottom = node.box.paddingBottom || 0;\n var paddingLeft = node.box.paddingLeft || 0;\n\n var _resolveObjectFit = (0, _resolveObjectFit2.default)(objectFit, node.box.width - paddingLeft - paddingRight, node.box.height - paddingTop - paddingBottom, node.image.width, node.image.height, objectPositionX, objectPositionY),\n width = _resolveObjectFit.width,\n height = _resolveObjectFit.height,\n xOffset = _resolveObjectFit.xOffset,\n yOffset = _resolveObjectFit.yOffset;\n\n if (node.image.data) {\n if (width !== 0 && height !== 0) {\n ctx.fillOpacity(opacity || 1).image(node.image.data, left + paddingLeft + xOffset, top + paddingTop + yOffset, {\n width: width,\n height: height\n });\n } else {\n console.warn(\"Image with src '\" + node.props.src + \"' skipped due to invalid dimensions\");\n }\n }\n\n return node;\n };\n};\n\nvar renderImage = function renderImage(ctx, node) {\n R.compose((0, _restore.default)(ctx), drawImage(ctx), (0, _clipNode.default)(ctx), (0, _save.default)(ctx))(node);\n return node;\n};\n\nvar _default = R.curryN(2, renderImage);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar getProp = function getProp(p, v) {\n return R.path(['props', p], v);\n};\n\nvar renderLine = function renderLine(ctx) {\n return function (node) {\n var x1 = getProp('x1', node);\n var y1 = getProp('y1', node);\n var x2 = getProp('x2', node);\n var y2 = getProp('y2', node);\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n return node;\n };\n};\n\nvar _default = renderLine;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _renderSvg = _interopRequireDefault(require(\"./renderSvg\"));\n\nvar _renderText = _interopRequireDefault(require(\"./renderText\"));\n\nvar _renderPage = _interopRequireDefault(require(\"./renderPage\"));\n\nvar _renderNote = _interopRequireDefault(require(\"./renderNote\"));\n\nvar _renderImage = _interopRequireDefault(require(\"./renderImage\"));\n\nvar _renderDebug = _interopRequireDefault(require(\"./renderDebug\"));\n\nvar _renderCanvas = _interopRequireDefault(require(\"./renderCanvas\"));\n\nvar _renderBorders = _interopRequireDefault(require(\"./renderBorders\"));\n\nvar _renderBackground = _interopRequireDefault(require(\"./renderBackground\"));\n\nvar _isSvg = _interopRequireDefault(require(\"../utils/isSvg\"));\n\nvar _isLink = _interopRequireDefault(require(\"../utils/isLink\"));\n\nvar _isPage = _interopRequireDefault(require(\"../utils/isPage\"));\n\nvar _isNote = _interopRequireDefault(require(\"../utils/isNote\"));\n\nvar _isText = _interopRequireDefault(require(\"../utils/isText\"));\n\nvar _isImage = _interopRequireDefault(require(\"../utils/isImage\"));\n\nvar _isCanvas = _interopRequireDefault(require(\"../utils/isCanvas\"));\n\nvar _save = _interopRequireDefault(require(\"../operations/save\"));\n\nvar _setLink = _interopRequireDefault(require(\"../operations/setLink\"));\n\nvar _restore = _interopRequireDefault(require(\"../operations/restore\"));\n\nvar _clipNode = _interopRequireDefault(require(\"../operations/clipNode\"));\n\nvar _transform = _interopRequireDefault(require(\"../operations/transform\"));\n\nvar _setDestination = _interopRequireDefault(require(\"../operations/setDestination\"));\n\nvar shouldRenderChildren = function shouldRenderChildren(v) {\n return !(0, _isText.default)(v) && !(0, _isSvg.default)(v);\n};\n\nvar isOverflowHidden = R.pathEq(['style', 'overflow'], 'hidden');\n\nvar renderChildren = function renderChildren(ctx) {\n return function (node) {\n (0, _save.default)(ctx, node);\n\n if (node.box) {\n ctx.translate(node.box.left, node.box.top);\n }\n\n R.compose(R.forEach(renderNode(ctx)), R.pathOr([], ['children']))(node);\n (0, _restore.default)(ctx, node);\n return node;\n };\n};\n\nvar renderNode = function renderNode(ctx) {\n return function (node) {\n return R.compose((0, _restore.default)(ctx), (0, _renderDebug.default)(ctx), (0, _setDestination.default)(ctx), R.when(shouldRenderChildren, renderChildren(ctx)), R.when(_isLink.default, (0, _setLink.default)(ctx)), R.cond([[_isText.default, (0, _renderText.default)(ctx)], [_isNote.default, (0, _renderNote.default)(ctx)], [_isImage.default, (0, _renderImage.default)(ctx)], [_isCanvas.default, (0, _renderCanvas.default)(ctx)], [_isSvg.default, (0, _renderSvg.default)(ctx)], [R.T, R.identity]]), (0, _renderBorders.default)(ctx), (0, _renderBackground.default)(ctx), (0, _transform.default)(ctx), R.when(isOverflowHidden, (0, _clipNode.default)(ctx)), (0, _save.default)(ctx), R.when(_isPage.default, (0, _renderPage.default)(ctx)))(node);\n };\n};\n\nvar _default = renderNode;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar renderNote = function renderNote(ctx, node) {\n var _node$children;\n\n var _node$box = node.box,\n top = _node$box.top,\n left = _node$box.left;\n var value = (node === null || node === void 0 ? void 0 : (_node$children = node.children) === null || _node$children === void 0 ? void 0 : _node$children[0].value) || '';\n ctx.note(left, top, 0, 0, value);\n return node;\n};\n\nvar _default = R.curryN(2, renderNote);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar renderPage = function renderPage(ctx, node) {\n var _node$box = node.box,\n width = _node$box.width,\n height = _node$box.height;\n ctx.addPage({\n size: [width, height],\n margin: 0\n });\n return node;\n};\n\nvar _default = R.curryN(2, renderPage);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar renderPath = function renderPath(ctx) {\n return R.tap(function (node) {\n var d = R.path(['props', 'd'], node);\n if (d) ctx.path(node.props.d);\n });\n};\n\nvar _default = renderPath;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _renderPolyline = _interopRequireDefault(require(\"./renderPolyline\"));\n\nvar closePath = function closePath(ctx) {\n return R.tap(function () {\n return ctx.closePath();\n });\n};\n\nvar renderPolygon = function renderPolygon(ctx) {\n return R.compose(closePath(ctx), (0, _renderPolyline.default)(ctx));\n};\n\nvar _default = renderPolygon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = exports.drawPolyline = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _parsePoints = _interopRequireDefault(require(\"../svg/parsePoints\"));\n\nvar drawPolyline = function drawPolyline(ctx) {\n return function (points) {\n if (points.length > 0) {\n ctx.moveTo(points[0][0], points[0][1]);\n points.slice(1).forEach(function (p) {\n return ctx.lineTo(p[0], p[1]);\n });\n }\n };\n};\n\nexports.drawPolyline = drawPolyline;\n\nvar renderPolyline = function renderPolyline(ctx) {\n return R.tap(R.compose(drawPolyline(ctx), _parsePoints.default, R.pathOr('', ['props', 'points'])));\n};\n\nvar _default = renderPolyline;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n\nvar getProp = function getProp(d, p, v) {\n return R.pathOr(d, ['props', p], v);\n};\n\nvar renderRect = function renderRect(ctx) {\n return function (node) {\n var x = getProp(0, 'x', node);\n var y = getProp(0, 'y', node);\n var rx = getProp(0, 'rx', node);\n var ry = getProp(0, 'ry', node);\n var width = getProp(0, 'width', node);\n var height = getProp(0, 'height', node);\n if (!width || !height) return node;\n\n if (rx && ry) {\n var krx = rx * KAPPA;\n var kry = ry * KAPPA;\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x - rx + width, y);\n ctx.bezierCurveTo(x - rx + width + krx, y, x + width, y + ry - kry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + kry, x - rx + width + krx, y + height, x - rx + width, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - krx, y + height, x, y + height - ry + kry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - kry, x + rx - krx, y, x + rx, y);\n } else {\n ctx.moveTo(x, y);\n ctx.lineTo(x + width, y);\n ctx.lineTo(x + width, y + height);\n ctx.lineTo(x, y + height);\n }\n\n ctx.closePath();\n return node;\n };\n};\n\nvar _default = renderRect;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar _renderPath = _interopRequireDefault(require(\"./renderPath\"));\n\nvar _renderRect = _interopRequireDefault(require(\"./renderRect\"));\n\nvar _renderLine = _interopRequireDefault(require(\"./renderLine\"));\n\nvar _renderGroup = _interopRequireDefault(require(\"./renderGroup\"));\n\nvar _renderCircle = _interopRequireDefault(require(\"./renderCircle\"));\n\nvar _renderSvgText = _interopRequireDefault(require(\"./renderSvgText\"));\n\nvar _renderEllipse = _interopRequireDefault(require(\"./renderEllipse\"));\n\nvar _renderPolygon = _interopRequireDefault(require(\"./renderPolygon\"));\n\nvar _renderPolyline = _interopRequireDefault(require(\"./renderPolyline\"));\n\nvar _renderSvgImage = _interopRequireDefault(require(\"./renderSvgImage\"));\n\nvar _isPath = _interopRequireDefault(require(\"../utils/isPath\"));\n\nvar _isText = _interopRequireDefault(require(\"../utils/isText\"));\n\nvar _isRect = _interopRequireDefault(require(\"../utils/isRect\"));\n\nvar _isLine = _interopRequireDefault(require(\"../utils/isLine\"));\n\nvar _isTspan = _interopRequireDefault(require(\"../utils/isTspan\"));\n\nvar _isImage = _interopRequireDefault(require(\"../utils/isImage\"));\n\nvar _isGroup = _interopRequireDefault(require(\"../utils/isGroup\"));\n\nvar _isCircle = _interopRequireDefault(require(\"../utils/isCircle\"));\n\nvar _isEllipse = _interopRequireDefault(require(\"../utils/isEllipse\"));\n\nvar _isPolygon = _interopRequireDefault(require(\"../utils/isPolygon\"));\n\nvar _isPolyline = _interopRequireDefault(require(\"../utils/isPolyline\"));\n\nvar _isTextInstance = _interopRequireDefault(require(\"../utils/isTextInstance\"));\n\nvar _save = _interopRequireDefault(require(\"../operations/save\"));\n\nvar _restore = _interopRequireDefault(require(\"../operations/restore\"));\n\nvar _clipNode = _interopRequireDefault(require(\"../operations/clipNode\"));\n\nvar _transform = _interopRequireDefault(require(\"../operations/transform\"));\n\nvar _getBoundingBox = _interopRequireDefault(require(\"../svg/getBoundingBox\"));\n\nvar warnUnsupportedNode = R.tap(function (node) {\n console.warn(\"SVG node of type \" + node.type + \" is not currenty supported\");\n});\n\nvar getProp = function getProp(d, p, v) {\n return R.pathOr(d, ['props', p], v);\n};\n\nvar setStrokeWidth = function setStrokeWidth(ctx) {\n return function (node) {\n var lineWidth = getProp(0, 'strokeWidth', node);\n if (lineWidth) ctx.lineWidth(lineWidth);\n return node;\n };\n};\n\nvar setStrokeColor = function setStrokeColor(ctx) {\n return function (node) {\n var strokeColor = getProp(null, 'stroke', node);\n if (strokeColor) ctx.strokeColor(strokeColor);\n return node;\n };\n};\n\nvar setOpacity = function setOpacity(ctx) {\n return function (node) {\n var opacity = getProp(null, 'opacity', node);\n if (!R.isNil(opacity)) ctx.opacity(opacity);\n return node;\n };\n};\n\nvar setFillOpacity = function setFillOpacity(ctx) {\n return function (node) {\n var fillOpacity = getProp(null, 'fillOpacity', node);\n if (!R.isNil(fillOpacity)) ctx.fillOpacity(fillOpacity);\n return node;\n };\n};\n\nvar setStrokeOpacity = function setStrokeOpacity(ctx) {\n return function (node) {\n var strokeOpacity = getProp(null, 'strokeOpacity', node);\n if (!R.isNil(strokeOpacity)) ctx.strokeOpacity(strokeOpacity);\n return node;\n };\n};\n\nvar setLineJoin = function setLineJoin(ctx) {\n return function (node) {\n var lineJoin = getProp(null, 'strokeLinejoin', node);\n if (lineJoin) ctx.lineJoin(lineJoin);\n return node;\n };\n};\n\nvar setLineCap = function setLineCap(ctx) {\n return function (node) {\n var lineCap = getProp(null, 'strokeLinecap', node);\n if (lineCap) ctx.lineCap(lineCap);\n return node;\n };\n};\n\nvar setLineDash = function setLineDash(ctx) {\n return function (node) {\n var value = getProp(null, 'strokeDasharray', node);\n if (value) ctx.dash(R.split(',', value));\n return node;\n };\n};\n\nvar hasLinearGradientFill = R.pathEq(['props', 'fill', 'type'], P.LinearGradient);\nvar hasRadialGradientFill = R.pathEq(['props', 'fill', 'type'], P.RadialGradient); // Math simplified from https://github.com/devongovett/svgkit/blob/master/src/elements/SVGGradient.js#L104\n\nvar setLinearGradientFill = function setLinearGradientFill(ctx) {\n return R.tap(function (node) {\n var bbox = (0, _getBoundingBox.default)(node);\n var gradient = getProp(null, 'fill', node);\n var x1 = R.pathOr(0, ['props', 'x1'], gradient);\n var y1 = R.pathOr(0, ['props', 'y1'], gradient);\n var x2 = R.pathOr(1, ['props', 'x2'], gradient);\n var y2 = R.pathOr(0, ['props', 'y2'], gradient);\n var m0 = bbox[2] - bbox[0];\n var m3 = bbox[3] - bbox[1];\n var m4 = bbox[0];\n var m5 = bbox[1];\n var gx1 = m0 * x1 + m4;\n var gy1 = m3 * y1 + m5;\n var gx2 = m0 * x2 + m4;\n var gy2 = m3 * y2 + m5;\n var grad = ctx.linearGradient(gx1, gy1, gx2, gy2);\n gradient.children.forEach(function (stop) {\n grad.stop(stop.props.offset, stop.props.stopColor, stop.props.stopOpacity);\n });\n ctx.fill(grad);\n });\n}; // Math simplified from https://github.com/devongovett/svgkit/blob/master/src/elements/SVGGradient.js#L155\n\n\nvar setRadialGradientFill = function setRadialGradientFill(ctx) {\n return R.tap(function (node) {\n var bbox = (0, _getBoundingBox.default)(node);\n var gradient = getProp(null, 'fill', node);\n var cx = R.pathOr(0.5, ['props', 'cx'], gradient);\n var cy = R.pathOr(0.5, ['props', 'cy'], gradient);\n var fx = R.pathOr(cx, ['props', 'fx'], gradient);\n var fy = R.pathOr(cy, ['props', 'fy'], gradient);\n var r = R.pathOr(0.5, ['props', 'r'], gradient);\n var m0 = bbox[2] - bbox[0];\n var m3 = bbox[3] - bbox[1];\n var m4 = bbox[0];\n var m5 = bbox[1];\n var gr = r * m0;\n var gcx = m0 * cx + m4;\n var gcy = m3 * cy + m5;\n var gfx = m0 * fx + m4;\n var gfy = m3 * fy + m5;\n var grad = ctx.radialGradient(gfx, gfy, 0, gcx, gcy, gr);\n gradient.children.forEach(function (stop) {\n grad.stop(stop.props.offset, stop.props.stopColor, stop.props.stopOpacity);\n });\n ctx.fill(grad);\n });\n};\n\nvar setFillColor = function setFillColor(ctx) {\n return R.tap(function (node) {\n var fillColor = getProp(null, 'fill', node);\n if (fillColor) ctx.fillColor(fillColor);\n });\n};\n\nvar setFill = function setFill(ctx) {\n return R.cond([[hasLinearGradientFill, setLinearGradientFill(ctx)], [hasRadialGradientFill, setRadialGradientFill(ctx)], [R.T, setFillColor(ctx)]]);\n};\n\nvar draw = function draw(ctx) {\n return function (node) {\n var props = R.propOr({}, 'props', node);\n\n if (props.fill && props.stroke) {\n ctx.fillAndStroke(props.fillRule);\n } else if (props.fill) {\n ctx.fill(props.fillRule);\n } else if (props.stroke) {\n ctx.stroke();\n } else {\n ctx.save();\n ctx.opacity(0);\n ctx.fill(null);\n ctx.restore();\n }\n\n return node;\n };\n};\n\nvar renderNode = function renderNode(ctx) {\n return R.cond([[_isTspan.default, R.identity], [_isTextInstance.default, R.identity], [_isPath.default, (0, _renderPath.default)(ctx)], [_isRect.default, (0, _renderRect.default)(ctx)], [_isLine.default, (0, _renderLine.default)(ctx)], [_isGroup.default, (0, _renderGroup.default)(ctx)], [_isText.default, (0, _renderSvgText.default)(ctx)], [_isCircle.default, (0, _renderCircle.default)(ctx)], [_isImage.default, (0, _renderSvgImage.default)(ctx)], [_isEllipse.default, (0, _renderEllipse.default)(ctx)], [_isPolygon.default, (0, _renderPolygon.default)(ctx)], [_isPolyline.default, (0, _renderPolyline.default)(ctx)], [R.T, warnUnsupportedNode]]);\n};\n\nvar drawNode = function drawNode(ctx) {\n return R.compose(draw(ctx), renderNode(ctx), (0, _transform.default)(ctx), setOpacity(ctx), setFillOpacity(ctx), setStrokeOpacity(ctx), setFill(ctx), setStrokeColor(ctx), setStrokeWidth(ctx), setLineJoin(ctx), setLineDash(ctx), setLineCap(ctx));\n};\n\nvar clipPath = function clipPath(ctx) {\n return function (node) {\n var value = R.path(['props', 'clipPath'], node);\n\n if (value) {\n R.compose(function () {\n return ctx.clip();\n }, R.forEach(renderNode(ctx)), R.propOr([], 'children'))(value);\n }\n\n return node;\n };\n};\n\nvar drawChildren = function drawChildren(ctx) {\n return function (node) {\n return R.compose(R.map(R.compose((0, _restore.default)(ctx), drawChildren(ctx), drawNode(ctx), clipPath(ctx), (0, _save.default)(ctx))), R.propOr([], 'children'))(node);\n };\n};\n\nvar defaultsZero = R.pathOr(0);\n\nvar resolveAspectRatio = function resolveAspectRatio(ctx) {\n return function (node) {\n var _node$box = node.box,\n width = _node$box.width,\n height = _node$box.height;\n var _node$props = node.props,\n viewBox = _node$props.viewBox,\n _node$props$preserveA = _node$props.preserveAspectRatio,\n preserveAspectRatio = _node$props$preserveA === void 0 ? {} : _node$props$preserveA;\n var _preserveAspectRatio$ = preserveAspectRatio.meetOrSlice,\n meetOrSlice = _preserveAspectRatio$ === void 0 ? 'meet' : _preserveAspectRatio$,\n _preserveAspectRatio$2 = preserveAspectRatio.align,\n align = _preserveAspectRatio$2 === void 0 ? 'xMidYMid' : _preserveAspectRatio$2;\n if (viewBox == null || width == null || height == null) return node;\n var x = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.minX) || 0;\n var y = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.minY) || 0;\n var logicalWidth = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.maxX) || width;\n var logicalHeight = (viewBox === null || viewBox === void 0 ? void 0 : viewBox.maxY) || height;\n var logicalRatio = logicalWidth / logicalHeight;\n var physicalRatio = width / height;\n var scaleX = width / logicalWidth;\n var scaleY = height / logicalHeight;\n\n if (align === 'none') {\n ctx.scale(scaleX, scaleY);\n ctx.translate(-x, -y);\n return node;\n }\n\n if (logicalRatio < physicalRatio && meetOrSlice === 'meet' || logicalRatio >= physicalRatio && meetOrSlice === 'slice') {\n ctx.scale(scaleY, scaleY);\n\n switch (align) {\n case 'xMinYMin':\n case 'xMinYMid':\n case 'xMinYMax':\n ctx.translate(-x, -y);\n break;\n\n case 'xMidYMin':\n case 'xMidYMid':\n case 'xMidYMax':\n ctx.translate(-x - (logicalWidth - width * logicalHeight / height) / 2, -y);\n break;\n\n default:\n ctx.translate(-x - (logicalWidth - width * logicalHeight / height), -y);\n }\n } else {\n ctx.scale(scaleX, scaleX);\n\n switch (align) {\n case 'xMinYMin':\n case 'xMidYMin':\n case 'xMaxYMin':\n ctx.translate(-x, -y);\n break;\n\n case 'xMinYMid':\n case 'xMidYMid':\n case 'xMaxYMid':\n ctx.translate(-x, -y - (logicalHeight - height * logicalWidth / width) / 2);\n break;\n\n default:\n ctx.translate(-x, -y - (logicalHeight - height * logicalWidth / width));\n }\n }\n\n return node;\n };\n};\n\nvar moveToOrigin = function moveToOrigin(ctx) {\n return function (node) {\n var _node$box2 = node.box,\n top = _node$box2.top,\n left = _node$box2.left;\n var paddingLeft = defaultsZero('paddingLeft', node.box);\n var paddingTop = defaultsZero('paddingTop', node.box);\n ctx.translate(left + paddingLeft, top + paddingTop);\n return node;\n };\n};\n\nvar renderSvg = function renderSvg(ctx, node) {\n R.compose((0, _restore.default)(ctx), drawChildren(ctx), resolveAspectRatio(ctx), moveToOrigin(ctx), (0, _clipNode.default)(ctx), (0, _save.default)(ctx))(node);\n return node;\n};\n\nvar _default = R.curryN(2, renderSvg);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _save = _interopRequireDefault(require(\"../operations/save\"));\n\nvar _restore = _interopRequireDefault(require(\"../operations/restore\"));\n\nvar drawImage = function drawImage(ctx) {\n return function (node) {\n var _node$props = node.props,\n x = _node$props.x,\n y = _node$props.y;\n var _node$style = node.style,\n width = _node$style.width,\n height = _node$style.height,\n opacity = _node$style.opacity;\n var paddingTop = node.box.paddingLeft || 0;\n var paddingLeft = node.box.paddingLeft || 0;\n\n if (node.image.data) {\n if (width !== 0 && height !== 0) {\n ctx.fillOpacity(opacity || 1).image(node.image.data, x + paddingLeft, y + paddingTop, {\n width: width,\n height: height\n });\n } else {\n console.warn(\"Image with src '\" + node.props.href + \"' skipped due to invalid dimensions\");\n }\n }\n\n return node;\n };\n};\n\nvar renderImage = function renderImage(ctx, node) {\n R.compose((0, _restore.default)(ctx), drawImage(ctx), (0, _save.default)(ctx))(node);\n return node;\n};\n\nvar _default = R.curryN(2, renderImage);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"@react-pdf/textkit/lib/run/advanceWidth\"));\n\nvar _advanceWidth2 = _interopRequireDefault(require(\"@react-pdf/textkit/lib/attributedString/advanceWidth\"));\n\nvar renderRun = function renderRun(ctx, run) {\n var runAdvanceWidth = (0, _advanceWidth.default)(run);\n var _run$attributes = run.attributes,\n font = _run$attributes.font,\n fontSize = _run$attributes.fontSize,\n color = _run$attributes.color,\n opacity = _run$attributes.opacity;\n ctx.fillColor(color);\n ctx.fillOpacity(opacity);\n\n if (font.sbix || font.COLR && font.CPAL) {\n ctx.save();\n ctx.translate(0, -run.ascent);\n\n for (var i = 0; i < run.glyphs.length; i += 1) {\n var position = run.positions[i];\n var glyph = run.glyphs[i];\n ctx.save();\n ctx.translate(position.xOffset, position.yOffset);\n glyph.render(ctx, fontSize);\n ctx.restore();\n ctx.translate(position.xAdvance, position.yAdvance);\n }\n\n ctx.restore();\n } else {\n ctx.font(typeof font.name === 'string' ? font.name : font, fontSize);\n\n try {\n ctx._addGlyphs(run.glyphs, run.positions, 0, 0);\n } catch (error) {\n console.log(error);\n }\n }\n\n ctx.translate(runAdvanceWidth, 0);\n};\n\nvar renderSpan = function renderSpan(ctx, line, textAnchor, dominantBaseline) {\n ctx.save();\n var x = R.pathOr(0, ['box', 'x'], line);\n var y = R.pathOr(0, ['box', 'y'], line);\n var font = R.pathOr(1, ['runs', 0, 'attributes', 'font'], line);\n var scale = R.pathOr(1, ['runs', 0, 'attributes', 'scale'], line);\n var width = (0, _advanceWidth2.default)(line);\n var ascent = font.ascent * scale;\n var xHeight = font.xHeight * scale;\n var descent = font.descent * scale;\n var capHeight = font.capHeight * scale;\n var xTranslate = x;\n var yTranslate = y;\n\n switch (textAnchor) {\n case 'middle':\n xTranslate = x - width / 2;\n break;\n\n case 'end':\n xTranslate = x - width;\n break;\n\n default:\n xTranslate = x;\n break;\n }\n\n switch (dominantBaseline) {\n case 'middle':\n case 'central':\n yTranslate = y + capHeight / 2;\n break;\n\n case 'hanging':\n yTranslate = y + capHeight;\n break;\n\n case 'mathematical':\n yTranslate = y + xHeight;\n break;\n\n case 'text-after-edge':\n yTranslate = y + descent;\n break;\n\n case 'text-before-edge':\n yTranslate = y + ascent;\n break;\n\n default:\n yTranslate = y;\n break;\n }\n\n ctx.translate(xTranslate, yTranslate);\n line.runs.forEach(function (run) {\n return renderRun(ctx, run);\n });\n ctx.restore();\n};\n\nvar renderSvgText = function renderSvgText(ctx) {\n return function (node) {\n node.children.forEach(function (span) {\n return renderSpan(ctx, span.lines[0], span.props.textAnchor, span.props.dominantBaseline);\n });\n return node;\n };\n};\n\nvar _default = renderSvgText;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _pdf = _interopRequireDefault(require(\"@react-pdf/textkit/lib/renderers/pdf\"));\n\nvar renderText = function renderText(ctx, node) {\n var _node$box = node.box,\n top = _node$box.top,\n left = _node$box.left;\n var paddingTop = R.pathOr(0, ['box', 'paddingTop'], node);\n var paddingLeft = R.pathOr(0, ['box', 'paddingLeft'], node);\n var initialY = node.lines[0] ? node.lines[0].box.y : 0;\n ctx.save();\n ctx.translate(left + paddingLeft, top + paddingTop - initialY);\n\n _pdf.default.render(ctx, [node.lines]);\n\n ctx.restore();\n return node;\n};\n\nvar _default = R.curryN(2, renderText);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _absSvgPath = _interopRequireDefault(require(\"abs-svg-path\"));\n\nvar _parseSvgPath = _interopRequireDefault(require(\"parse-svg-path\"));\n\nvar _normalizeSvgPath = _interopRequireDefault(require(\"normalize-svg-path\"));\n\nvar _isRect = _interopRequireDefault(require(\"../utils/isRect\"));\n\nvar _isLine = _interopRequireDefault(require(\"../utils/isLine\"));\n\nvar _isPath = _interopRequireDefault(require(\"../utils/isPath\"));\n\nvar _isCircle = _interopRequireDefault(require(\"../utils/isCircle\"));\n\nvar _isPolygon = _interopRequireDefault(require(\"../utils/isPolygon\"));\n\nvar _isEllipse = _interopRequireDefault(require(\"../utils/isEllipse\"));\n\nvar _isPolyline = _interopRequireDefault(require(\"../utils/isPolyline\"));\n\nvar _parsePoints = _interopRequireDefault(require(\"./parsePoints\"));\n\n// From https://github.com/dy/svg-path-bounds/blob/master/index.js\nvar getPathBoundingBox = function getPathBoundingBox(node) {\n var path = R.compose(_normalizeSvgPath.default, _absSvgPath.default, _parseSvgPath.default, R.pathOr('', ['props', 'd']))(node);\n if (!path.length) return [0, 0, 0, 0];\n var bounds = [Infinity, Infinity, -Infinity, -Infinity];\n\n for (var i = 0, l = path.length; i < l; i += 1) {\n var points = path[i].slice(1);\n\n for (var j = 0; j < points.length; j += 2) {\n if (points[j + 0] < bounds[0]) bounds[0] = points[j + 0];\n if (points[j + 1] < bounds[1]) bounds[1] = points[j + 1];\n if (points[j + 0] > bounds[2]) bounds[2] = points[j + 0];\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1];\n }\n }\n\n return bounds;\n};\n\nvar getCircleBoundingBox = function getCircleBoundingBox(node) {\n var r = R.pathOr(0, ['props', 'r'], node);\n var cx = R.pathOr(0, ['props', 'cx'], node);\n var cy = R.pathOr(0, ['props', 'cy'], node);\n return [cx - r, cy - r, cx + r, cy + r];\n};\n\nvar getEllipseBoundingBox = function getEllipseBoundingBox(node) {\n var cx = R.pathOr(0, ['props', 'cx'], node);\n var cy = R.pathOr(0, ['props', 'cy'], node);\n var rx = R.pathOr(0, ['props', 'rx'], node);\n var ry = R.pathOr(0, ['props', 'ry'], node);\n return [cx - rx, cy - ry, cx + rx, cy + ry];\n};\n\nvar getLineBoundingBox = function getLineBoundingBox(node) {\n var x1 = R.pathOr(0, ['props', 'x1'], node);\n var y1 = R.pathOr(0, ['props', 'y1'], node);\n var x2 = R.pathOr(0, ['props', 'x2'], node);\n var y2 = R.pathOr(0, ['props', 'y2'], node);\n return [R.min(x1, x2), R.min(y1, y2), R.max(x1, x2), R.max(y1, y2)];\n};\n\nvar getRectBoundingBox = function getRectBoundingBox(node) {\n var x = R.pathOr(0, ['props', 'x'], node);\n var y = R.pathOr(0, ['props', 'y'], node);\n var width = R.pathOr(0, ['props', 'width'], node);\n var height = R.pathOr(0, ['props', 'height'], node);\n return [x, y, x + width, y + height];\n};\n\nvar max = R.reduce(R.max, -Infinity);\nvar min = R.reduce(R.min, Infinity);\n\nvar getPolylineBoundingBox = function getPolylineBoundingBox(node) {\n var points = R.compose(_parsePoints.default, R.pathOr([], ['props', 'points']))(node);\n var xValues = R.pluck(0, points);\n var yValues = R.pluck(1, points);\n return [min(xValues), min(yValues), max(xValues), max(yValues)];\n};\n\nvar getBoundingBox = R.cond([[_isRect.default, getRectBoundingBox], [_isLine.default, getLineBoundingBox], [_isPath.default, getPathBoundingBox], [_isCircle.default, getCircleBoundingBox], [_isEllipse.default, getEllipseBoundingBox], [_isPolygon.default, getPolylineBoundingBox], [_isPolyline.default, getPolylineBoundingBox], [R.T, R.always([0, 0, 0, 0])]]);\nvar _default = getBoundingBox;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar isOdd = function isOdd(x) {\n return x % 2 !== 0;\n};\n\nvar lengthIsOdd = R.o(isOdd, R.prop('length'));\n/**\n * Parse svg-like points into number arrays\n *\n * @param {String} points string ex. \"20,30 50,60\"\n * @return {Array} points array ex. [[20, 30], [50, 60]]\n */\n\nvar parsePoints = R.compose(R.splitEvery(2), R.map(parseFloat), R.when(lengthIsOdd, R.slice(0, -1)), R.split(/\\s+/), R.replace(/(\\d)-(\\d)/g, '$1 -$2'), R.replace(/,/g, ' '), R.trim, R.defaultTo(''));\nvar _default = parsePoints;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isCanvas = R.propEq('type', P.Canvas);\nvar _default = isCanvas;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isCircle = R.propEq('type', P.Circle);\nvar _default = isCircle;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isEllipse = R.propEq('type', P.Ellipse);\nvar _default = isEllipse;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isGroup = R.propEq('type', P.G);\nvar _default = isGroup;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isImage = R.propEq('type', P.Image);\nvar _default = isImage;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isLine = R.propEq('type', P.Line);\nvar _default = isLine;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isLink = R.propEq('type', P.Link);\nvar _default = isLink;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isNote = R.propEq('type', P.Note);\nvar _default = isNote;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isPage = R.propEq('type', P.Page);\nvar _default = isPage;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isPath = R.propEq('type', P.Path);\nvar _default = isPath;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isPolygon = R.propEq('type', P.Polygon);\nvar _default = isPolygon;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isPolyline = R.propEq('type', P.Polyline);\nvar _default = isPolyline;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isRect = R.propEq('type', P.Rect);\nvar _default = isRect;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isSvg = R.propEq('type', P.Svg);\nvar _default = isSvg;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isText = R.propEq('type', P.Text);\nvar _default = isText;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isTextInstance = R.propEq('type', P.TextInstance);\nvar _default = isTextInstance;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar P = _interopRequireWildcard(require(\"@react-pdf/primitives\"));\n\nvar isTspan = R.propEq('type', P.Tspan);\nvar _default = isTspan;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar isPercent = function isPercent(value) {\n return /((-)?\\d+\\.?\\d*)%/g.exec(value);\n};\n/**\n * Get percentage value of input\n *\n * @param {String} value\n * @returns {Object} percent value (if matches)\n */\n\n\nvar matchPercent = function matchPercent(value) {\n var match = isPercent(value);\n\n if (match) {\n var f = parseFloat(match[1], 10);\n var percent = f / 100;\n return {\n percent: percent,\n value: f\n };\n }\n\n return null;\n};\n\nvar _default = matchPercent;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _matchPercent = _interopRequireDefault(require(\"./matchPercent\"));\n\nvar isNumeric = function isNumeric(n) {\n return !Number.isNaN(parseFloat(n)) && Number.isFinite(n);\n};\n\nvar applyContainObjectFit = function applyContainObjectFit(cw, ch, iw, ih, px, py) {\n var cr = cw / ch;\n var ir = iw / ih;\n var pxp = (0, _matchPercent.default)(px);\n var pyp = (0, _matchPercent.default)(py);\n var pxv = pxp ? pxp.percent : 0.5;\n var pyv = pyp ? pyp.percent : 0.5;\n\n if (cr > ir) {\n var _height = ch;\n\n var _width = _height * ir;\n\n var _yOffset = isNumeric(py) ? py : 0;\n\n var _xOffset = isNumeric(px) ? px : (cw - _width) * pxv;\n\n return {\n width: _width,\n height: _height,\n xOffset: _xOffset,\n yOffset: _yOffset\n };\n }\n\n var width = cw;\n var height = width / ir;\n var xOffset = isNumeric(px) ? px : 0;\n var yOffset = isNumeric(py) ? py : (ch - height) * pyv;\n return {\n width: width,\n height: height,\n yOffset: yOffset,\n xOffset: xOffset\n };\n};\n\nvar applyNoneObjectFit = function applyNoneObjectFit(cw, ch, iw, ih, px, py) {\n var width = iw;\n var height = ih;\n var pxp = (0, _matchPercent.default)(px);\n var pyp = (0, _matchPercent.default)(py);\n var pxv = pxp ? pxp.percent : 0.5;\n var pyv = pyp ? pyp.percent : 0.5;\n var xOffset = isNumeric(px) ? px : (cw - width) * pxv;\n var yOffset = isNumeric(py) ? py : (ch - height) * pyv;\n return {\n width: width,\n height: height,\n xOffset: xOffset,\n yOffset: yOffset\n };\n};\n\nvar applyCoverObjectFit = function applyCoverObjectFit(cw, ch, iw, ih, px, py) {\n var ir = iw / ih;\n var cr = cw / ch;\n var pxp = (0, _matchPercent.default)(px);\n var pyp = (0, _matchPercent.default)(py);\n var pxv = pxp ? pxp.percent : 0.5;\n var pyv = pyp ? pyp.percent : 0.5;\n\n if (cr > ir) {\n var _width2 = cw;\n\n var _height2 = _width2 / ir;\n\n var _xOffset2 = isNumeric(px) ? px : 0;\n\n var _yOffset2 = isNumeric(py) ? py : (ch - _height2) * pyv;\n\n return {\n width: _width2,\n height: _height2,\n yOffset: _yOffset2,\n xOffset: _xOffset2\n };\n }\n\n var height = ch;\n var width = height * ir;\n var xOffset = isNumeric(px) ? px : (cw - width) * pxv;\n var yOffset = isNumeric(py) ? py : 0;\n return {\n width: width,\n height: height,\n xOffset: xOffset,\n yOffset: yOffset\n };\n};\n\nvar applyScaleDownObjectFit = function applyScaleDownObjectFit(cw, ch, iw, ih, px, py) {\n var containDimension = applyContainObjectFit(cw, ch, iw, ih, px, py);\n var noneDimension = applyNoneObjectFit(cw, ch, iw, ih, px, py);\n return containDimension.width < noneDimension.width ? containDimension : noneDimension;\n};\n\nvar applyFillObjectFit = function applyFillObjectFit(cw, ch, px, py) {\n return {\n width: cw,\n height: ch,\n xOffset: (0, _matchPercent.default)(px) ? 0 : px || 0,\n yOffset: (0, _matchPercent.default)(py) ? 0 : py || 0\n };\n};\n\nvar resolveObjectFit = function resolveObjectFit(type, cw, ch, iw, ih, px, py) {\n if (type === void 0) {\n type = 'fill';\n }\n\n switch (type) {\n case 'contain':\n return applyContainObjectFit(cw, ch, iw, ih, px, py);\n\n case 'cover':\n return applyCoverObjectFit(cw, ch, iw, ih, px, py);\n\n case 'none':\n return applyNoneObjectFit(cw, ch, iw, ih, px, py);\n\n case 'scale-down':\n return applyScaleDownObjectFit(cw, ch, iw, ih, px, py);\n\n default:\n return applyFillObjectFit(cw, ch, px, py);\n }\n};\n\nvar _default = resolveObjectFit;\nexports.default = _default;","/** @license React v0.15.0\n * scheduler.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\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});var d=void 0,e=void 0,g=void 0,m=void 0,n=void 0;exports.unstable_now=void 0;exports.unstable_forceFrameRate=void 0;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,r=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(r,0),b;}};exports.unstable_now=function(){return Date.now()};d=function(a){null!==p?setTimeout(d,0,a):(p=a,setTimeout(r,0))};e=function(a,b){q=setTimeout(a,b)};g=function(){clearTimeout(q)};m=function(){return!1};n=exports.unstable_forceFrameRate=function(){}}else{var t=window.performance,u=window.Date,v=window.setTimeout,\nw=window.clearTimeout,x=window.requestAnimationFrame,y=window.cancelAnimationFrame;\"undefined\"!==typeof console&&(\"function\"!==typeof x&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"),\"function\"!==typeof y&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\"));exports.unstable_now=\"object\"===typeof t&&\n\"function\"===typeof t.now?function(){return t.now()}:function(){return u.now()};var z=!1,A=null,B=-1,C=-1,D=33.33,E=-1,F=-1,G=0,H=!1;m=function(){return exports.unstable_now()>=G};n=function(){};exports.unstable_forceFrameRate=function(a){0>a||125D&&(D=8.33));F=c}E=a;G=a+D;I.postMessage(null)}};d=function(a){A=a;z||(z=!0,x(function(a){L(a)}))};e=function(a,b){C=v(function(){a(exports.unstable_now())},b)};g=function(){w(C);\nC=-1}}var M=null,N=null,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a,b){var c=a.next;if(c===a)M=null;else{a===M&&(M=c);var f=a.previous;f.next=c;c.previous=f}a.next=a.previous=null;c=a.callback;f=P;var l=O;P=a.priorityLevel;O=a;try{var h=a.expirationTime<=b;switch(P){case 1:var k=c(h);break;case 2:k=c(h);break;case 3:k=c(h);break;case 4:k=c(h);break;case 5:k=c(h)}}catch(Z){throw Z;}finally{P=f,O=l}if(\"function\"===typeof k)if(b=a.expirationTime,a.callback=k,null===M)M=a.next=a.previous=a;else{k=null;h=M;do{if(b<=h.expirationTime){k=h;break}h=h.next}while(h!==\nM);null===k?k=M:k===M&&(M=a);b=k.previous;b.next=k.previous=a;a.next=k;a.previous=b}}function U(a){if(null!==N&&N.startTime<=a){do{var b=N,c=b.next;if(b===c)N=null;else{N=c;var f=b.previous;f.next=c;c.previous=f}b.next=b.previous=null;V(b,b.expirationTime)}while(null!==N&&N.startTime<=a)}}function W(a){S=!1;U(a);R||(null!==M?(R=!0,d(X)):null!==N&&e(W,N.startTime-a))}\nfunction X(a,b){R=!1;S&&(S=!1,g());U(b);Q=!0;try{if(!a)for(;null!==M&&M.expirationTime<=b;)T(M,b),b=exports.unstable_now(),U(b);else if(null!==M){do T(M,b),b=exports.unstable_now(),U(b);while(null!==M&&!m())}if(null!==M)return!0;null!==N&&e(W,N.startTime-b);return!1}finally{Q=!1}}function Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}\nfunction V(a,b){if(null===M)M=a.next=a.previous=a;else{var c=null,f=M;do{if(bf){c=l;if(null===N)N=a.next=a.previous=a;else{b=null;var h=N;do{if(c offset) {\n return index + (0, _indexAtOffset.default)(offset - counter, run);\n }\n\n counter += advanceWidth;\n index += (0, _length.default)(run);\n }\n\n return index;\n};\n\nvar _default = R.curryN(2, indexAtOffset);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _append = _interopRequireDefault(require(\"./append\"));\n\nvar _copy = _interopRequireDefault(require(\"../run/copy\"));\n\nvar _insert = _interopRequireDefault(require(\"../run/insert\"));\n\nvar _runIndexAt = _interopRequireDefault(require(\"./runIndexAt\"));\n\nvar _stringFromCodePoints = _interopRequireDefault(require(\"../utils/stringFromCodePoints\"));\n\nvar mapCond = function mapCond(conds) {\n return R.addIndex(R.map)(R.cond(conds));\n};\n\nvar idxEquals = function idxEquals(idx) {\n return R.compose(R.equals(idx), R.nthArg(1));\n};\n\nvar idxGt = function idxGt(idx) {\n return R.compose(R.gt(R.__, idx), R.nthArg(1));\n};\n/**\n * Insert glyph into attributed string\n *\n * @param {number} index\n * @param {Object} glyph\n * @param {Object} attributed string\n * @return {Object} attributed string with new glyph\n */\n\n\nvar insertGlyph = function insertGlyph(index, glyph, string) {\n var runIndex = (0, _runIndexAt.default)(index, string); // Add glyph to the end if run index invalid\n\n if (runIndex === -1) {\n return (0, _append.default)(glyph, string);\n }\n\n var codePoints = R.propOr([], 'codePoints')(glyph);\n var incRange = R.add(R.length(codePoints));\n return R.evolve({\n string: R.compose(R.join(''), R.insert(index, (0, _stringFromCodePoints.default)(codePoints))),\n runs: mapCond([[idxEquals(runIndex), function (run) {\n return (0, _insert.default)(index - run.start, glyph, run);\n }], [idxGt(runIndex), R.evolve({\n start: incRange,\n end: incRange\n })], [R.T, _copy.default]])\n })(string);\n};\n\nvar _default = R.curryN(3, insertGlyph);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _leadingOffset = _interopRequireDefault(require(\"../run/leadingOffset\"));\n\n/**\n * Get attributed string leading white space offset\n *\n * @param {Object} attributed string\n * @return {number} leading white space offset\n */\nvar leadingOffset = R.compose(_leadingOffset.default, R.head, R.propOr([], 'runs'));\nvar _default = leadingOffset;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _start = _interopRequireDefault(require(\"./start\"));\n\nvar _end = _interopRequireDefault(require(\"./end\"));\n\n/**\n * Get attributed string length\n *\n * @param {Object} glyph string\n * @return {number} end\n */\nvar length = R.converge(R.subtract, [_end.default, _start.default]);\nvar _default = length;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _add = _interopRequireDefault(require(\"../run/add\"));\n\nvar _empty = _interopRequireDefault(require(\"../run/empty\"));\n\nvar _prepend = _interopRequireDefault(require(\"../run/prepend\"));\n\nvar _stringFromCodePoints = _interopRequireDefault(require(\"../utils/stringFromCodePoints\"));\n\n/**\n * prepend glyph into last run of attributed string\n *\n * @param {Object} glyph\n * @param {Object} attributed string\n * @return {Object} attributed string with new glyph\n */\nvar prepend = function prepend(glyph, string) {\n var codePoints = R.propOr([], 'codePoints')(glyph);\n return R.evolve({\n string: R.concat((0, _stringFromCodePoints.default)(codePoints)),\n runs: R.converge(R.concat, [R.compose(R.unapply(R.identity), (0, _prepend.default)(glyph), R.either(R.head, _empty.default)), R.compose(R.map((0, _add.default)(codePoints.length)), R.tail)])\n })(string);\n};\n\nvar _default = R.curryN(2, prepend);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Sum run function results\n *\n * @param {function} accum fn\n * @param {function} function run (run) -> Number\n * @param {number} initial value\n * @return {number} sum\n */\nvar sumRuns = function sumRuns(accum, fn, init) {\n if (init === void 0) {\n init = 0;\n }\n\n return R.compose(R.reduce(R.useWith(accum, [R.identity, fn]), init), R.prop('runs'));\n};\n\nvar _default = sumRuns;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _runIndexAt = _interopRequireDefault(require(\"./runIndexAt\"));\n\n/**\n * Get run at char index\n *\n * @param {number} char index\n * @param {Object} attributedString\n * @return {Object} run\n */\nvar runAt = function runAt(n, attributedString) {\n var runIndex = (0, _runIndexAt.default)(n)(attributedString);\n return R.path(['runs', runIndex])(attributedString);\n};\n\nvar _default = R.curryN(2, runAt);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _runIndexAt = _interopRequireDefault(require(\"../run/runIndexAt\"));\n\n/**\n * Get run index at char index\n *\n * @param {number} char index\n * @param {Object} attributedString\n * @return {number} run index\n */\nvar runIndexAt = function runIndexAt(n, string) {\n return R.compose((0, _runIndexAt.default)(n), R.prop('runs'))(string);\n};\n\nvar _default = R.curryN(2, runIndexAt);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _slice = _interopRequireDefault(require(\"../run/slice\"));\n\nvar _filter = _interopRequireDefault(require(\"../run/filter\"));\n\nvar _subtract = _interopRequireDefault(require(\"../run/subtract\"));\n\nvar _mapIndexed = _interopRequireDefault(require(\"../utils/mapIndexed\"));\n\n/**\n * Slice array of runs\n *\n * @param {number} start offset\n * @param {number} end offset\n * @param {Array} runs\n * @return {Array} sliced runs\n */\nvar sliceRuns = function sliceRuns(start, end) {\n return function (runs) {\n var firstRun = function firstRun(a) {\n return (0, _slice.default)(start - a.start, end - a.start, a);\n };\n\n var lastRun = function lastRun(a) {\n return (0, _slice.default)(0, end - a.start, a);\n };\n\n var intermediateRun = R.identity;\n var res = (0, _mapIndexed.default)([R.o((0, _subtract.default)(start), firstRun), // Slice first run\n R.o((0, _subtract.default)(start), intermediateRun), // Slice intermediate runs\n R.o((0, _subtract.default)(start), lastRun) // Slice last run\n ])(runs);\n return res;\n };\n};\n/**\n * Slice attributed string between two indices\n *\n * @param {number} start offset\n * @param {number} end offset\n * @param {Object} attributedString\n * @return {Object} attributedString\n */\n\n\nvar slice = function slice(start, end, string) {\n return R.ifElse(R.pathEq(['string', 'length'], 0), R.identity, R.evolve({\n string: R.slice(start, end),\n runs: R.compose(sliceRuns(start, end), (0, _filter.default)(start, end))\n }))(string);\n};\n\nvar _default = R.curryN(3, slice);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _slice = _interopRequireDefault(require(\"./slice\"));\n\nvar _indexAtOffset = _interopRequireDefault(require(\"./indexAtOffset\"));\n\n/**\n * Slice attributed string at given offset\n *\n * @param {number} offset\n * @param {Object} attributedString\n * @return {Object} attributedString\n */\nvar sliceAtOffset = function sliceAtOffset(offset, string) {\n var index = (0, _indexAtOffset.default)(offset, string);\n return (0, _slice.default)(0, index, string);\n};\n\nvar _default = R.curryN(2, sliceAtOffset);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get attributed string start value\n *\n * @param {Object} glyph string\n * @return {number} start\n */\nvar start = R.ifElse(R.pathEq(['runs', 'length'], 0), R.always(0), R.path(['runs', 0, 'start']));\nvar _default = start;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _trailingOffset = _interopRequireDefault(require(\"../run/trailingOffset\"));\n\n/**\n * Get attributed string trailing white space offset\n *\n * @param {Object} attributed string\n * @return {number} trailing white space offset\n */\nvar trailingOffset = R.compose(_trailingOffset.default, R.last, R.propOr([], 'runs'));\nvar _default = trailingOffset;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _slice = _interopRequireDefault(require(\"./slice\"));\n\nvar testChar = R.test(/\\S/g);\nvar findCharIndex = R.findIndex(testChar);\nvar findLastCharIndex = R.o(R.inc, R.findLastIndex(testChar));\n/**\n * Removes (strips) whitespace from both ends of the attributted string.\n *\n * @param {Object} attributedString\n * @return {Object} attributedString\n */\n\nvar trim = R.chain(R.apply(_slice.default), R.compose(R.juxt([findCharIndex, findLastCharIndex]), R.prop('string')));\nvar _default = trim;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get paragrpah block height\n *\n * @param {Object} paragraph block\n * @return {number} paragraph block height\n */\nvar height = R.compose(R.sum, R.map(R.prop('height')), R.pluck('box'));\nvar _default = height;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Slice block lines\n *\n * @param {number} lines quantity\n * @param {Object} paragraph block\n * @return {Object} sliced paragraph block\n */\nvar sliceBlock = function sliceBlock(lines, block) {\n return R.slice(0, lines, block);\n};\n\nvar _default = sliceBlock;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Slice block at given height\n *\n * @param {number} height\n * @param {Object} paragraph block\n * @return {number} sliced paragraph block\n */\nvar sliceAtHeight = function sliceAtHeight(height) {\n return function (block) {\n var newBlock = [];\n var counter = 0;\n\n for (var i = 0; i < block.length; i += 1) {\n var line = block[i];\n counter += line.box.height;\n\n if (counter < height) {\n newBlock.push(line);\n } else {\n break;\n }\n }\n\n return newBlock;\n };\n};\n\nvar _default = sliceAtHeight;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _append = _interopRequireDefault(require(\"../attributedString/append\"));\n\nvar _trim = _interopRequireDefault(require(\"../attributedString/trim\"));\n\n/**\n * Trucante block with ellipsis\n *\n * @param {number} lines quantity\n * @param {Object} paragraph block\n * @return {Object} sliced paragraph block\n */\nvar truncate = function truncate(block) {\n var runs = R.propOr([], 'runs', R.last(block));\n var font = R.path(['attributes', 'font'], R.last(runs));\n\n if (font) {\n return R.adjust(-1, R.compose((0, _append.default)(font.glyphForCodePoint(8230)), _trim.default))(block);\n }\n\n return block;\n};\n\nvar _default = truncate;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/* eslint-disable no-multi-assign */\nvar KASHIDA_PRIORITY = 0;\nvar NULL_PRIORITY = 3;\n\nvar getDistances = function getDistances(gap, factors) {\n var total = 0;\n var priorities = [];\n var unconstrained = [];\n\n for (var _priority = KASHIDA_PRIORITY; _priority <= NULL_PRIORITY; _priority += 1) {\n priorities[_priority] = unconstrained[_priority] = 0;\n } // sum the factors at each priority\n\n\n for (var j = 0; j < factors.length; j += 1) {\n var f = factors[j];\n var sum = f.before + f.after;\n total += sum;\n priorities[f.priority] += sum;\n\n if (f.unconstrained) {\n unconstrained[f.priority] += sum;\n }\n } // choose the priorities that need to be applied\n\n\n var highestPriority = -1;\n var highestPrioritySum = 0;\n var remainingGap = gap;\n var priority;\n\n for (priority = KASHIDA_PRIORITY; priority <= NULL_PRIORITY; priority += 1) {\n var prioritySum = priorities[priority];\n\n if (prioritySum !== 0) {\n if (highestPriority === -1) {\n highestPriority = priority;\n highestPrioritySum = prioritySum;\n } // if this priority covers the remaining gap, we're done\n\n\n if (Math.abs(remainingGap) <= Math.abs(prioritySum)) {\n priorities[priority] = remainingGap / prioritySum;\n unconstrained[priority] = 0;\n remainingGap = 0;\n break;\n } // mark that we need to use 100% of the adjustment from\n // this priority, and subtract the space that it consumes\n\n\n priorities[priority] = 1;\n remainingGap -= prioritySum; // if this priority has unconstrained glyphs, let them consume the remaining space\n\n if (unconstrained[priority] !== 0) {\n unconstrained[priority] = remainingGap / unconstrained[priority];\n remainingGap = 0;\n break;\n }\n }\n } // zero out remaining priorities (if any)\n\n\n for (var p = priority + 1; p <= NULL_PRIORITY; p += 1) {\n priorities[p] = 0;\n unconstrained[p] = 0;\n } // if there is still space left over, assign it to the highest priority that we saw.\n // this violates their factors, but it only happens in extreme cases\n\n\n if (remainingGap > 0 && highestPriority > -1) {\n priorities[highestPriority] = (highestPrioritySum + (gap - total)) / highestPrioritySum;\n } // create and return an array of distances to add to each glyph's advance\n\n\n var distances = [];\n\n for (var index = 0; index < factors.length; index += 1) {\n // the distance to add to this glyph is the sum of the space to add\n // after this glyph, and the space to add before the next glyph\n var _f = factors[index];\n var next = factors[index + 1];\n var dist = _f.after * priorities[_f.priority];\n\n if (next) {\n dist += next.before * priorities[next.priority];\n } // if this glyph is unconstrained, add the unconstrained distance as well\n\n\n if (_f.unconstrained) {\n dist += _f.after * unconstrained[_f.priority];\n\n if (next) {\n dist += next.before * unconstrained[next.priority];\n }\n }\n\n distances.push(dist);\n }\n\n return distances;\n};\n\nvar _default = getDistances;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _isWhiteSpace = _interopRequireDefault(require(\"../../glyph/isWhiteSpace\"));\n\nvar WHITESPACE_PRIORITY = 1;\nvar LETTER_PRIORITY = 2;\nvar EXPAND_WHITESPACE_FACTOR = {\n before: 0.5,\n after: 0.5,\n priority: WHITESPACE_PRIORITY,\n unconstrained: false\n};\nvar EXPAND_CHAR_FACTOR = {\n before: 0.14453125,\n // 37/256\n after: 0.14453125,\n priority: LETTER_PRIORITY,\n unconstrained: false\n};\nvar SHRINK_WHITESPACE_FACTOR = {\n before: -0.04296875,\n // -11/256\n after: -0.04296875,\n priority: WHITESPACE_PRIORITY,\n unconstrained: false\n};\nvar SHRINK_CHAR_FACTOR = {\n before: -0.04296875,\n after: -0.04296875,\n priority: LETTER_PRIORITY,\n unconstrained: false\n};\n\nvar getCharFactor = function getCharFactor(direction, options) {\n var expandCharFactor = R.propOr({}, 'expandCharFactor', options);\n var shrinkCharFactor = R.propOr({}, 'shrinkCharFactor', options);\n return direction === 'GROW' ? R.merge(EXPAND_CHAR_FACTOR, expandCharFactor) : R.merge(SHRINK_CHAR_FACTOR, shrinkCharFactor);\n};\n\nvar getWhitespaceFactor = function getWhitespaceFactor(direction, options) {\n var expandWhitespaceFactor = R.propOr({}, 'expandWhitespaceFactor', options);\n var shrinkWhitespaceFactor = R.propOr({}, 'shrinkWhitespaceFactor', options);\n return direction === 'GROW' ? R.merge(EXPAND_WHITESPACE_FACTOR, expandWhitespaceFactor) : R.merge(SHRINK_WHITESPACE_FACTOR, shrinkWhitespaceFactor);\n};\n\nvar factor = function factor(direction, options) {\n return function (glyphs) {\n var charFactor = getCharFactor(direction, options);\n var whitespaceFactor = getWhitespaceFactor(direction, options);\n var factors = [];\n\n for (var index = 0; index < glyphs.length; index += 1) {\n var f = void 0;\n var glyph = glyphs[index];\n\n if ((0, _isWhiteSpace.default)(glyph)) {\n f = R.clone(whitespaceFactor);\n\n if (index === glyphs.length - 1) {\n f.before = 0;\n\n if (index > 0) {\n factors[index - 1].after = 0;\n }\n }\n } else if (glyph.isMark && index > 0) {\n f = R.clone(factors[index - 1]);\n f.before = 0;\n factors[index - 1].after = 0;\n } else {\n f = R.clone(charFactor);\n }\n\n factors.push(f);\n }\n\n return factors;\n };\n};\n\nvar getFactors = function getFactors(gap, line, options) {\n var direction = gap > 0 ? 'GROW' : 'SHRINK';\n var getFactor = factor(direction, options);\n var concatFactors = R.useWith(R.concat, [R.identity, R.compose(getFactor, R.prop('glyphs'))]);\n return R.compose(R.adjust(-1, R.assoc('after', 0)), R.adjust(0, R.assoc('before', 0)), R.reduce(concatFactors, []), R.prop('runs'))(line);\n};\n\nvar _default = getFactors;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _getFactors = _interopRequireDefault(require(\"./getFactors\"));\n\nvar _getDistances = _interopRequireDefault(require(\"./getDistances\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"../../attributedString/advanceWidth\"));\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Adjust run positions by given distances\n *\n * @param {Array} distances\n * @param {Object} line\n * @returns {Object} line\n */\nvar justifyLine = function justifyLine(distances, line) {\n var index = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(line.runs), _step; !(_step = _iterator()).done;) {\n var run = _step.value;\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(run.positions), _step2; !(_step2 = _iterator2()).done;) {\n var position = _step2.value;\n position.xAdvance += distances[index++];\n }\n }\n\n return line;\n};\n/**\n * A JustificationEngine is used by a Typesetter to perform line fragment\n * justification. This implementation is based on a description of Apple's\n * justification algorithm from a PDF in the Apple Font Tools package.\n *\n * //TODO: Make it immutable\n *\n * @param {Object} layout options\n * @param {Object} line\n * @returns {Object} line\n */\n\n\nvar justification = function justification(options, line) {\n var gap = line.box.width - (0, _advanceWidth.default)(line);\n if (gap === 0) return; // Exact fit\n\n var factors = (0, _getFactors.default)(gap, line, options);\n var distances = (0, _getDistances.default)(gap, factors);\n return justifyLine(distances, line);\n};\n\nvar _default = R.curryN(2, justification);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/* eslint-disable no-plusplus */\nvar INFINITY = 10000;\n\nvar getNextBreakpoint = function getNextBreakpoint(subnodes, widths, lineNumber) {\n var position = null;\n var minimumBadness = Infinity;\n var sum = {\n width: 0,\n stretch: 0,\n shrink: 0\n };\n var lineLength = widths[Math.min(lineNumber, widths.length - 1)];\n\n var calculateRatio = function calculateRatio(node) {\n if (sum.width < lineLength) {\n return sum.stretch - node.stretch > 0 ? (lineLength - sum.width) / sum.stretch : INFINITY;\n }\n\n if (sum.width > lineLength) {\n return sum.shrink - node.shrink > 0 ? (lineLength - sum.width) / sum.shrink : INFINITY;\n }\n\n return 0;\n };\n\n for (var i = 0; i < subnodes.length; i += 1) {\n var node = subnodes[i];\n\n if (node.type === 'box') {\n sum.width += node.width;\n } else if (node.type === 'glue') {\n sum.width += node.width;\n sum.stretch += node.stretch;\n sum.shrink += node.shrink;\n }\n\n if (sum.width - sum.shrink > lineLength) break;\n\n if (node.type === 'penalty' || node.type === 'glue') {\n var ratio = calculateRatio(node);\n var penalty = node.type === 'penalty' ? node.penalty : 0;\n var badness = 100 * Math.pow(Math.abs(ratio), 3) + penalty;\n\n if (minimumBadness >= badness) {\n position = i;\n minimumBadness = badness;\n }\n }\n }\n\n return sum.width - sum.shrink > lineLength ? position : null;\n};\n\nvar applyBestFit = function applyBestFit(nodes, widths) {\n var count = 0;\n var lineNumber = 0;\n var subnodes = nodes;\n var breakpoints = [{\n position: 0\n }];\n\n while (subnodes.length > 0) {\n var breakpoint = getNextBreakpoint(subnodes, widths, lineNumber);\n\n if (breakpoint) {\n count += breakpoint;\n breakpoints.push({\n position: count\n });\n subnodes = subnodes.slice(breakpoint + 1, subnodes.length);\n count++;\n lineNumber++;\n } else {\n subnodes = [];\n }\n }\n\n return breakpoints;\n};\n\nvar _default = applyBestFit;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _bestFit = _interopRequireDefault(require(\"./bestFit\"));\n\nvar _linebreak = _interopRequireDefault(require(\"./linebreak\"));\n\nvar _slice = _interopRequireDefault(require(\"../../attributedString/slice\"));\n\nvar _insertGlyph = _interopRequireDefault(require(\"../../attributedString/insertGlyph\"));\n\nvar _advanceWidthBetween = _interopRequireDefault(require(\"../../attributedString/advanceWidthBetween\"));\n\nvar HYPHEN = 0x002d;\nvar TOLERANCE_STEPS = 5;\nvar TOLERANCE_LIMIT = 50;\nvar opts = {\n width: 3,\n stretch: 6,\n shrink: 9\n};\n/**\n * Slice attributed string to many lines\n *\n * @param {Object} attributed string\n * @param {Array} nodes\n * @param {Array} breaks\n * @return {Array} attributed strings\n */\n\nvar breakLines = function breakLines(string, nodes, breaks) {\n var start = 0;\n var end = null;\n var lines = breaks.reduce(function (acc, breakPoint) {\n var node = nodes[breakPoint.position];\n var prevNode = nodes[breakPoint.position - 1]; // Last breakpoint corresponds to K&P mandatory final glue\n\n if (breakPoint.position === nodes.length - 1) return acc;\n var line;\n\n if (node.type === 'penalty') {\n end = prevNode.value.end;\n line = (0, _slice.default)(start, end, string);\n line = (0, _insertGlyph.default)(line.length, HYPHEN, line);\n } else {\n end = node.value.end;\n line = (0, _slice.default)(start, end, string);\n }\n\n start = end;\n return [].concat(acc, [line]);\n }, []); // Last line\n\n lines.push((0, _slice.default)(start, string.string.length, string));\n return lines;\n};\n/**\n * Return Knuth & Plass nodes based on line and previously calculated syllables\n *\n * @param {Object} attributed string\n * @param {Object} attributed string\n * @param {Object} layout options\n * @return {Array} attributed strings\n */\n\n\nvar getNodes = function getNodes(attributedString, _ref, options) {\n var align = _ref.align;\n var start = 0;\n var hyphenWidth = 5;\n var syllables = attributedString.syllables;\n var hyphenPenalty = options.hyphenationPenalty || (align === 'justify' ? 100 : 600);\n var result = syllables.reduce(function (acc, s, index) {\n var width = (0, _advanceWidthBetween.default)(start, start + s.length, attributedString);\n\n if (s.trim() === '') {\n var stretch = width * opts.width / opts.stretch;\n var shrink = width * opts.width / opts.shrink;\n var value = {\n start: start,\n end: start + s.length\n };\n acc.push(_linebreak.default.glue(width, value, stretch, shrink));\n } else {\n var hyphenated = syllables[index + 1] !== ' ';\n var _value = {\n start: start,\n end: start + s.length\n };\n acc.push(_linebreak.default.box(width, _value, hyphenated));\n\n if (syllables[index + 1] && hyphenated) {\n acc.push(_linebreak.default.penalty(hyphenWidth, hyphenPenalty, 1));\n }\n }\n\n start += s.length;\n return acc;\n }, []);\n result.push(_linebreak.default.glue(0, null, _linebreak.default.infinity, 0));\n result.push(_linebreak.default.penalty(0, -_linebreak.default.infinity, 1));\n return result;\n};\n\nvar getStyles = R.pathOr({}, ['attributedString', 'runs', 0, 'attributes']);\n/**\n * Performs Knuth & Plass line breaking algorithm\n * Fallbacks to best fit algorithm if latter not successful\n *\n * @param {Object} layout options\n * @param {Object} attributed string\n * @param {Object} attributed string\n * @return {Array} attributed strings\n */\n\nvar lineBreaker = function lineBreaker(options, attributedString, availableWidths) {\n var tolerance = options.tolerance || 4;\n var style = getStyles(attributedString);\n var nodes = getNodes(attributedString, style, options);\n var breaks = (0, _linebreak.default)(nodes, availableWidths, {\n tolerance: tolerance\n }); // Try again with a higher tolerance if the line breaking failed.\n\n while (breaks.length === 0 && tolerance < TOLERANCE_LIMIT) {\n tolerance += TOLERANCE_STEPS;\n breaks = (0, _linebreak.default)(nodes, availableWidths, {\n tolerance: tolerance\n });\n }\n\n if (breaks.length === 0 || breaks.length === 1 && breaks[0].position === 0) {\n breaks = (0, _bestFit.default)(nodes, availableWidths);\n }\n\n return breakLines(attributedString, nodes, breaks.slice(1));\n};\n\nvar _default = R.curryN(3, lineBreaker);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _linkedList = _interopRequireDefault(require(\"./linkedList\"));\n\n/* eslint-disable no-restricted-properties */\n\n/**\n * @preserve Knuth and Plass line breaking algorithm in JavaScript\n *\n * Licensed under the new BSD License.\n * Copyright 2009-2010, Bram Stein\n * All rights reserved.\n */\nvar linebreak = function linebreak(nodes, lines, settings) {\n var options = {\n demerits: {\n line: settings && settings.demerits && settings.demerits.line || 10,\n flagged: settings && settings.demerits && settings.demerits.flagged || 100,\n fitness: settings && settings.demerits && settings.demerits.fitness || 3000\n },\n tolerance: settings && settings.tolerance || 3\n };\n var activeNodes = new _linkedList.default();\n var sum = {\n width: 0,\n stretch: 0,\n shrink: 0\n };\n var lineLengths = lines;\n var breaks = [];\n var tmp = {\n data: {\n demerits: Infinity\n }\n };\n\n function breakpoint(position, demerits, ratio, line, fitnessClass, totals, previous) {\n return {\n position: position,\n demerits: demerits,\n ratio: ratio,\n line: line,\n fitnessClass: fitnessClass,\n totals: totals || {\n width: 0,\n stretch: 0,\n shrink: 0\n },\n previous: previous\n };\n }\n\n function computeCost(start, end, active, currentLine) {\n var width = sum.width - active.totals.width;\n var stretch = 0;\n var shrink = 0; // If the current line index is within the list of linelengths, use it, otherwise use\n // the last line length of the list.\n\n var lineLength = currentLine < lineLengths.length ? lineLengths[currentLine - 1] : lineLengths[lineLengths.length - 1];\n\n if (nodes[end].type === 'penalty') {\n width += nodes[end].width;\n }\n\n if (width < lineLength) {\n // Calculate the stretch ratio\n stretch = sum.stretch - active.totals.stretch;\n\n if (stretch > 0) {\n return (lineLength - width) / stretch;\n }\n\n return linebreak.infinity;\n }\n\n if (width > lineLength) {\n // Calculate the shrink ratio\n shrink = sum.shrink - active.totals.shrink;\n\n if (shrink > 0) {\n return (lineLength - width) / shrink;\n }\n\n return linebreak.infinity;\n } // perfect match\n\n\n return 0;\n } // Add width, stretch and shrink values from the current\n // break point up to the next box or forced penalty.\n\n\n function computeSum(breakPointIndex) {\n var result = {\n width: sum.width,\n stretch: sum.stretch,\n shrink: sum.shrink\n };\n\n for (var i = breakPointIndex; i < nodes.length; i += 1) {\n if (nodes[i].type === 'glue') {\n result.width += nodes[i].width;\n result.stretch += nodes[i].stretch;\n result.shrink += nodes[i].shrink;\n } else if (nodes[i].type === 'box' || nodes[i].type === 'penalty' && nodes[i].penalty === -linebreak.infinity && i > breakPointIndex) {\n break;\n }\n }\n\n return result;\n } // The main loop of the algorithm\n // eslint-disable-next-line no-shadow\n\n\n function mainLoop(node, index, nodes) {\n var active = activeNodes.first();\n var next = null;\n var ratio = 0;\n var demerits = 0;\n var candidates = [];\n var badness;\n var currentLine = 0;\n var tmpSum;\n var currentClass = 0;\n var fitnessClass;\n var candidate;\n var newNode; // The inner loop iterates through all the active nodes with line < currentLine and then\n // breaks out to insert the new active node candidates before looking at the next active\n // nodes for the next lines. The result of this is that the active node list is always\n // sorted by line number.\n\n while (active !== null) {\n candidates = [{\n demerits: Infinity\n }, {\n demerits: Infinity\n }, {\n demerits: Infinity\n }, {\n demerits: Infinity\n }]; // Iterate through the linked list of active nodes to find new potential active nodes\n // and deactivate current active nodes.\n\n while (active !== null) {\n next = active.next;\n currentLine = active.data.line + 1;\n ratio = computeCost(active.data.position, index, active.data, currentLine); // Deactive nodes when the distance between the current active node and the\n // current node becomes too large (i.e. it exceeds the stretch limit and the stretch\n // ratio becomes negative) or when the current node is a forced break (i.e. the end\n // of the paragraph when we want to remove all active nodes, but possibly have a final\n // candidate active node---if the paragraph can be set using the given tolerance value.)\n\n if (ratio < -1 || node.type === 'penalty' && node.penalty === -linebreak.infinity) {\n activeNodes.remove(active);\n } // If the ratio is within the valid range of -1 <= ratio <= tolerance calculate the\n // total demerits and record a candidate active node.\n\n\n if (ratio >= -1 && ratio <= options.tolerance) {\n badness = 100 * Math.pow(Math.abs(ratio), 3); // Positive penalty\n\n if (node.type === 'penalty' && node.penalty >= 0) {\n demerits = Math.pow(options.demerits.line + badness, 2) + Math.pow(node.penalty, 2); // Negative penalty but not a forced break\n } else if (node.type === 'penalty' && node.penalty !== -linebreak.infinity) {\n demerits = Math.pow(options.demerits.line + badness, 2) - Math.pow(node.penalty, 2); // All other cases\n } else {\n demerits = Math.pow(options.demerits.line + badness, 2);\n }\n\n if (node.type === 'penalty' && nodes[active.data.position].type === 'penalty') {\n demerits += options.demerits.flagged * node.flagged * nodes[active.data.position].flagged;\n } // Calculate the fitness class for this candidate active node.\n\n\n if (ratio < -0.5) {\n currentClass = 0;\n } else if (ratio <= 0.5) {\n currentClass = 1;\n } else if (ratio <= 1) {\n currentClass = 2;\n } else {\n currentClass = 3;\n } // Add a fitness penalty to the demerits if the fitness classes of two adjacent lines\n // differ too much.\n\n\n if (Math.abs(currentClass - active.data.fitnessClass) > 1) {\n demerits += options.demerits.fitness;\n } // Add the total demerits of the active node to get the total demerits of this candidate node.\n\n\n demerits += active.data.demerits; // Only store the best candidate for each fitness class\n\n if (demerits < candidates[currentClass].demerits) {\n candidates[currentClass] = {\n active: active,\n demerits: demerits,\n ratio: ratio\n };\n }\n }\n\n active = next; // Stop iterating through active nodes to insert new candidate active nodes in the active list\n // before moving on to the active nodes for the next line.\n // TODO: The Knuth and Plass paper suggests a conditional for currentLine < j0. This means paragraphs\n // with identical line lengths will not be sorted by line number. Find out if that is a desirable outcome.\n // For now I left this out, as it only adds minimal overhead to the algorithm and keeping the active node\n // list sorted has a higher priority.\n\n if (active !== null && active.data.line >= currentLine) {\n break;\n }\n }\n\n tmpSum = computeSum(index);\n\n for (fitnessClass = 0; fitnessClass < candidates.length; fitnessClass += 1) {\n candidate = candidates[fitnessClass];\n\n if (candidate.demerits < Infinity) {\n newNode = new _linkedList.default.Node(breakpoint(index, candidate.demerits, candidate.ratio, candidate.active.data.line + 1, fitnessClass, tmpSum, candidate.active));\n\n if (active !== null) {\n activeNodes.insertBefore(active, newNode);\n } else {\n activeNodes.push(newNode);\n }\n }\n }\n }\n } // Add an active node for the start of the paragraph.\n\n\n activeNodes.push(new _linkedList.default.Node(breakpoint(0, 0, 0, 0, 0, undefined, null))); // eslint-disable-next-line no-shadow\n\n nodes.forEach(function (node, index, nodes) {\n if (node.type === 'box') {\n sum.width += node.width;\n } else if (node.type === 'glue') {\n if (index > 0 && nodes[index - 1].type === 'box') {\n mainLoop(node, index, nodes);\n }\n\n sum.width += node.width;\n sum.stretch += node.stretch;\n sum.shrink += node.shrink;\n } else if (node.type === 'penalty' && node.penalty !== linebreak.infinity) {\n mainLoop(node, index, nodes);\n }\n });\n\n if (activeNodes.size() !== 0) {\n // Find the best active node (the one with the least total demerits.)\n activeNodes.forEach(function (node) {\n if (node.data.demerits < tmp.data.demerits) {\n tmp = node;\n }\n });\n\n while (tmp !== null) {\n breaks.push({\n position: tmp.data.position,\n ratio: tmp.data.ratio\n });\n tmp = tmp.data.previous;\n }\n\n return breaks.reverse();\n }\n\n return [];\n};\n\nlinebreak.infinity = 10000;\n\nlinebreak.glue = function (width, value, stretch, shrink) {\n return {\n type: 'glue',\n value: value,\n width: width,\n stretch: stretch,\n shrink: shrink\n };\n};\n\nlinebreak.box = function (width, value, hyphenated) {\n if (hyphenated === void 0) {\n hyphenated = false;\n }\n\n return {\n type: 'box',\n width: width,\n value: value,\n hyphenated: hyphenated\n };\n};\n\nlinebreak.penalty = function (width, penalty, flagged) {\n return {\n type: 'penalty',\n width: width,\n penalty: penalty,\n flagged: flagged\n };\n};\n\nvar _default = linebreak;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\n/* eslint-disable no-param-reassign */\n\n/* eslint-disable max-classes-per-file */\nvar Node = /*#__PURE__*/function () {\n function Node(data) {\n this.prev = null;\n this.next = null;\n this.data = data;\n }\n\n var _proto = Node.prototype;\n\n _proto.toString = function toString() {\n return this.data.toString();\n };\n\n return Node;\n}();\n\nvar LinkedList = /*#__PURE__*/function () {\n function LinkedList() {\n this.head = null;\n this.tail = null;\n this.listSize = 0;\n }\n\n var _proto2 = LinkedList.prototype;\n\n _proto2.isLinked = function isLinked(node) {\n return !(node && node.prev === null && node.next === null && this.tail !== node && this.head !== node || this.isEmpty());\n };\n\n _proto2.size = function size() {\n return this.listSize;\n };\n\n _proto2.isEmpty = function isEmpty() {\n return this.listSize === 0;\n };\n\n _proto2.first = function first() {\n return this.head;\n };\n\n _proto2.last = function last() {\n return this.last;\n };\n\n _proto2.toString = function toString() {\n return this.toArray().toString();\n };\n\n _proto2.toArray = function toArray() {\n var node = this.head;\n var result = [];\n\n while (node !== null) {\n result.push(node);\n node = node.next;\n }\n\n return result;\n };\n\n _proto2.forEach = function forEach(fun) {\n var node = this.head;\n\n while (node !== null) {\n fun(node);\n node = node.next;\n }\n };\n\n _proto2.contains = function contains(n) {\n var node = this.head;\n\n if (!this.isLinked(n)) {\n return false;\n }\n\n while (node !== null) {\n if (node === n) {\n return true;\n }\n\n node = node.next;\n }\n\n return false;\n };\n\n _proto2.at = function at(i) {\n var node = this.head;\n var index = 0;\n\n if (i >= this.listLength || i < 0) {\n return null;\n }\n\n while (node !== null) {\n if (i === index) {\n return node;\n }\n\n node = node.next;\n index += 1;\n }\n\n return null;\n };\n\n _proto2.insertAfter = function insertAfter(node, newNode) {\n if (!this.isLinked(node)) {\n return this;\n }\n\n newNode.prev = node;\n newNode.next = node.next;\n\n if (node.next === null) {\n this.tail = newNode;\n } else {\n node.next.prev = newNode;\n }\n\n node.next = newNode;\n this.listSize += 1;\n return this;\n };\n\n _proto2.insertBefore = function insertBefore(node, newNode) {\n if (!this.isLinked(node)) {\n return this;\n }\n\n newNode.prev = node.prev;\n newNode.next = node;\n\n if (node.prev === null) {\n this.head = newNode;\n } else {\n node.prev.next = newNode;\n }\n\n node.prev = newNode;\n this.listSize += 1;\n return this;\n };\n\n _proto2.push = function push(node) {\n if (this.head === null) {\n this.unshift(node);\n } else {\n this.insertAfter(this.tail, node);\n }\n\n return this;\n };\n\n _proto2.unshift = function unshift(node) {\n if (this.head === null) {\n this.head = node;\n this.tail = node;\n node.prev = null;\n node.next = null;\n this.listSize += 1;\n } else {\n this.insertBefore(this.head, node);\n }\n\n return this;\n };\n\n _proto2.remove = function remove(node) {\n if (!this.isLinked(node)) {\n return this;\n }\n\n if (node.prev === null) {\n this.head = node.next;\n } else {\n node.prev.next = node.next;\n }\n\n if (node.next === null) {\n this.tail = node.prev;\n } else {\n node.next.prev = node.prev;\n }\n\n this.listSize -= 1;\n return this;\n };\n\n _proto2.pop = function pop() {\n var node = this.tail;\n this.tail.prev.next = null;\n this.tail = this.tail.prev;\n this.listSize -= 1;\n node.prev = null;\n node.next = null;\n return node;\n };\n\n _proto2.shift = function shift() {\n var node = this.head;\n this.head.next.prev = null;\n this.head = this.head.next;\n this.listSize -= 1;\n node.prev = null;\n node.next = null;\n return node;\n };\n\n return LinkedList;\n}();\n\n(0, _defineProperty2.default)(LinkedList, \"Node\", Node);\nvar _default = LinkedList;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _unicodeProperties = _interopRequireDefault(require(\"@react-pdf/unicode-properties\"));\n\nvar _empty = _interopRequireDefault(require(\"../../attributedString/empty\"));\n\nvar ignoredScripts = ['Common', 'Inherited', 'Unknown'];\n/**\n * Resolves unicode script in runs, grouping equal runs together\n *\n * @param {Object} layout options\n * @param {Object} attributed string\n * @return {Object} attributed string\n */\n\nvar scriptItemizer = function scriptItemizer(options, attributedString) {\n var string = attributedString.string;\n var lastScript = 'Unknown';\n var lastIndex = 0;\n var index = 0;\n var res = [];\n if (!string) return (0, _empty.default)();\n\n for (var i = 0; i < string.length; i += 1) {\n var char = string[i];\n var codePoint = char.codePointAt();\n\n var script = _unicodeProperties.default.getScript(codePoint);\n\n if (script !== lastScript && !ignoredScripts.includes(script)) {\n if (lastScript !== 'Unknown') {\n res.push({\n start: lastIndex,\n end: index,\n attributes: {\n script: lastScript\n }\n });\n }\n\n lastIndex = index;\n lastScript = script;\n }\n\n index += char.length;\n }\n\n if (lastIndex < string.length) {\n res.push({\n start: lastIndex,\n end: string.length,\n attributes: {\n script: lastScript\n }\n });\n }\n\n return {\n string: string,\n runs: res\n };\n};\n\nvar _default = R.curryN(2, scriptItemizer);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _ascent = _interopRequireDefault(require(\"../../run/ascent\"));\n\nvar _ascent2 = _interopRequireDefault(require(\"../../attributedString/ascent\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"../../run/advanceWidth\"));\n\nvar _advanceWidth2 = _interopRequireDefault(require(\"../../attributedString/advanceWidth\"));\n\n/* eslint-disable no-param-reassign */\n// The base font size used for calculating underline thickness.\nvar BASE_FONT_SIZE = 12;\n/**\n * Computes the intersections between an underline and the glyphs in\n * a line fragment. Returns an array of DecorationLines omitting the\n * intersections.\n */\n// const intersectWithGlyphs = (line, lineFragment) => {\n// // Find intersection ranges between underline and glyphs\n// let x = 0;\n// let y = lineFragment.ascent;\n// const ranges = [];\n// for (const run of lineFragment.runs) {\n// if (!run.attributes.underline) {\n// x += run.advanceWidth;\n// continue;\n// }\n// for (let i = 0; i < run.glyphs.length; i++) {\n// const position = run.positions[i];\n// if (x >= line.rect.x && x <= line.rect.maxX) {\n// const gx = x + position.xOffset;\n// const gy = y + position.yOffset;\n// // Standard fonts may not have a path to intersect with\n// if (run.glyphs[i].path) {\n// const path = run.glyphs[i].path.scale(run.scale, -run.scale).translate(gx, gy);\n// const range = findPathIntersections(path, line.rect);\n// if (range) {\n// ranges.push(range);\n// }\n// }\n// }\n// x += position.xAdvance;\n// y += position.yAdvance;\n// }\n// }\n// if (ranges.length === 0) {\n// // No intersections. Return the original line.\n// return [line];\n// }\n// const merged = Range.merge(ranges);\n// // Generate underline segments omitting the intersections,\n// // but only if the space warrents an underline.\n// const lines = [];\n// x = line.rect.x;\n// for (const { start, end } of merged) {\n// if (start - x > line.rect.height) {\n// lines.push(line.slice(x, start));\n// }\n// x = end;\n// }\n// if (line.rect.maxX - x > line.rect.height) {\n// lines.push(line.slice(x, line.rect.maxX));\n// }\n// return lines;\n// };\n// const findIntersectionPoint = (y, x1, y1, x2, y2, range) => {\n// if ((y1 < y && y2 > y) || (y1 > y && y2 < y)) {\n// const x = x1 + ((y - y1) * (x2 - x1)) / (y2 - y1);\n// range.extend(x);\n// }\n// };\n\n/**\n * Finds the intersections between a glyph path and an underline rectangle.\n * It models each contour of the path a straight line, and returns a range\n * containing the leftmost and rightmost intersection points, if any.\n */\n// const findPathIntersections = (path, rect) => {\n// let sx = 0;\n// let sy = 0;\n// let cx = 0;\n// let cy = 0;\n// let px = 0;\n// let py = 0;\n// const range = new Range(Infinity, -Infinity);\n// const y1 = rect.y;\n// const y2 = rect.maxY;\n// const dialation = Math.ceil(rect.height);\n// for (const { command, args } of path.commands) {\n// switch (command) {\n// case 'moveTo':\n// sx = cx = args[0];\n// sy = cy = args[1];\n// continue;\n// case 'lineTo':\n// px = args[0];\n// py = args[1];\n// break;\n// case 'quadraticCurveTo':\n// px = args[2];\n// py = args[3];\n// break;\n// case 'bezierCurveTo':\n// px = args[4];\n// py = args[5];\n// break;\n// case 'closePath':\n// px = sx;\n// py = sy;\n// break;\n// default:\n// break;\n// }\n// findIntersectionPoint(y1, cx, cy, px, py, range);\n// findIntersectionPoint(y2, cx, cy, px, py, range);\n// if ((cy >= y1 && cy <= y2) || (cy <= y1 && cy >= y2)) {\n// range.extend(cx);\n// }\n// cx = px;\n// cy = py;\n// }\n// if (range.start < range.end) {\n// range.start -= dialation;\n// range.end += dialation;\n// return range;\n// }\n// return null;\n// };\n\n/**\n * A TextDecorationEngine is used by a Typesetter to generate\n * DecorationLines for a line fragment, including underlines\n * and strikes.\n */\n\nvar textDecoration = function textDecoration() {\n return function (lineFragment) {\n var x = R.propOr(0, 'overflowLeft', lineFragment);\n var overflowRight = R.propOr(0, 'overflowRight', lineFragment);\n var maxX = (0, _advanceWidth2.default)(lineFragment) - overflowRight;\n lineFragment.decorationLines = [];\n\n for (var i = 0; i < lineFragment.runs.length; i += 1) {\n var run = lineFragment.runs[i];\n var width = Math.min(maxX - x, (0, _advanceWidth.default)(run));\n var thickness = Math.max(0.5, Math.floor(run.attributes.fontSize / BASE_FONT_SIZE));\n\n if (run.attributes.underline) {\n var rect = {\n x: x,\n y: (0, _ascent2.default)(lineFragment) + thickness * 2,\n width: width,\n height: thickness\n };\n var line = {\n rect: rect,\n opacity: run.attributes.opacity,\n color: run.attributes.underlineColor || 'black',\n style: run.attributes.underlineStyle || 'solid'\n };\n lineFragment.decorationLines.push(line);\n }\n\n if (run.attributes.strike) {\n var y = (0, _ascent2.default)(lineFragment) - (0, _ascent.default)(run) / 3;\n var _rect = {\n x: x,\n y: y,\n width: width,\n height: thickness\n };\n var _line = {\n rect: _rect,\n opacity: run.attributes.opacity,\n color: run.attributes.strikeColor || 'black',\n style: run.attributes.strikeStyle || 'solid'\n };\n lineFragment.decorationLines.push(_line);\n }\n\n x += width;\n } // Adjust underline y positions, and intersect with glyph descenders.\n // for (const line of underlines) {\n // lineFragment.decorationLines.push(...intersectWithGlyphs(line, lineFragment));\n // }\n\n\n return lineFragment;\n };\n};\n\nvar _default = textDecoration;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _hyphen = _interopRequireDefault(require(\"hyphen\"));\n\nvar _enUs = _interopRequireDefault(require(\"hyphen/patterns/en-us\"));\n\nvar SOFT_HYPHEN = \"\\xAD\";\nvar hyphenator = (0, _hyphen.default)(_enUs.default);\nvar splitHyphen = R.split(SOFT_HYPHEN);\nvar cache = {};\nvar getParts = R.ifElse(R.contains(SOFT_HYPHEN), splitHyphen, R.o(splitHyphen, hyphenator));\n\nvar wordHyphenation = function wordHyphenation(options, word) {\n var cacheKey = \"_\" + word;\n if (R.isNil(word)) return [];\n if (cache[cacheKey]) return cache[cacheKey];\n cache[cacheKey] = getParts(word);\n return cache[cacheKey];\n};\n\nvar _default = R.curryN(2, wordHyphenation);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get glyph for a given code point\n *\n * @param {number} codePoint\n * @param {Object} font\n * @return {Object} glyph\n * */\nvar fromCodePoint = function fromCodePoint(value, font) {\n return font && value ? font.glyphForCodePoint(value) : null;\n};\n\nvar _default = fromCodePoint;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar WHITE_SPACES_CODES = [32];\n/**\n * Check if glyph is white space\n *\n * @param {Object} glyph\n * @return {Boolean} is white space\n * */\n\nvar isWhiteSpace = R.compose(R.not, R.isEmpty, R.intersection(WHITE_SPACES_CODES), R.propOr([], 'codePoints'));\nvar _default = isWhiteSpace;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Slice glyph between codePoints range\n * Util for breaking ligatures\n *\n * @param {number} start code point index\n * @param {number} end code point index\n * @param {Object} font to generate new glyph\n * @param {Object} glyph to be sliced\n * @return {Array} sliced glyph parts\n */\nvar slice = function slice(start, end, font, glyph) {\n if (!glyph) return [];\n if (start === end) return [];\n if (start === 0 && end === glyph.codePoints.length) return [glyph];\n var codePoints = R.slice(start, end, glyph.codePoints);\n var string = String.fromCodePoint.apply(String, codePoints);\n return font ? font.layout(string).glyphs : [glyph];\n};\n\nvar _default = R.curryN(4, slice);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Append glyph indices with given length\n *\n * Ex. appendIndices(3, [0, 1, 2, 2]) => [0, 1, 2, 2, 3, 3, 3]\n *\n * @param {number} length\n * @param {Array} glyph indices\n * @return {Array} extended glyph indices\n */\nvar appendIndices = function appendIndices(length, indices) {\n return R.converge(R.concat, [R.identity, R.converge(R.repeat, [R.either(R.o(R.inc, R.last), // Value should be last plus 1\n R.always(0) // Or zero if inserting at beggining\n ), R.always(length)])])(indices);\n};\n\nvar _default = R.curryN(2, appendIndices);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Returns new array starting with zero, and keeping same relation between consecutive values\n *\n * @param {Array[number]} list\n * @return {boolean} normalized array\n */\nvar normalize = function normalize(array) {\n return R.map(R.subtract(R.__, R.head(array)))(array);\n};\n\nvar _default = normalize;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Prepend glyph indices with given length\n *\n * Ex. prepend(3, [0, 1, 2, 2]) => [0, 0, 0, 1, 2, 3, 3]\n *\n * @param {number} length\n * @param {Array} glyph indices\n * @return {Array} extended glyph indices\n */\nvar prepend = function prepend(length, indices) {\n if (length === 0) return indices;\n return R.converge(R.concat, [R.converge(R.repeat, [R.always(0), R.always(length)]), R.map(R.inc)])(indices);\n};\n\nvar _default = R.curryN(2, prepend);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar DUMMY_CODEPOINT = 123;\n/**\n * Resolve string indices based on glyphs code points\n *\n * @param {Array} glyphs\n * @return {Array} glyph indices\n */\n\nvar resolve = function resolve(glyphs) {\n if (glyphs === void 0) {\n glyphs = [];\n }\n\n return glyphs.reduce(function (acc, glyph) {\n var codePoints = (glyph === null || glyph === void 0 ? void 0 : glyph.codePoints) || [DUMMY_CODEPOINT];\n if (acc.length === 0) return codePoints.map(function () {\n return 0;\n });\n var last = acc[acc.length - 1];\n var next = codePoints.map(function () {\n return last + 1;\n });\n return [].concat(acc, next);\n }, []);\n};\n\nvar _default = resolve;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Apply default style to run\n *\n * @param {Object} run\n * @return {Object} run with styles\n */\nvar applyRunStyles = R.evolve({\n attributes: function attributes(a) {\n return {\n align: a.align || 'left',\n alignLastLine: a.alignLastLine || (a.align === 'justify' ? 'left' : a.align || 'left'),\n attachment: a.attachment || null,\n backgroundColor: a.backgroundColor || null,\n bidiLevel: a.bidiLevel || null,\n bullet: a.bullet || null,\n characterSpacing: a.characterSpacing || 0,\n color: a.color || 'black',\n features: a.features || [],\n fill: a.fill !== false,\n font: a.font || null,\n fontSize: a.fontSize || 12,\n hangingPunctuation: a.hangingPunctuation || false,\n hyphenationFactor: a.hyphenationFactor || 0,\n indent: a.indent || 0,\n justificationFactor: a.justificationFactor || 1,\n lineHeight: a.lineHeight || null,\n lineSpacing: a.lineSpacing || 0,\n link: a.link || null,\n marginLeft: a.marginLeft || a.margin || 0,\n marginRight: a.marginRight || a.margin || 0,\n opacity: R.isNil(a.opacity) ? 1 : a.opacity,\n paddingTop: a.paddingTop || a.padding || 0,\n paragraphSpacing: a.paragraphSpacing || 0,\n underline: a.underline || false,\n underlineColor: a.underlineColor || a.color || 'black',\n underlineStyle: a.underlineStyle || 'solid',\n script: a.script || null,\n shrinkFactor: a.shrinkFactor || 0,\n strike: a.strike || false,\n strikeColor: a.strikeColor || a.color || 'black',\n strikeStyle: a.strikeStyle || 'solid',\n stroke: a.stroke || false,\n wordSpacing: a.wordSpacing || 0,\n yOffset: a.yOffset || 0\n };\n }\n});\n/**\n * Apply default attributes for an attributed string\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Object} attributed string\n * @return {Object} attributed string\n */\n\nvar applyDefaultStyles = function applyDefaultStyles() {\n return R.applySpec({\n string: R.propOr('', 'string'),\n runs: R.compose(R.map(applyRunStyles), R.defaultTo([]), R.prop('runs'))\n });\n};\n\nvar _default = applyDefaultStyles;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"../attributedString/advanceWidth\"));\n\nvar _leadingOffset = _interopRequireDefault(require(\"../attributedString/leadingOffset\"));\n\nvar _trailingOffset = _interopRequireDefault(require(\"../attributedString/trailingOffset\"));\n\nvar _dropLast = _interopRequireDefault(require(\"../attributedString/dropLast\"));\n\nvar ALIGNMENT_FACTORS = {\n left: 0,\n center: 0.5,\n right: 1,\n justify: 0\n};\n/**\n * Remove new line char at the end of line if present\n *\n * @param {Object} line\n * @return {Object} line\n */\n\nvar removeNewLine = R.when(R.compose(R.equals('\\n'), R.last, R.prop('string')), _dropLast.default);\nvar getOverflowLeft = R.converge(R.add, [R.propOr(0, 'overflowLeft'), _leadingOffset.default]);\nvar getOverflowRight = R.converge(R.add, [R.propOr(0, 'overflowRight'), _trailingOffset.default]);\n/**\n * Ignore whitespace at the start and end of a line for alignment\n *\n * @param {Object} line\n * @return {Object} line\n */\n\nvar adjustOverflow = function adjustOverflow(line) {\n var overflowLeft = getOverflowLeft(line);\n var overflowRight = getOverflowRight(line);\n return R.compose(R.assoc('overflowLeft', overflowLeft), R.assoc('overflowRight', overflowRight), R.evolve({\n box: R.evolve({\n x: R.subtract(R.__, overflowLeft),\n width: R.add(overflowLeft + overflowRight)\n })\n }))(line);\n};\n/**\n * Performs line justification by calling appropiate engine\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {string} text align\n * @param {Object} line\n * @return {Object} line\n */\n\n\nvar justifyLine = function justifyLine(engines, options, align) {\n return function (line) {\n var lineAdvanceWidth = (0, _advanceWidth.default)(line);\n var remainingWidth = Math.max(0, line.box.width - lineAdvanceWidth);\n var shouldJustify = align === 'justify' || lineAdvanceWidth > line.box.width;\n return R.compose(R.when(R.always(shouldJustify), engines.justification(options)), R.evolve({\n box: R.evolve({\n x: R.add(remainingWidth * ALIGNMENT_FACTORS[align])\n })\n }))(line);\n };\n};\n/**\n * Finalize line by performing line justification\n * and text decoration (using appropiate engines)\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Object} line\n * @param {number} line index\n * @param {Array} total lines\n * @return {Object} line\n */\n\n\nvar finalizeBlock = function finalizeBlock(engines, options) {\n if (engines === void 0) {\n engines = {};\n }\n\n return function (line, i, lines) {\n var isLastFragment = i === lines.length - 1;\n var style = R.pathOr({}, ['runs', 0, 'attributes'], line);\n var align = isLastFragment ? style.alignLastLine : style.align;\n return R.compose(engines.textDecoration(options), justifyLine(engines, options, align), adjustOverflow, removeNewLine)(line);\n };\n};\n/**\n * Finalize line block by performing line justification\n * and text decoration (using appropiate engines)\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Array} line blocks\n * @return {Array} line blocks\n */\n\n\nvar finalizeFragments = function finalizeFragments(engines, options, blocks) {\n return R.map(R.addIndex(R.map)(finalizeBlock(engines, options)), blocks);\n};\n\nvar _default = R.curryN(3, finalizeFragments);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _scale = _interopRequireDefault(require(\"../run/scale\"));\n\nvar _resolve = _interopRequireDefault(require(\"../indices/resolve\"));\n\nvar getCharacterSpacing = R.pathOr(0, ['attributes', 'characterSpacing']);\n/**\n * Scale run positions\n *\n * @param {Object} run\n * @param {Array} positions\n * @return {Array} scaled positions\n */\n\nvar scalePositions = function scalePositions(run, positions) {\n var multScale = R.multiply((0, _scale.default)(run));\n var characterSpacing = getCharacterSpacing(run);\n var scalePosition = R.evolve({\n xAdvance: R.o(R.add(characterSpacing), multScale),\n yAdvance: multScale,\n xOffset: multScale,\n yOffset: multScale\n });\n var subCharacterSpacing = R.evolve({\n xAdvance: R.subtract(R.__, characterSpacing)\n });\n return R.compose(R.adjust(-1, subCharacterSpacing), R.map(scalePosition))(positions);\n};\n/**\n * Create glyph run\n *\n * @param {String} string\n * @param {Object} run\n * @return {Object} glyph run\n */\n\n\nvar layoutRun = function layoutRun(string) {\n return function (run) {\n var start = run.start,\n end = run.end,\n _run$attributes = run.attributes,\n attributes = _run$attributes === void 0 ? {} : _run$attributes;\n var font = attributes.font;\n if (!font) return (0, _extends2.default)({}, run, {\n glyphs: [],\n glyphIndices: [],\n positions: []\n });\n var runString = string.slice(start, end);\n var glyphRun = font.layout(runString);\n var positions = scalePositions(run, glyphRun.positions);\n var glyphIndices = (0, _resolve.default)(glyphRun.glyphs);\n return (0, _extends2.default)({}, run, {\n positions: positions,\n glyphIndices: glyphIndices,\n glyphs: glyphRun.glyphs\n });\n };\n};\n/**\n * Generate glyphs for single attributed string\n *\n * @param {Object} layout engines\n * @param {Object} layout options\n * @param {Array} attributed strings\n * @return {Array} attributed string with glyphs\n */\n\n\nvar generateGlyphs = function generateGlyphs() {\n return function (attributedString) {\n return R.evolve({\n runs: R.map(layoutRun(attributedString.string))\n })(attributedString);\n };\n};\n\nvar _default = generateGlyphs;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _wrapWords = _interopRequireDefault(require(\"./wrapWords\"));\n\nvar _typesetter = _interopRequireDefault(require(\"./typesetter\"));\n\nvar _generateGlyphs = _interopRequireDefault(require(\"./generateGlyphs\"));\n\nvar _resolveYOffset = _interopRequireDefault(require(\"./resolveYOffset\"));\n\nvar _preprocessRuns = _interopRequireDefault(require(\"./preprocessRuns\"));\n\nvar _splitParagraphs = _interopRequireDefault(require(\"./splitParagraphs\"));\n\nvar _finalizeFragments = _interopRequireDefault(require(\"./finalizeFragments\"));\n\nvar _resolveAttachments = _interopRequireDefault(require(\"./resolveAttachments\"));\n\nvar _applyDefaultStyles = _interopRequireDefault(require(\"./applyDefaultStyles\"));\n\n/**\n * A LayoutEngine is the main object that performs text layout.\n * It accepts an AttributedString and a Container object\n * to layout text into, and uses several helper objects to perform\n * various layout tasks. These objects can be overridden to customize\n * layout behavior.\n *\n * @param {Object} engines\n * @param {Object} attributted string\n * @param {Object} container rect\n * @param {Object} layout options\n * @return {Array} paragraph blocks\n */\nvar layoutEngine = function layoutEngine(engines, attributedString, container, options) {\n if (options === void 0) {\n options = {};\n }\n\n var processParagraphs = R.compose((0, _resolveYOffset.default)(engines, options), (0, _resolveAttachments.default)(engines, options), (0, _generateGlyphs.default)(engines, options), (0, _wrapWords.default)(engines, options));\n return R.compose((0, _finalizeFragments.default)(engines, options), (0, _typesetter.default)(engines, options, container), R.map(processParagraphs), (0, _splitParagraphs.default)(engines, options), (0, _preprocessRuns.default)(engines, options), (0, _applyDefaultStyles.default)(engines, options))(attributedString);\n};\n\nvar _default = R.curryN(3, layoutEngine);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _omit = _interopRequireDefault(require(\"../run/omit\"));\n\nvar _height = _interopRequireDefault(require(\"../attributedString/height\"));\n\nvar ATTACHMENT_CODE = \"\\uFFFC\"; // 65532\n\n/**\n * Remove attachment attribute if no char present\n *\n * @param {Object} attributed string\n * @return {Object} attributed string\n */\n\nvar purgeAttachments = R.when(R.compose(R.not, R.includes(ATTACHMENT_CODE), R.prop('string')), R.evolve({\n runs: R.map((0, _omit.default)('attachment'))\n}));\n/**\n * Layout paragraphs inside rectangle\n *\n * @param {Object} rect\n * @param {Array} attributed strings\n * @return {Object} layout blocks\n */\n\nvar layoutLines = function layoutLines(rect, lines, indent) {\n var currentY = rect.y;\n return R.addIndex(R.map)(R.compose(purgeAttachments, function (line, i) {\n var lineIndent = i === 0 ? indent : 0;\n var style = R.pathOr({}, ['runs', 0, 'attributes'], line);\n var height = Math.max((0, _height.default)(line), style.lineHeight);\n var box = {\n x: rect.x + lineIndent,\n y: currentY,\n width: rect.width - lineIndent,\n height: height\n };\n currentY += height;\n return R.compose(R.assoc('box', box), R.omit(['syllables']))(line);\n }))(lines);\n};\n/**\n * Performs line breaking and layout\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Object} rect\n * @param {Object} attributed string\n * @return {Object} layout block\n */\n\n\nvar layoutParagraph = function layoutParagraph(engines, options) {\n return function (rect, paragraph) {\n var indent = R.pathOr(0, ['runs', 0, 'attributes', 'indent'], paragraph);\n var lines = engines.linebreaker(options)(paragraph, [rect.width - indent, rect.width]);\n var lineFragments = layoutLines(rect, lines, indent);\n return lineFragments;\n };\n};\n\nvar _default = layoutParagraph;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _omit = _interopRequireDefault(require(\"../run/omit\"));\n\nvar _flatten = _interopRequireDefault(require(\"../run/flatten\"));\n\nvar _empty = _interopRequireDefault(require(\"../attributedString/empty\"));\n\nvar omitFont = R.evolve({\n runs: R.map((0, _omit.default)('font'))\n});\n/**\n * Performs font substitution and script itemization on attributed string\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Object} attributed string\n * @return {Object} processed attributed string\n */\n\nvar preprocessRuns = function preprocessRuns(engines, options) {\n return R.ifElse(R.isNil, _empty.default, R.applySpec({\n string: R.prop('string'),\n runs: R.compose(_flatten.default, R.flatten, R.pluck('runs'), R.juxt([engines.fontSubstitution(options), // font substitution\n engines.scriptItemizer(options), // script itemization\n omitFont]))\n }));\n};\n\nvar _default = preprocessRuns;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar ATTACHMENT_CODE = 0xfffc; // 65532\n\nvar mapIndexed = R.addIndex(R.map);\nvar getGlyphs = R.propOr([], 'glyphs');\nvar getAttachment = R.pathOr({}, ['attributes', 'attachment']);\nvar isReplaceGlyph = R.o(R.includes(ATTACHMENT_CODE), R.propOr([], 'codePoints'));\n/**\n * Resolve attachments of run\n *\n * @param {Object} run\n * @return {Object} run\n */\n\nvar resolveRunAttachments = function resolveRunAttachments(run) {\n var glyphs = getGlyphs(run);\n var attachment = getAttachment(run);\n var attachmentWidth = R.always(attachment.width);\n return R.evolve({\n positions: mapIndexed(function (position, i) {\n var glyph = glyphs[i];\n\n if (attachment && attachment.width && isReplaceGlyph(glyph)) {\n return R.evolve({\n xAdvance: attachmentWidth\n }, position);\n }\n\n return R.clone(position);\n })\n })(run);\n};\n/**\n * Resolve attachments for multiple paragraphs\n *\n * @param {Object} layout engines\n * @param {Object} layout options\n * @param {Array} attributed strings (paragraphs)\n * @return {Array} attributed strings (paragraphs)\n */\n\n\nvar resolveAttachments = function resolveAttachments() {\n return R.evolve({\n runs: R.map(resolveRunAttachments)\n });\n};\n\nvar _default = resolveAttachments;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar getYOffset = R.pathOr(0, ['attributes', 'yOffset']);\nvar getUnitsPerEm = R.pathOr(0, ['attributes', 'font', 'unitsPerEm']);\n/**\n * Resolves yOffset for run\n *\n * @param {Object} run\n * @return {Object} run\n */\n\nvar resolveRunYOffset = function resolveRunYOffset(run) {\n var unitsPerEm = getUnitsPerEm(run);\n var yOffset = getYOffset(run);\n var mult = yOffset * unitsPerEm;\n return R.evolve({\n positions: R.map(R.assoc('yOffset', mult))\n })(run);\n};\n/**\n * Resolves yOffset for multiple paragraphs\n *\n * @param {Object} layout engines\n * @param {Object} layout options\n * @param {Array} attributed strings (paragraphs)\n * @return {Array} attributed strings (paragraphs)\n */\n\n\nvar resolveYOffset = function resolveYOffset() {\n return R.evolve({\n runs: R.map(resolveRunYOffset)\n });\n};\n\nvar _default = resolveYOffset;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _length = _interopRequireDefault(require(\"../attributedString/length\"));\n\nvar _slice = _interopRequireDefault(require(\"../attributedString/slice\"));\n\n/**\n * Breaks attributed string into paragraphs\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Object} attributed string\n * @return {Array} attributed string array\n */\nvar splitParagraphs = function splitParagraphs() {\n return function (attributedString) {\n var res = [];\n var start = 0;\n var breakPoint = attributedString.string.indexOf('\\n') + 1;\n\n while (breakPoint > 0) {\n res.push((0, _slice.default)(start, breakPoint, attributedString));\n start = breakPoint;\n breakPoint = attributedString.string.indexOf('\\n', breakPoint) + 1;\n }\n\n if (start === 0) {\n res.push(attributedString);\n } else if (start < attributedString.string.length) {\n res.push((0, _slice.default)(start, (0, _length.default)(attributedString), attributedString));\n }\n\n return res;\n };\n};\n\nvar _default = splitParagraphs;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _copy = _interopRequireDefault(require(\"../rect/copy\"));\n\nvar _crop = _interopRequireDefault(require(\"../rect/crop\"));\n\nvar _slice = _interopRequireDefault(require(\"../block/slice\"));\n\nvar _height = _interopRequireDefault(require(\"../block/height\"));\n\nvar _truncate = _interopRequireDefault(require(\"../block/truncate\"));\n\nvar _layoutParagraph = _interopRequireDefault(require(\"./layoutParagraph\"));\n\nvar _sliceAtHeight = _interopRequireDefault(require(\"../block/sliceAtHeight\"));\n\n/**\n * Layout paragraphs inside container until it does not\n * fit anymore, performing line wrapping in the process.\n *\n * @param {Object} engines\n * @param {Object} layout options\n * @param {Object} container rect\n * @param {Object} attributed strings (paragraphs)\n * @return {Array} paragraph blocks\n */\nvar typesetter = function typesetter(engines, options, container, attributedStrings) {\n var blocks = [];\n var paragraphs = [].concat(attributedStrings);\n var maxLines = R.propOr(Infinity, 'maxLines', container);\n var truncateEllipsis = container.truncateMode === 'ellipsis';\n var linesCount = maxLines;\n var paragraphRect = (0, _copy.default)(container);\n var nextParagraph = paragraphs.shift();\n\n while (linesCount > 0 && nextParagraph) {\n var block = (0, _layoutParagraph.default)(engines, options)(paragraphRect, nextParagraph);\n var slicedBlock = (0, _slice.default)(linesCount, block);\n var linesHeight = (0, _height.default)(slicedBlock);\n var shouldTruncate = truncateEllipsis && block.length !== slicedBlock.length;\n linesCount -= slicedBlock.length;\n\n if (paragraphRect.height >= linesHeight) {\n blocks.push(R.when(R.always(shouldTruncate), _truncate.default)(slicedBlock));\n paragraphRect = (0, _crop.default)(linesHeight, paragraphRect);\n nextParagraph = paragraphs.shift();\n } else {\n blocks.push(R.compose(_truncate.default, (0, _sliceAtHeight.default)(paragraphRect.height))(slicedBlock));\n break;\n }\n }\n\n return blocks;\n};\n\nvar _default = R.curryN(4, typesetter);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _fromFragments = _interopRequireDefault(require(\"../attributedString/fromFragments\"));\n\n/**\n * Default word hyphenation engine used when no one provided.\n * Does not perform word hyphenation at all\n *\n * @param {String} word\n * @return {Array} same word\n */\nvar defaultHyphenationEngine = function defaultHyphenationEngine(word) {\n return [word];\n};\n/**\n * Wrap words of attribute string\n *\n * @param {Object} layout engines\n * @param {Object} layout options\n * @param {Object} attributed string\n * @return {Object} attributed string including syllables\n */\n\n\nvar wrapWords = function wrapWords(engines, options, attributedString) {\n if (engines === void 0) {\n engines = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n var syllables = [];\n var fragments = [];\n var hyphenateWord = options.hyphenationCallback || engines.wordHyphenation && engines.wordHyphenation(options) || defaultHyphenationEngine;\n\n for (var i = 0; i < attributedString.runs.length; i += 1) {\n var string = '';\n var run = attributedString.runs[i];\n var words = attributedString.string.slice(run.start, run.end).split(/([ ]+)/g).filter(Boolean);\n\n for (var j = 0; j < words.length; j += 1) {\n var word = words[j];\n var parts = hyphenateWord(word);\n syllables.push.apply(syllables, parts);\n string += parts.join('');\n }\n\n fragments.push({\n string: string,\n attributes: run.attributes\n });\n }\n\n return (0, _extends2.default)({}, (0, _fromFragments.default)(fragments), {\n syllables: syllables\n });\n};\n\nvar _default = R.curryN(3, wrapWords);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Clone rect\n *\n * @param {Object} rect\n * @return {Object} cloned rect\n */\nvar copy = R.clone;\nvar _default = copy;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Crop upper section of rect\n *\n * @param {Object} rect\n * @return {Object} cropped rect\n */\nvar crop = function crop(height, rect) {\n return R.evolve({\n y: R.add(height),\n height: R.subtract(R.__, height)\n })(rect);\n};\n\nvar _default = R.curryN(2, crop);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _height = _interopRequireDefault(require(\"../run/height\"));\n\nvar _descent = _interopRequireDefault(require(\"../run/descent\"));\n\nvar _advanceWidth = _interopRequireDefault(require(\"../run/advanceWidth\"));\n\nvar _ascent = _interopRequireDefault(require(\"../attributedString/ascent\"));\n\n/* eslint-disable no-param-reassign */\nvar DEST_REGEXP = /^#.+/;\n\nvar isSrcId = function isSrcId(src) {\n return src.match(DEST_REGEXP);\n};\n\nvar renderAttachments = function renderAttachments(ctx, run) {\n ctx.save();\n var font = run.attributes.font;\n var space = font.glyphForCodePoint(0x20);\n var objectReplacement = font.glyphForCodePoint(0xfffc);\n var attachmentAdvance = 0;\n\n for (var i = 0; i < run.glyphs.length; i += 1) {\n var position = run.positions[i];\n var glyph = run.glyphs[i];\n attachmentAdvance += position.xAdvance || 0;\n\n if (glyph.id === objectReplacement.id && run.attributes.attachment) {\n ctx.translate(attachmentAdvance, position.yOffset || 0);\n renderAttachment(ctx, run.attributes.attachment);\n run.glyphs[i] = space;\n attachmentAdvance = 0;\n }\n }\n\n ctx.restore();\n};\n\nvar renderAttachment = function renderAttachment(ctx, attachment) {\n var _attachment$xOffset = attachment.xOffset,\n xOffset = _attachment$xOffset === void 0 ? 0 : _attachment$xOffset,\n _attachment$yOffset = attachment.yOffset,\n yOffset = _attachment$yOffset === void 0 ? 0 : _attachment$yOffset,\n width = attachment.width,\n height = attachment.height,\n image = attachment.image;\n ctx.translate(-width + xOffset, -height + yOffset);\n ctx.image(image, 0, 0, {\n fit: [width, height],\n align: 'center',\n valign: 'bottom'\n });\n};\n\nvar renderRun = function renderRun(ctx, run, options) {\n var _run$attributes = run.attributes,\n font = _run$attributes.font,\n fontSize = _run$attributes.fontSize,\n color = _run$attributes.color,\n link = _run$attributes.link,\n opacity = _run$attributes.opacity;\n var height = (0, _height.default)(run);\n var descent = (0, _descent.default)(run);\n var runAdvanceWidth = (0, _advanceWidth.default)(run);\n\n if (options.outlineRuns) {\n ctx.rect(0, -height, runAdvanceWidth, height).stroke();\n }\n\n ctx.fillColor(color);\n ctx.fillOpacity(opacity);\n\n if (link) {\n if (isSrcId(link)) {\n ctx.goTo(0, -height - descent, runAdvanceWidth, height, link.slice(1));\n } else {\n ctx.link(0, -height - descent, runAdvanceWidth, height, link);\n }\n }\n\n renderAttachments(ctx, run);\n\n if (font.sbix || font.COLR && font.CPAL) {\n ctx.save();\n ctx.translate(0, -run.ascent);\n\n for (var i = 0; i < run.glyphs.length; i += 1) {\n var position = run.positions[i];\n var glyph = run.glyphs[i];\n ctx.save();\n ctx.translate(position.xOffset, position.yOffset);\n glyph.render(ctx, fontSize);\n ctx.restore();\n ctx.translate(position.xAdvance, position.yAdvance);\n }\n\n ctx.restore();\n } else {\n ctx.font(typeof font.name === 'string' ? font.name : font, fontSize);\n\n try {\n ctx._addGlyphs(run.glyphs, run.positions, 0, 0);\n } catch (error) {\n console.log(error);\n }\n }\n\n ctx.translate(runAdvanceWidth, 0);\n};\n\nvar renderBackground = function renderBackground(ctx, rect, backgroundColor) {\n ctx.rect(rect.x, rect.y, rect.width, rect.height);\n ctx.fill(backgroundColor);\n};\n\nvar renderDecorationLine = function renderDecorationLine(ctx, line) {\n ctx.save();\n ctx.lineWidth(line.rect.height);\n ctx.strokeOpacity(line.opacity);\n\n if (/dashed/.test(line.style)) {\n ctx.dash(3 * line.rect.height);\n } else if (/dotted/.test(line.style)) {\n ctx.dash(line.rect.height);\n }\n\n if (/wavy/.test(line.style)) {\n var dist = Math.max(2, line.rect.height);\n var step = 1.1 * dist;\n var stepCount = Math.floor(line.rect.width / (2 * step)); // Adjust step to fill entire width\n\n var remainingWidth = line.rect.width - stepCount * 2 * step;\n var adjustment = remainingWidth / stepCount / 2;\n step += adjustment;\n var cp1y = line.rect.y + dist;\n var cp2y = line.rect.y - dist;\n var x = line.rect.x;\n ctx.moveTo(line.rect.x, line.rect.y);\n\n for (var i = 0; i < stepCount; i += 1) {\n ctx.bezierCurveTo(x + step, cp1y, x + step, cp2y, x + 2 * step, line.rect.y);\n x += 2 * step;\n }\n } else {\n ctx.moveTo(line.rect.x, line.rect.y);\n ctx.lineTo(line.rect.x + line.rect.width, line.rect.y);\n\n if (/double/.test(line.style)) {\n ctx.moveTo(line.rect.x, line.rect.y + line.rect.height * 2);\n ctx.lineTo(line.rect.x + line.rect.width, line.rect.y + line.rect.height * 2);\n }\n }\n\n ctx.stroke(line.color);\n ctx.restore();\n};\n\nvar renderLine = function renderLine(ctx, line, options) {\n var lineAscent = (0, _ascent.default)(line);\n\n if (options.outlineLines) {\n ctx.rect(line.box.x, line.box.y, line.box.width, line.box.height).stroke();\n }\n\n ctx.save();\n ctx.translate(line.box.x, line.box.y + lineAscent);\n\n for (var i = 0; i < line.runs.length; i += 1) {\n var run = line.runs[i];\n\n if (run.attributes.backgroundColor) {\n var backgroundRect = {\n x: 0,\n y: -lineAscent,\n height: line.box.height,\n width: (0, _advanceWidth.default)(run) - line.overflowRight\n };\n renderBackground(ctx, backgroundRect, run.attributes.backgroundColor);\n }\n\n renderRun(ctx, run, options);\n }\n\n ctx.restore();\n ctx.save();\n ctx.translate(line.box.x, line.box.y);\n\n for (var _i = 0; _i < line.decorationLines.length; _i += 1) {\n var decorationLine = line.decorationLines[_i];\n renderDecorationLine(ctx, decorationLine);\n }\n\n ctx.restore();\n};\n\nvar renderBlock = function renderBlock(ctx, block, options) {\n block.forEach(function (line) {\n renderLine(ctx, line, options);\n });\n};\n\nvar render = function render(ctx, blocks, options) {\n if (options === void 0) {\n options = {};\n }\n\n blocks.forEach(function (block) {\n renderBlock(ctx, block, options);\n });\n};\n\nvar _default = {\n render: render\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Add scalar to run\n *\n * @param {number} scalar\n * @param {Object} run\n * @return {Object} added run\n */\nvar add = function add(n, run) {\n return R.evolve({\n start: R.add(n),\n end: R.add(n)\n })(run);\n};\n\nvar _default = R.curryN(2, add);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Return run advance width\n *\n * @param {Object} run\n * @return {number} advance width\n */\nvar advanceWidth = R.compose(R.reduce(R.useWith(R.add, [R.identity, R.propOr(0, 'xAdvance')]), 0), R.propOr([], 'positions'));\nvar _default = advanceWidth;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _glyphIndexAt = _interopRequireDefault(require(\"./glyphIndexAt\"));\n\n/**\n * Advance width between two string indices\n *\n * @param {number} start glyph index\n * @param {number} end glyph index\n * @param {Object} run\n * @return {Object} advanced width run\n */\nvar advanceWidthBetween = function advanceWidthBetween(start, end, run) {\n var runStart = R.propOr(0, 'start', run);\n var glyphStartIndex = Math.max(0, (0, _glyphIndexAt.default)(start - runStart, run));\n var glyphEndIndex = Math.max(0, (0, _glyphIndexAt.default)(end - runStart, run));\n return R.compose(R.reduce(R.useWith(R.add, [R.identity, R.propOr(0, 'xAdvance')]), 0), R.slice(glyphStartIndex, glyphEndIndex), R.propOr([], 'positions'))(run);\n};\n\nvar _default = R.curryN(3, advanceWidthBetween);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _copy = _interopRequireDefault(require(\"./copy\"));\n\nvar _scale = _interopRequireDefault(require(\"./scale\"));\n\nvar _getFont = _interopRequireDefault(require(\"./getFont\"));\n\nvar _isNumber = _interopRequireDefault(require(\"../utils/isNumber\"));\n\nvar _append = _interopRequireDefault(require(\"../indices/append\"));\n\nvar _fromCodePoint = _interopRequireDefault(require(\"../glyph/fromCodePoint\"));\n\n/**\n * Append glyph to run\n *\n * @param {Object} glyph\n * @param {Object} run\n * @return {Object} run with glyph\n */\nvar appendGlyph = function appendGlyph(glyph, run) {\n var runScale = (0, _scale.default)(run);\n var glyphLength = R.length(glyph.codePoints);\n return R.evolve({\n end: R.add(glyphLength),\n glyphs: R.append(glyph),\n glyphIndices: (0, _append.default)(glyphLength),\n positions: R.append({\n xAdvance: glyph.advanceWidth * runScale\n })\n })(run);\n};\n/**\n * Append glyph or code point to run\n *\n * @param {Object | number} glyph | codePoint\n * @param {Object} run\n * @return {Object} run with glyph\n */\n\n\nvar append = function append(value, run) {\n if (!value) return (0, _copy.default)(run);\n var font = (0, _getFont.default)(run);\n var glyph = (0, _isNumber.default)(value) ? (0, _fromCodePoint.default)(value, font) : value;\n return appendGlyph(glyph, run);\n};\n\nvar _default = R.curryN(2, append);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _scale = _interopRequireDefault(require(\"./scale\"));\n\nvar getFontAscent = R.ifElse(R.has('attributes'), R.pathOr(0, ['attributes', 'font', 'ascent']), R.always(0));\n/**\n * Get run ascent\n *\n * @param {Object} run\n * @return {boolean} ascent\n */\n\nvar ascent = R.converge(R.max, [R.pathOr(0, ['attributes', 'attachment', 'height']), R.converge(R.multiply, [_scale.default, getFontAscent])]);\nvar _default = ascent;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _length = _interopRequireDefault(require(\"./length\"));\n\nvar _normalize = _interopRequireDefault(require(\"../indices/normalize\"));\n\nvar reverseMerge = R.flip(R.merge);\nvar reverseConcat = R.flip(R.concat);\n/**\n * Concats two runs into one\n *\n * @param {Object} first run\n * @param {Object} second run\n * @return {Object} concatenated run\n */\n\nvar concat = function concat(runA, runB) {\n return R.evolve({\n end: R.add((0, _length.default)(runB)),\n glyphs: reverseConcat(R.prop('glyphs', runB)),\n positions: reverseConcat(R.prop('positions', runB)),\n attributes: reverseMerge(R.prop('attributes', runB)),\n glyphIndices: R.compose(_normalize.default, reverseConcat(R.map(R.compose(R.inc, R.add(R.last(R.propOr([], 'glyphIndices', runA)) || 0)), R.propOr([], 'glyphIndices', runB))))\n })(runA);\n};\n\nvar _default = R.curryN(2, concat);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Deep clone run\n *\n * @param {Object} run\n * @return {Object} cloned run\n */\nvar copy = R.evolve({\n glyphs: R.map(R.identity),\n positions: R.clone,\n glyphIndices: R.clone,\n attributes: R.evolve({\n font: R.identity\n })\n});\nvar _default = copy;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _scale = _interopRequireDefault(require(\"./scale\"));\n\nvar getFontDescent = R.ifElse(R.has('attributes'), R.pathOr(0, ['attributes', 'font', 'descent']), R.always(0));\n/**\n * Get run descent\n *\n * @param {Object} run\n * @return {number} descent\n */\n\nvar descent = R.converge(R.multiply, [_scale.default, getFontDescent]);\nvar _default = descent;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _slice = _interopRequireDefault(require(\"./slice\"));\n\n/**\n * Drop last char of run\n *\n * @param {Object} run\n * @return {boolean} run without last char\n */\nvar dropLast = function dropLast(run) {\n return (0, _slice.default)(0, run.end - run.start - 1, run);\n};\n\nvar _default = dropLast;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Returns empty run\n *\n * @return {Object} empty run\n */\nvar empty = R.always({\n start: 0,\n end: 0,\n glyphIndices: [],\n glyphs: [],\n positions: [],\n attributes: {}\n});\nvar _default = empty;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _runIndexAt = _interopRequireDefault(require(\"./runIndexAt\"));\n\n/**\n * Filter runs contained between start and end\n *\n * @param {number} start\n * @param {number} end\n * @param {Array} runs\n * @return {boolean} filtered runs\n */\nvar filter = function filter(start, end, runs) {\n var startIndex = (0, _runIndexAt.default)(start, runs);\n var endIndex = R.max((0, _runIndexAt.default)(end - 1, runs), startIndex);\n return R.slice(startIndex, endIndex + 1, runs);\n};\n\nvar _default = R.curryN(3, filter);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _sort = _interopRequireDefault(require(\"./sort\"));\n\nvar _isEmpty = _interopRequireDefault(require(\"./isEmpty\"));\n\nvar sortPoints = function sortPoints(a, b) {\n return a[1] - b[1] || a[3] - b[3];\n};\n\nvar mergeAttributes = function mergeAttributes(key, left, right) {\n return key === 'attributes' ? R.merge(left, right) : right;\n};\n\nvar generatePoints = R.o(R.sort(sortPoints), R.addIndex(R.chain)(function (run, i) {\n return [['start', run.start, run.attributes, i], ['end', run.end, run.attributes, i]];\n}));\nvar flattenEmptyRuns = R.compose(R.map(R.reduce(R.mergeDeepWithKey(mergeAttributes), {})), R.groupWith(R.eqProps('start')));\n\nvar flattenRegularRuns = function flattenRegularRuns(runs) {\n var res = [];\n var points = generatePoints(runs);\n var start = -1;\n var attrs = {};\n var stack = [];\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n type = _points$i[0],\n offset = _points$i[1],\n attributes = _points$i[2];\n\n if (start !== -1 && start < offset) {\n res.push({\n start: start,\n end: offset,\n attributes: attrs\n });\n }\n\n if (type === 'start') {\n stack.push(attributes);\n attrs = R.merge(attrs, attributes);\n } else {\n attrs = {};\n\n for (var j = 0; j < stack.length; j += 1) {\n if (stack[j] === attributes) {\n // eslint-disable-next-line no-plusplus\n stack.splice(j--, 1);\n } else {\n attrs = R.merge(attrs, stack[j]);\n }\n }\n }\n\n start = offset;\n }\n\n return res;\n};\n/**\n * Flatten many runs\n *\n * @param {Array} runs\n * @return {Array} flatten runs\n */\n\n\nvar flatten = function flatten(runs) {\n if (runs === void 0) {\n runs = [];\n }\n\n return R.compose(_sort.default, R.apply(R.useWith(R.concat, [flattenEmptyRuns, flattenRegularRuns])), R.partition(_isEmpty.default))(runs);\n};\n\nvar _default = flatten;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get run font\n *\n * @param {Object} run\n * @return {Object} font\n */\nvar getFont = R.pathOr(null, ['attributes', 'font']);\nvar _default = getFont;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Return glyph index at string index, if glyph indices present.\n * Otherwise return string index\n *\n * @param {number} string index\n * @param {Object} run\n * @return {number} glyph index\n */\nvar glyphIndexAt = function glyphIndexAt(index, run) {\n return R.pathOr(index, ['glyphIndices', index])(run);\n};\n\nvar _default = R.curryN(2, glyphIndexAt);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _ascent = _interopRequireDefault(require(\"./ascent\"));\n\nvar _descent = _interopRequireDefault(require(\"./descent\"));\n\nvar _lineGap = _interopRequireDefault(require(\"./lineGap\"));\n\n/**\n * Get run height\n *\n * @param {Object} run\n * @return {number} height\n */\nvar height = R.either(R.path(['attributes', 'lineHeight']), R.compose(R.sum, R.juxt([_ascent.default, R.o(R.negate, _descent.default), _lineGap.default])));\nvar _default = height;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get string index at offset\n *\n * @param {Object} run\n * @param {number} offset\n * @return {number} string index at offset N\n */\nvar indexAtOffset = function indexAtOffset(offset, run) {\n var counter = 0;\n var index = 0;\n var glyphs = R.propOr([], 'glyphs', run);\n var positions = R.propOr([], 'positions', run);\n\n for (var i = 0; i < positions.length; i += 1) {\n var xAdvance = positions[i].xAdvance;\n if (counter + xAdvance > offset) return index;\n counter += xAdvance;\n index += R.pathOr(0, [i, 'codePoints', 'length'], glyphs);\n }\n\n return index;\n};\n\nvar _default = R.curryN(2, indexAtOffset);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _copy = _interopRequireDefault(require(\"./copy\"));\n\nvar _slice = _interopRequireDefault(require(\"./slice\"));\n\nvar _concat = _interopRequireDefault(require(\"./concat\"));\n\nvar _append = _interopRequireDefault(require(\"./append\"));\n\nvar _getFont = _interopRequireDefault(require(\"./getFont\"));\n\nvar _isNumber = _interopRequireDefault(require(\"../utils/isNumber\"));\n\nvar _fromCodePoint = _interopRequireDefault(require(\"../glyph/fromCodePoint\"));\n\n/**\n * Insert glyph to run in the given index\n *\n * @param {number} string index\n * @param {Object} glyph\n * @param {Object} run\n * @return {Object} run with glyph\n */\nvar insertGlyph = function insertGlyph(index, glyph, run) {\n if (!glyph) return (0, _copy.default)(run); // Split resolves ligature splitting in case new glyph breaks some\n\n var leadingRun = (0, _slice.default)(0, index, run);\n var trailingRun = (0, _slice.default)(index, Infinity, run);\n return (0, _concat.default)((0, _append.default)(glyph, leadingRun), trailingRun);\n};\n/**\n * Insert either glyph or code point to run in the given index\n *\n * @param {number} string index\n * @param {Object | number} glyph | codePoint\n * @param {Object} run\n * @return {Object} run with glyph\n */\n\n\nvar insert = function insert(index, value, run) {\n var font = (0, _getFont.default)(run);\n var glyph = (0, _isNumber.default)(value) ? (0, _fromCodePoint.default)(value, font) : value;\n return insertGlyph(index, glyph, run);\n};\n\nvar _default = R.curryN(3, insert);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Is run empty (start === end)\n *\n * @param {Object} run\n * @return {Object} is run empty\n */\nvar isEmpty = R.converge(R.equals, [R.prop('start'), R.prop('end')]);\nvar _default = isEmpty;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _isWhiteSpace = _interopRequireDefault(require(\"../glyph/isWhiteSpace\"));\n\n/**\n * Get white space leading positions\n *\n * @param {Object} run\n * @return {Array} white space leading positions\n */\nvar leadingPositions = R.converge(R.slice(0), [R.compose(R.length, R.takeWhile(_isWhiteSpace.default), R.propOr([], 'glyphs')), R.propOr([], 'positions')]);\n/**\n * Get run leading white space offset\n *\n * @param {Object} run\n * @return {number} leading white space offset\n */\n\nvar leadingOffset = R.compose(R.ifElse(R.isEmpty, R.always(0), R.compose(R.sum, R.map(R.propOr(0, 'xAdvance')))), leadingPositions);\nvar _default = leadingOffset;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get run length\n *\n * @param {Object} run\n * @return {number} length\n */\nvar length = R.converge(R.subtract, [R.prop('end'), R.prop('start')]);\nvar _default = length;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _scale = _interopRequireDefault(require(\"./scale\"));\n\n/**\n * Get run lineGap\n *\n * @param {Object} run\n * @return {number} lineGap\n */\nvar lineGap = R.converge(R.multiply, [_scale.default, R.pathOr(0, ['attributes', 'font', 'lineGap'])]);\nvar _default = lineGap;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Get ligature offset by index\n *\n * Ex. ffi ligature\n *\n * glyphs: l o f f i m\n * glyphIndices: 0 1 2 2 2 3\n * offset: 0 0 0 1 2 0\n *\n * @param {number} index\n * @param {Object} run\n * @return {number} ligature offset\n */\nvar offset = function offset(index, run) {\n var value = R.pathOr(null, ['glyphIndices', index], run);\n return R.compose(R.length, R.dropWhile(R.gt(value)), R.slice(0, index), R.propOr([], 'glyphIndices'))(run);\n};\n\nvar _default = R.curryN(2, offset);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Omit attribute from run\n *\n * @param {Object} run\n * @return {Object} run without ommited attribute\n */\nvar omit = function omit(value, run) {\n return R.evolve({\n attributes: R.dissoc(value)\n })(run);\n};\n\nvar _default = R.curryN(2, omit);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _copy = _interopRequireDefault(require(\"./copy\"));\n\nvar _scale = _interopRequireDefault(require(\"./scale\"));\n\nvar _getFont = _interopRequireDefault(require(\"./getFont\"));\n\nvar _isNumber = _interopRequireDefault(require(\"../utils/isNumber\"));\n\nvar _prepend = _interopRequireDefault(require(\"../indices/prepend\"));\n\nvar _fromCodePoint = _interopRequireDefault(require(\"../glyph/fromCodePoint\"));\n\n/**\n * Prepend glyph to run\n *\n * @param {Object} glyph\n * @param {Object} run\n * @return {Object} run with glyph\n */\nvar prependGlyph = function prependGlyph(glyph, run) {\n var runScale = (0, _scale.default)(run);\n var glyphLength = R.length(glyph.codePoints);\n return R.evolve({\n end: R.add(glyphLength),\n glyphIndices: (0, _prepend.default)(glyphLength),\n glyphs: R.prepend(glyph),\n positions: R.prepend({\n xAdvance: glyph.advanceWidth * runScale\n })\n })(run);\n};\n/**\n * Prepend glyph or code point on run\n *\n * @param {Object | number} glyph | codePoint\n * @param {Object} run\n * @return {Object} run with glyph\n */\n\n\nvar prepend = function prepend(value, run) {\n if (!value) return (0, _copy.default)(run);\n var font = (0, _getFont.default)(run);\n var glyph = (0, _isNumber.default)(value) ? (0, _fromCodePoint.default)(value, font) : value;\n return prependGlyph(glyph, run);\n};\n\nvar _default = R.curryN(2, prepend);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _isBetween = _interopRequireDefault(require(\"../utils/isBetween\"));\n\n/**\n * Get run index that contains passed index\n *\n * @param {number} char index\n * @param {Array} runs array\n * @return {Array} run index\n */\nvar runIndexAt = function runIndexAt(n, runs) {\n return R.findIndex((0, _isBetween.default)(R.prop('start'), R.prop('end'), n))(runs);\n};\n\nvar _default = R.curryN(2, runIndexAt);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar unitsPerEm = ['font', 'unitsPerEm'];\n/**\n * Calculate run scale\n *\n * @param {Object} run\n * @return {number} scale\n */\n\nvar calculateScale = R.compose(R.ifElse(R.compose(R.not, R.isNil, R.path(unitsPerEm)), R.converge(R.divide, [R.propOr(12, 'fontSize'), R.path(unitsPerEm)]), R.always(0)), R.propOr({}, 'attributes'));\n/**\n * Get run scale\n *\n * @param {Object} run\n * @return {number} scale\n */\n\nvar scale = R.either(R.path(['attributes', 'scale']), calculateScale);\nvar _default = scale;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _scale = _interopRequireDefault(require(\"./scale\"));\n\nvar _offset = _interopRequireDefault(require(\"./offset\"));\n\nvar _getFont = _interopRequireDefault(require(\"./getFont\"));\n\nvar _slice = _interopRequireDefault(require(\"../glyph/slice\"));\n\nvar _glyphIndexAt = _interopRequireDefault(require(\"./glyphIndexAt\"));\n\nvar _normalize = _interopRequireDefault(require(\"../indices/normalize\"));\n\n/**\n * Slice run between glyph indices range\n *\n * @param {number} start glyph index\n * @param {number} end glyph index\n * @param {Object} run\n * @return {Object} sliced run\n */\nvar slice = function slice(start, end, run) {\n var runScale = (0, _scale.default)(run);\n var font = (0, _getFont.default)(run); // Get glyph start and end indices\n\n var glyphStartIndex = (0, _glyphIndexAt.default)(start, run);\n var glyphEndIndex = (0, _glyphIndexAt.default)(end, run); // Get start and end glyph\n\n var startGlyph = R.path(['glyphs', glyphStartIndex], run);\n var endGlyph = R.path(['glyphs', glyphEndIndex], run); // Get start ligature chunks (if any)\n\n var startOffset = (0, _offset.default)(start, run);\n var startGlyphs = startOffset > 0 ? (0, _slice.default)(startOffset, Infinity, font, startGlyph) : []; // Get end ligature chunks (if any)\n\n var endOffset = (0, _offset.default)(end, run);\n var endGlyphs = (0, _slice.default)(0, endOffset, font, endGlyph);\n var sliceOffset = Math.min(1, startOffset);\n return R.evolve({\n start: R.add(start),\n end: R.compose(R.apply(R.min), R.juxt([R.identity, // string.end\n R.o(R.add(end), R.always(run.start)) // end + string.start\n ])),\n glyphs: function glyphs(_glyphs) {\n return R.flatten([startGlyphs, _glyphs.slice(glyphStartIndex + sliceOffset, glyphEndIndex), endGlyphs]);\n },\n positions: function positions(_positions) {\n return R.flatten([startGlyphs.map(function (g) {\n return {\n xAdvance: g.advanceWidth * runScale\n };\n }), _positions.slice(glyphStartIndex + sliceOffset, glyphEndIndex), endGlyphs.map(function (g) {\n return {\n xAdvance: g.advanceWidth * runScale\n };\n })]);\n },\n glyphIndices: R.o(_normalize.default, R.slice(start, end)),\n attributes: R.identity\n })(run);\n};\n\nvar _default = R.curryN(3, slice);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Sort runs in ascending order\n *\n * @param {Array} runs\n * @return {Array} sorted runs\n */\nvar sort = function sort(a, b) {\n return a.start - b.start || a.end - b.end;\n};\n\nvar _default = R.sort(sort);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Subtract scalar to run\n *\n * @param {number} scalar\n * @param {Object} run\n * @return {Object} subtracted run\n */\nvar subtract = function subtract(n, run) {\n return R.evolve({\n start: R.subtract(R.__, n),\n end: R.subtract(R.__, n)\n })(run);\n};\n\nvar _default = R.curryN(2, subtract);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar _isWhiteSpace = _interopRequireDefault(require(\"../glyph/isWhiteSpace\"));\n\n/**\n * Get white space trailing positions\n *\n * @param {Object} run\n * @return {Array} white space trailing positions\n */\nvar trailingPositions = R.converge(R.slice(0), [R.compose(R.length, R.takeWhile(_isWhiteSpace.default), R.reverse, R.propOr([], 'glyphs')), R.compose(R.reverse, R.propOr([], 'positions'))]);\n/**\n * Get run trailing white space offset\n *\n * @param {Object} run\n * @return {number} trailing white space offset\n */\n\nvar trailingOffset = R.compose(R.ifElse(R.isEmpty, R.always(0), R.compose(R.sum, R.map(R.propOr(0, 'xAdvance')))), trailingPositions);\nvar _default = trailingOffset;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Checks if number is between two values (upper non-inclusive)\n *\n * @param {Function} lower value\n * @param {Function} higher value\n * @param {number} predicate value\n * @return {Function} is between invoker\n */\nvar isBetween = function isBetween(a, b, c) {\n return R.both(R.o(R.gte(c), a), R.o(R.lt(c), b));\n};\n\nvar _default = R.curryN(3, isBetween);\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\nvar isNumber = R.is(Number);\nvar _default = isNumber;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar R = _interopRequireWildcard(require(\"ramda\"));\n\n/**\n * Map list by index\n * Accepts up to 3 functions:\n * - Will apply first function to first value\n * - Will apply last function to last value\n * - Will apply the other function to the rest of values\n *\n * @param {Array} list\n * @param {Array} functions\n * @return {Array} mapped array\n */\nvar mapIndexed = function mapIndexed(fns, list) {\n if (fns === void 0) {\n fns = [];\n }\n\n if (list === void 0) {\n list = [];\n }\n\n var length = list.length - 1;\n return R.addIndex(R.map)(function (value, idx) {\n if (idx === 0) return R.head(fns)(value, idx);\n if (idx === length) return R.last(fns)(value, idx);\n return (fns[1] || fns[0])(value, idx);\n })(list);\n};\n\nvar _default = R.curryN(2, mapIndexed);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Get string from array of code points\n *\n * @param {Array} code points\n * @return {String} string\n */\nvar stringFromCodePoints = function stringFromCodePoints(codePoints) {\n return String.fromCodePoint.apply(String, codePoints);\n};\n\nvar _default = stringFromCodePoints;\nexports.default = _default;","import UnicodeTrie from 'unicode-trie';\n\nvar categories = [\n\t\"Cc\",\n\t\"Zs\",\n\t\"Po\",\n\t\"Sc\",\n\t\"Ps\",\n\t\"Pe\",\n\t\"Sm\",\n\t\"Pd\",\n\t\"Nd\",\n\t\"Lu\",\n\t\"Sk\",\n\t\"Pc\",\n\t\"Ll\",\n\t\"So\",\n\t\"Lo\",\n\t\"Pi\",\n\t\"Cf\",\n\t\"No\",\n\t\"Pf\",\n\t\"Lt\",\n\t\"Lm\",\n\t\"Mn\",\n\t\"Me\",\n\t\"Mc\",\n\t\"Nl\",\n\t\"Zl\",\n\t\"Zp\",\n\t\"Cs\",\n\t\"Co\"\n];\nvar combiningClasses = [\n\t\"Not_Reordered\",\n\t\"Above\",\n\t\"Above_Right\",\n\t\"Below\",\n\t\"Attached_Above_Right\",\n\t\"Attached_Below\",\n\t\"Overlay\",\n\t\"Iota_Subscript\",\n\t\"Double_Below\",\n\t\"Double_Above\",\n\t\"Below_Right\",\n\t\"Above_Left\",\n\t\"CCC10\",\n\t\"CCC11\",\n\t\"CCC12\",\n\t\"CCC13\",\n\t\"CCC14\",\n\t\"CCC15\",\n\t\"CCC16\",\n\t\"CCC17\",\n\t\"CCC18\",\n\t\"CCC19\",\n\t\"CCC20\",\n\t\"CCC21\",\n\t\"CCC22\",\n\t\"CCC23\",\n\t\"CCC24\",\n\t\"CCC25\",\n\t\"CCC30\",\n\t\"CCC31\",\n\t\"CCC32\",\n\t\"CCC27\",\n\t\"CCC28\",\n\t\"CCC29\",\n\t\"CCC33\",\n\t\"CCC34\",\n\t\"CCC35\",\n\t\"CCC36\",\n\t\"Nukta\",\n\t\"Virama\",\n\t\"CCC84\",\n\t\"CCC91\",\n\t\"CCC103\",\n\t\"CCC107\",\n\t\"CCC118\",\n\t\"CCC122\",\n\t\"CCC129\",\n\t\"CCC130\",\n\t\"CCC132\",\n\t\"Attached_Above\",\n\t\"Below_Left\",\n\t\"Left\",\n\t\"Kana_Voicing\",\n\t\"CCC26\",\n\t\"Right\"\n];\nvar scripts = [\n\t\"Common\",\n\t\"Latin\",\n\t\"Bopomofo\",\n\t\"Inherited\",\n\t\"Greek\",\n\t\"Coptic\",\n\t\"Cyrillic\",\n\t\"Armenian\",\n\t\"Hebrew\",\n\t\"Arabic\",\n\t\"Syriac\",\n\t\"Thaana\",\n\t\"Nko\",\n\t\"Samaritan\",\n\t\"Mandaic\",\n\t\"Devanagari\",\n\t\"Bengali\",\n\t\"Gurmukhi\",\n\t\"Gujarati\",\n\t\"Oriya\",\n\t\"Tamil\",\n\t\"Telugu\",\n\t\"Kannada\",\n\t\"Malayalam\",\n\t\"Sinhala\",\n\t\"Thai\",\n\t\"Lao\",\n\t\"Tibetan\",\n\t\"Myanmar\",\n\t\"Georgian\",\n\t\"Hangul\",\n\t\"Ethiopic\",\n\t\"Cherokee\",\n\t\"Canadian_Aboriginal\",\n\t\"Ogham\",\n\t\"Runic\",\n\t\"Tagalog\",\n\t\"Hanunoo\",\n\t\"Buhid\",\n\t\"Tagbanwa\",\n\t\"Khmer\",\n\t\"Mongolian\",\n\t\"Limbu\",\n\t\"Tai_Le\",\n\t\"New_Tai_Lue\",\n\t\"Buginese\",\n\t\"Tai_Tham\",\n\t\"Balinese\",\n\t\"Sundanese\",\n\t\"Batak\",\n\t\"Lepcha\",\n\t\"Ol_Chiki\",\n\t\"Braille\",\n\t\"Glagolitic\",\n\t\"Tifinagh\",\n\t\"Han\",\n\t\"Hiragana\",\n\t\"Katakana\",\n\t\"Yi\",\n\t\"Lisu\",\n\t\"Vai\",\n\t\"Bamum\",\n\t\"Syloti_Nagri\",\n\t\"Phags_Pa\",\n\t\"Saurashtra\",\n\t\"Kayah_Li\",\n\t\"Rejang\",\n\t\"Javanese\",\n\t\"Cham\",\n\t\"Tai_Viet\",\n\t\"Meetei_Mayek\",\n\t\"null\",\n\t\"Linear_B\",\n\t\"Lycian\",\n\t\"Carian\",\n\t\"Old_Italic\",\n\t\"Gothic\",\n\t\"Old_Permic\",\n\t\"Ugaritic\",\n\t\"Old_Persian\",\n\t\"Deseret\",\n\t\"Shavian\",\n\t\"Osmanya\",\n\t\"Osage\",\n\t\"Elbasan\",\n\t\"Caucasian_Albanian\",\n\t\"Linear_A\",\n\t\"Cypriot\",\n\t\"Imperial_Aramaic\",\n\t\"Palmyrene\",\n\t\"Nabataean\",\n\t\"Hatran\",\n\t\"Phoenician\",\n\t\"Lydian\",\n\t\"Meroitic_Hieroglyphs\",\n\t\"Meroitic_Cursive\",\n\t\"Kharoshthi\",\n\t\"Old_South_Arabian\",\n\t\"Old_North_Arabian\",\n\t\"Manichaean\",\n\t\"Avestan\",\n\t\"Inscriptional_Parthian\",\n\t\"Inscriptional_Pahlavi\",\n\t\"Psalter_Pahlavi\",\n\t\"Old_Turkic\",\n\t\"Old_Hungarian\",\n\t\"Hanifi_Rohingya\",\n\t\"Old_Sogdian\",\n\t\"Sogdian\",\n\t\"Elymaic\",\n\t\"Brahmi\",\n\t\"Kaithi\",\n\t\"Sora_Sompeng\",\n\t\"Chakma\",\n\t\"Mahajani\",\n\t\"Sharada\",\n\t\"Khojki\",\n\t\"Multani\",\n\t\"Khudawadi\",\n\t\"Grantha\",\n\t\"Newa\",\n\t\"Tirhuta\",\n\t\"Siddham\",\n\t\"Modi\",\n\t\"Takri\",\n\t\"Ahom\",\n\t\"Dogra\",\n\t\"Warang_Citi\",\n\t\"Nandinagari\",\n\t\"Zanabazar_Square\",\n\t\"Soyombo\",\n\t\"Pau_Cin_Hau\",\n\t\"Bhaiksuki\",\n\t\"Marchen\",\n\t\"Masaram_Gondi\",\n\t\"Gunjala_Gondi\",\n\t\"Makasar\",\n\t\"Cuneiform\",\n\t\"Egyptian_Hieroglyphs\",\n\t\"Anatolian_Hieroglyphs\",\n\t\"Mro\",\n\t\"Bassa_Vah\",\n\t\"Pahawh_Hmong\",\n\t\"Medefaidrin\",\n\t\"Miao\",\n\t\"Tangut\",\n\t\"Nushu\",\n\t\"Duployan\",\n\t\"SignWriting\",\n\t\"Nyiakeng_Puachue_Hmong\",\n\t\"Wancho\",\n\t\"Mende_Kikakui\",\n\t\"Adlam\"\n];\nvar eaw = [\n\t\"N\",\n\t\"Na\",\n\t\"A\",\n\t\"W\",\n\t\"H\",\n\t\"F\"\n];\nvar data$1 = {\n\tcategories: categories,\n\tcombiningClasses: combiningClasses,\n\tscripts: scripts,\n\teaw: eaw\n};\n\nvar type = \"Buffer\";\nvar data = [\n\t0,\n\t17,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t0,\n\t1,\n\t124,\n\t240,\n\t101,\n\t121,\n\t121,\n\t56,\n\t212,\n\t109,\n\t251,\n\t254,\n\t91,\n\t61,\n\t81,\n\t89,\n\t138,\n\t100,\n\t95,\n\t42,\n\t132,\n\t208,\n\t36,\n\t217,\n\t183,\n\t236,\n\t33,\n\t132,\n\t236,\n\t140,\n\t52,\n\t143,\n\t117,\n\t44,\n\t77,\n\t98,\n\t172,\n\t163,\n\t34,\n\t59,\n\t147,\n\t12,\n\t178,\n\t78,\n\t33,\n\t20,\n\t205,\n\t32,\n\t251,\n\t54,\n\t33,\n\t51,\n\t133,\n\t102,\n\t34,\n\t140,\n\t125,\n\t48,\n\t49,\n\t89,\n\t7,\n\t19,\n\t131,\n\t49,\n\t227,\n\t215,\n\t243,\n\t126,\n\t143,\n\t183,\n\t158,\n\t227,\n\t248,\n\t253,\n\t247,\n\t89,\n\t142,\n\t251,\n\t254,\n\t92,\n\t215,\n\t121,\n\t159,\n\t247,\n\t125,\n\t157,\n\t231,\n\t245,\n\t89,\n\t155,\n\t230,\n\t42,\n\t20,\n\t241,\n\t137,\n\t153,\n\t221,\n\t204,\n\t52,\n\t1,\n\t72,\n\t70,\n\t16,\n\t171,\n\t26,\n\t138,\n\t194,\n\t123,\n\t10,\n\t188,\n\t100,\n\t46,\n\t112,\n\t88,\n\t126,\n\t234,\n\t222,\n\t156,\n\t39,\n\t191,\n\t118,\n\t120,\n\t244,\n\t1,\n\t102,\n\t254,\n\t82,\n\t247,\n\t37,\n\t210,\n\t194,\n\t76,\n\t163,\n\t127,\n\t243,\n\t248,\n\t79,\n\t185,\n\t147,\n\t54,\n\t114,\n\t0,\n\t191,\n\t87,\n\t78,\n\t86,\n\t19,\n\t37,\n\t71,\n\t217,\n\t95,\n\t149,\n\t181,\n\t11,\n\t244,\n\t151,\n\t137,\n\t130,\n\t234,\n\t172,\n\t142,\n\t241,\n\t189,\n\t53,\n\t56,\n\t255,\n\t192,\n\t182,\n\t249,\n\t235,\n\t165,\n\t64,\n\t81,\n\t25,\n\t203,\n\t163,\n\t107,\n\t239,\n\t70,\n\t47,\n\t61,\n\t75,\n\t120,\n\t22,\n\t255,\n\t125,\n\t226,\n\t134,\n\t29,\n\t158,\n\t94,\n\t144,\n\t231,\n\t227,\n\t64,\n\t72,\n\t91,\n\t180,\n\t68,\n\t151,\n\t254,\n\t220,\n\t161,\n\t18,\n\t136,\n\t132,\n\t1,\n\t101,\n\t2,\n\t35,\n\t173,\n\t108,\n\t176,\n\t211,\n\t183,\n\t169,\n\t140,\n\t111,\n\t129,\n\t179,\n\t48,\n\t93,\n\t96,\n\t54,\n\t123,\n\t215,\n\t254,\n\t192,\n\t113,\n\t181,\n\t187,\n\t0,\n\t34,\n\t55,\n\t243,\n\t180,\n\t35,\n\t92,\n\t66,\n\t55,\n\t13,\n\t14,\n\t210,\n\t211,\n\t133,\n\t27,\n\t238,\n\t94,\n\t238,\n\t76,\n\t230,\n\t15,\n\t194,\n\t6,\n\t54,\n\t139,\n\t4,\n\t78,\n\t37,\n\t38,\n\t110,\n\t42,\n\t203,\n\t250,\n\t25,\n\t15,\n\t222,\n\t254,\n\t32,\n\t154,\n\t242,\n\t2,\n\t151,\n\t23,\n\t126,\n\t5,\n\t152,\n\t150,\n\t75,\n\t214,\n\t110,\n\t23,\n\t215,\n\t130,\n\t232,\n\t206,\n\t36,\n\t165,\n\t110,\n\t240,\n\t31,\n\t168,\n\t206,\n\t164,\n\t203,\n\t111,\n\t28,\n\t137,\n\t230,\n\t67,\n\t98,\n\t71,\n\t190,\n\t66,\n\t196,\n\t58,\n\t159,\n\t4,\n\t207,\n\t94,\n\t58,\n\t80,\n\t204,\n\t152,\n\t103,\n\t168,\n\t103,\n\t72,\n\t144,\n\t109,\n\t180,\n\t185,\n\t85,\n\t74,\n\t101,\n\t35,\n\t2,\n\t62,\n\t100,\n\t213,\n\t196,\n\t41,\n\t5,\n\t73,\n\t198,\n\t92,\n\t42,\n\t142,\n\t19,\n\t152,\n\t239,\n\t13,\n\t215,\n\t192,\n\t247,\n\t172,\n\t108,\n\t178,\n\t185,\n\t37,\n\t145,\n\t62,\n\t78,\n\t222,\n\t23,\n\t242,\n\t175,\n\t36,\n\t155,\n\t71,\n\t115,\n\t34,\n\t123,\n\t15,\n\t63,\n\t54,\n\t236,\n\t114,\n\t184,\n\t193,\n\t49,\n\t88,\n\t197,\n\t230,\n\t99,\n\t135,\n\t73,\n\t228,\n\t93,\n\t37,\n\t88,\n\t10,\n\t82,\n\t50,\n\t211,\n\t30,\n\t33,\n\t234,\n\t93,\n\t35,\n\t228,\n\t122,\n\t159,\n\t13,\n\t255,\n\t49,\n\t100,\n\t243,\n\t94,\n\t187,\n\t40,\n\t186,\n\t123,\n\t229,\n\t254,\n\t145,\n\t157,\n\t217,\n\t47,\n\t205,\n\t215,\n\t193,\n\t233,\n\t76,\n\t247,\n\t50,\n\t106,\n\t175,\n\t68,\n\t10,\n\t243,\n\t116,\n\t38,\n\t236,\n\t215,\n\t248,\n\t145,\n\t102,\n\t54,\n\t15,\n\t44,\n\t177,\n\t119,\n\t83,\n\t196,\n\t44,\n\t248,\n\t127,\n\t145,\n\t111,\n\t200,\n\t138,\n\t231,\n\t86,\n\t186,\n\t52,\n\t133,\n\t118,\n\t87,\n\t223,\n\t180,\n\t238,\n\t226,\n\t108,\n\t76,\n\t97,\n\t86,\n\t164,\n\t252,\n\t252,\n\t39,\n\t239,\n\t187,\n\t137,\n\t27,\n\t182,\n\t7,\n\t167,\n\t128,\n\t42,\n\t82,\n\t191,\n\t146,\n\t232,\n\t235,\n\t46,\n\t216,\n\t112,\n\t104,\n\t63,\n\t251,\n\t107,\n\t162,\n\t121,\n\t195,\n\t221,\n\t19,\n\t186,\n\t201,\n\t199,\n\t212,\n\t147,\n\t0,\n\t115,\n\t232,\n\t13,\n\t174,\n\t169,\n\t120,\n\t106,\n\t202,\n\t78,\n\t80,\n\t111,\n\t209,\n\t174,\n\t204,\n\t84,\n\t42,\n\t99,\n\t243,\n\t132,\n\t120,\n\t15,\n\t224,\n\t25,\n\t94,\n\t174,\n\t239,\n\t186,\n\t85,\n\t247,\n\t63,\n\t48,\n\t24,\n\t224,\n\t93,\n\t92,\n\t123,\n\t194,\n\t26,\n\t61,\n\t226,\n\t115,\n\t231,\n\t236,\n\t195,\n\t197,\n\t174,\n\t124,\n\t16,\n\t63,\n\t184,\n\t52,\n\t147,\n\t64,\n\t234,\n\t210,\n\t29,\n\t134,\n\t72,\n\t163,\n\t186,\n\t125,\n\t54,\n\t124,\n\t156,\n\t186,\n\t29,\n\t55,\n\t84,\n\t162,\n\t57,\n\t72,\n\t255,\n\t228,\n\t66,\n\t255,\n\t94,\n\t141,\n\t67,\n\t6,\n\t244,\n\t102,\n\t211,\n\t9,\n\t171,\n\t135,\n\t124,\n\t122,\n\t166,\n\t23,\n\t9,\n\t219,\n\t79,\n\t253,\n\t10,\n\t227,\n\t43,\n\t230,\n\t31,\n\t22,\n\t62,\n\t165,\n\t204,\n\t73,\n\t171,\n\t11,\n\t160,\n\t177,\n\t232,\n\t185,\n\t244,\n\t230,\n\t19,\n\t185,\n\t179,\n\t98,\n\t187,\n\t58,\n\t7,\n\t71,\n\t88,\n\t236,\n\t168,\n\t238,\n\t10,\n\t136,\n\t10,\n\t170,\n\t203,\n\t241,\n\t159,\n\t16,\n\t48,\n\t93,\n\t107,\n\t221,\n\t244,\n\t251,\n\t156,\n\t244,\n\t249,\n\t196,\n\t240,\n\t51,\n\t135,\n\t79,\n\t98,\n\t13,\n\t31,\n\t20,\n\t101,\n\t35,\n\t37,\n\t71,\n\t174,\n\t166,\n\t90,\n\t134,\n\t215,\n\t213,\n\t216,\n\t79,\n\t192,\n\t216,\n\t240,\n\t221,\n\t180,\n\t13,\n\t222,\n\t194,\n\t84,\n\t71,\n\t50,\n\t209,\n\t72,\n\t4,\n\t163,\n\t191,\n\t79,\n\t130,\n\t40,\n\t205,\n\t100,\n\t208,\n\t103,\n\t233,\n\t155,\n\t250,\n\t7,\n\t74,\n\t186,\n\t79,\n\t217,\n\t30,\n\t186,\n\t165,\n\t162,\n\t231,\n\t10,\n\t118,\n\t195,\n\t146,\n\t38,\n\t105,\n\t86,\n\t77,\n\t41,\n\t237,\n\t90,\n\t55,\n\t49,\n\t84,\n\t200,\n\t212,\n\t154,\n\t186,\n\t23,\n\t44,\n\t205,\n\t116,\n\t35,\n\t164,\n\t240,\n\t12,\n\t185,\n\t193,\n\t171,\n\t130,\n\t207,\n\t235,\n\t212,\n\t241,\n\t129,\n\t87,\n\t178,\n\t26,\n\t199,\n\t124,\n\t200,\n\t123,\n\t225,\n\t23,\n\t204,\n\t157,\n\t62,\n\t90,\n\t205,\n\t69,\n\t35,\n\t108,\n\t244,\n\t67,\n\t251,\n\t90,\n\t103,\n\t174,\n\t72,\n\t78,\n\t203,\n\t187,\n\t93,\n\t9,\n\t108,\n\t235,\n\t144,\n\t112,\n\t156,\n\t63,\n\t235,\n\t123,\n\t3,\n\t167,\n\t175,\n\t48,\n\t7,\n\t216,\n\t176,\n\t63,\n\t144,\n\t14,\n\t250,\n\t96,\n\t105,\n\t87,\n\t68,\n\t121,\n\t84,\n\t48,\n\t222,\n\t201,\n\t5,\n\t5,\n\t9,\n\t233,\n\t117,\n\t27,\n\t238,\n\t10,\n\t28,\n\t24,\n\t4,\n\t84,\n\t84,\n\t180,\n\t96,\n\t175,\n\t166,\n\t218,\n\t197,\n\t203,\n\t88,\n\t187,\n\t134,\n\t78,\n\t89,\n\t21,\n\t1,\n\t223,\n\t123,\n\t91,\n\t2,\n\t138,\n\t117,\n\t167,\n\t35,\n\t88,\n\t73,\n\t81,\n\t10,\n\t224,\n\t209,\n\t106,\n\t231,\n\t247,\n\t222,\n\t95,\n\t242,\n\t85,\n\t192,\n\t197,\n\t234,\n\t197,\n\t79,\n\t41,\n\t228,\n\t222,\n\t179,\n\t223,\n\t69,\n\t11,\n\t83,\n\t105,\n\t53,\n\t103,\n\t41,\n\t137,\n\t225,\n\t146,\n\t87,\n\t242,\n\t27,\n\t59,\n\t195,\n\t194,\n\t79,\n\t46,\n\t105,\n\t109,\n\t68,\n\t117,\n\t83,\n\t201,\n\t113,\n\t205,\n\t254,\n\t19,\n\t251,\n\t46,\n\t159,\n\t100,\n\t204,\n\t78,\n\t207,\n\t114,\n\t236,\n\t134,\n\t68,\n\t11,\n\t121,\n\t224,\n\t210,\n\t119,\n\t69,\n\t166,\n\t82,\n\t180,\n\t32,\n\t106,\n\t57,\n\t155,\n\t146,\n\t218,\n\t241,\n\t177,\n\t189,\n\t128,\n\t103,\n\t64,\n\t2,\n\t195,\n\t101,\n\t96,\n\t158,\n\t47,\n\t160,\n\t87,\n\t249,\n\t190,\n\t42,\n\t240,\n\t145,\n\t88,\n\t184,\n\t52,\n\t240,\n\t41,\n\t113,\n\t238,\n\t232,\n\t106,\n\t151,\n\t235,\n\t253,\n\t95,\n\t36,\n\t134,\n\t114,\n\t56,\n\t206,\n\t30,\n\t91,\n\t41,\n\t242,\n\t240,\n\t112,\n\t253,\n\t239,\n\t7,\n\t75,\n\t183,\n\t109,\n\t138,\n\t161,\n\t122,\n\t79,\n\t245,\n\t220,\n\t73,\n\t123,\n\t154,\n\t49,\n\t110,\n\t186,\n\t24,\n\t93,\n\t96,\n\t226,\n\t175,\n\t88,\n\t200,\n\t22,\n\t157,\n\t30,\n\t172,\n\t183,\n\t99,\n\t152,\n\t226,\n\t159,\n\t87,\n\t59,\n\t201,\n\t154,\n\t44,\n\t232,\n\t16,\n\t107,\n\t233,\n\t219,\n\t40,\n\t153,\n\t33,\n\t241,\n\t137,\n\t65,\n\t218,\n\t157,\n\t139,\n\t92,\n\t97,\n\t12,\n\t39,\n\t48,\n\t198,\n\t97,\n\t70,\n\t19,\n\t167,\n\t105,\n\t130,\n\t94,\n\t200,\n\t156,\n\t218,\n\t70,\n\t235,\n\t164,\n\t200,\n\t37,\n\t33,\n\t227,\n\t207,\n\t158,\n\t252,\n\t21,\n\t47,\n\t147,\n\t246,\n\t132,\n\t124,\n\t58,\n\t124,\n\t106,\n\t15,\n\t163,\n\t15,\n\t174,\n\t1,\n\t31,\n\t19,\n\t103,\n\t67,\n\t155,\n\t255,\n\t19,\n\t181,\n\t145,\n\t147,\n\t183,\n\t139,\n\t140,\n\t101,\n\t117,\n\t220,\n\t141,\n\t232,\n\t171,\n\t46,\n\t57,\n\t96,\n\t211,\n\t141,\n\t139,\n\t253,\n\t104,\n\t167,\n\t90,\n\t3,\n\t175,\n\t186,\n\t207,\n\t142,\n\t72,\n\t79,\n\t177,\n\t53,\n\t224,\n\t82,\n\t148,\n\t45,\n\t24,\n\t51,\n\t229,\n\t34,\n\t206,\n\t121,\n\t42,\n\t20,\n\t26,\n\t137,\n\t207,\n\t100,\n\t72,\n\t107,\n\t63,\n\t82,\n\t182,\n\t118,\n\t64,\n\t164,\n\t14,\n\t126,\n\t80,\n\t124,\n\t49,\n\t49,\n\t16,\n\t197,\n\t17,\n\t125,\n\t166,\n\t233,\n\t101,\n\t78,\n\t133,\n\t142,\n\t236,\n\t74,\n\t101,\n\t106,\n\t126,\n\t166,\n\t112,\n\t196,\n\t69,\n\t157,\n\t75,\n\t182,\n\t227,\n\t141,\n\t114,\n\t198,\n\t45,\n\t183,\n\t199,\n\t226,\n\t170,\n\t42,\n\t90,\n\t251,\n\t69,\n\t101,\n\t172,\n\t139,\n\t214,\n\t87,\n\t49,\n\t105,\n\t107,\n\t242,\n\t247,\n\t207,\n\t222,\n\t89,\n\t100,\n\t214,\n\t109,\n\t143,\n\t70,\n\t61,\n\t50,\n\t185,\n\t215,\n\t28,\n\t196,\n\t27,\n\t168,\n\t107,\n\t181,\n\t95,\n\t34,\n\t4,\n\t102,\n\t156,\n\t83,\n\t198,\n\t95,\n\t163,\n\t230,\n\t213,\n\t98,\n\t31,\n\t50,\n\t111,\n\t209,\n\t155,\n\t137,\n\t255,\n\t197,\n\t57,\n\t252,\n\t32,\n\t106,\n\t128,\n\t208,\n\t101,\n\t174,\n\t170,\n\t11,\n\t184,\n\t242,\n\t145,\n\t20,\n\t59,\n\t69,\n\t61,\n\t156,\n\t223,\n\t153,\n\t116,\n\t139,\n\t197,\n\t164,\n\t246,\n\t251,\n\t84,\n\t51,\n\t233,\n\t132,\n\t135,\n\t209,\n\t103,\n\t28,\n\t231,\n\t148,\n\t119,\n\t149,\n\t21,\n\t230,\n\t228,\n\t119,\n\t217,\n\t126,\n\t173,\n\t165,\n\t242,\n\t244,\n\t26,\n\t83,\n\t49,\n\t194,\n\t20,\n\t34,\n\t240,\n\t95,\n\t128,\n\t113,\n\t27,\n\t234,\n\t119,\n\t70,\n\t163,\n\t197,\n\t84,\n\t147,\n\t26,\n\t98,\n\t121,\n\t253,\n\t120,\n\t42,\n\t60,\n\t197,\n\t57,\n\t198,\n\t128,\n\t53,\n\t248,\n\t47,\n\t22,\n\t155,\n\t242,\n\t99,\n\t201,\n\t68,\n\t242,\n\t81,\n\t56,\n\t173,\n\t161,\n\t226,\n\t204,\n\t186,\n\t101,\n\t184,\n\t252,\n\t204,\n\t146,\n\t205,\n\t97,\n\t199,\n\t247,\n\t181,\n\t30,\n\t137,\n\t57,\n\t201,\n\t93,\n\t41,\n\t238,\n\t164,\n\t7,\n\t236,\n\t102,\n\t152,\n\t120,\n\t204,\n\t243,\n\t101,\n\t49,\n\t111,\n\t70,\n\t155,\n\t250,\n\t147,\n\t168,\n\t154,\n\t39,\n\t140,\n\t141,\n\t171,\n\t48,\n\t111,\n\t55,\n\t194,\n\t123,\n\t7,\n\t141,\n\t244,\n\t135,\n\t108,\n\t5,\n\t155,\n\t82,\n\t1,\n\t61,\n\t202,\n\t155,\n\t162,\n\t237,\n\t247,\n\t27,\n\t191,\n\t205,\n\t88,\n\t248,\n\t40,\n\t166,\n\t94,\n\t12,\n\t150,\n\t89,\n\t90,\n\t233,\n\t237,\n\t184,\n\t47,\n\t116,\n\t206,\n\t77,\n\t83,\n\t100,\n\t205,\n\t173,\n\t179,\n\t191,\n\t116,\n\t10,\n\t184,\n\t53,\n\t147,\n\t120,\n\t58,\n\t66,\n\t148,\n\t33,\n\t24,\n\t129,\n\t52,\n\t62,\n\t230,\n\t241,\n\t1,\n\t73,\n\t6,\n\t108,\n\t254,\n\t179,\n\t5,\n\t231,\n\t79,\n\t172,\n\t155,\n\t136,\n\t232,\n\t125,\n\t56,\n\t22,\n\t46,\n\t168,\n\t23,\n\t215,\n\t29,\n\t211,\n\t146,\n\t176,\n\t196,\n\t85,\n\t164,\n\t106,\n\t125,\n\t143,\n\t241,\n\t102,\n\t44,\n\t197,\n\t103,\n\t118,\n\t60,\n\t252,\n\t49,\n\t68,\n\t20,\n\t61,\n\t245,\n\t85,\n\t39,\n\t193,\n\t67,\n\t154,\n\t218,\n\t16,\n\t30,\n\t167,\n\t30,\n\t118,\n\t97,\n\t233,\n\t215,\n\t94,\n\t134,\n\t215,\n\t37,\n\t64,\n\t159,\n\t31,\n\t6,\n\t185,\n\t93,\n\t200,\n\t136,\n\t125,\n\t244,\n\t179,\n\t103,\n\t87,\n\t125,\n\t135,\n\t204,\n\t161,\n\t30,\n\t143,\n\t78,\n\t33,\n\t147,\n\t164,\n\t152,\n\t141,\n\t214,\n\t174,\n\t9,\n\t174,\n\t26,\n\t97,\n\t109,\n\t43,\n\t187,\n\t244,\n\t49,\n\t189,\n\t4,\n\t70,\n\t204,\n\t178,\n\t142,\n\t1,\n\t11,\n\t51,\n\t127,\n\t120,\n\t177,\n\t39,\n\t42,\n\t83,\n\t91,\n\t117,\n\t150,\n\t47,\n\t160,\n\t75,\n\t72,\n\t93,\n\t132,\n\t48,\n\t35,\n\t8,\n\t195,\n\t179,\n\t148,\n\t189,\n\t96,\n\t66,\n\t232,\n\t15,\n\t224,\n\t13,\n\t205,\n\t131,\n\t214,\n\t59,\n\t193,\n\t106,\n\t147,\n\t2,\n\t115,\n\t188,\n\t237,\n\t199,\n\t168,\n\t216,\n\t115,\n\t60,\n\t19,\n\t42,\n\t196,\n\t75,\n\t47,\n\t167,\n\t76,\n\t53,\n\t118,\n\t252,\n\t220,\n\t116,\n\t188,\n\t145,\n\t208,\n\t244,\n\t165,\n\t51,\n\t12,\n\t143,\n\t94,\n\t181,\n\t205,\n\t181,\n\t71,\n\t145,\n\t77,\n\t38,\n\t133,\n\t33,\n\t232,\n\t245,\n\t41,\n\t65,\n\t12,\n\t53,\n\t221,\n\t55,\n\t168,\n\t67,\n\t189,\n\t17,\n\t162,\n\t206,\n\t106,\n\t33,\n\t180,\n\t140,\n\t145,\n\t222,\n\t139,\n\t124,\n\t180,\n\t94,\n\t98,\n\t80,\n\t110,\n\t6,\n\t44,\n\t215,\n\t23,\n\t120,\n\t107,\n\t193,\n\t185,\n\t212,\n\t133,\n\t172,\n\t123,\n\t190,\n\t109,\n\t86,\n\t91,\n\t246,\n\t56,\n\t171,\n\t53,\n\t81,\n\t190,\n\t173,\n\t3,\n\t200,\n\t231,\n\t80,\n\t59,\n\t30,\n\t239,\n\t63,\n\t111,\n\t69,\n\t30,\n\t104,\n\t134,\n\t153,\n\t225,\n\t72,\n\t3,\n\t59,\n\t175,\n\t15,\n\t145,\n\t140,\n\t119,\n\t60,\n\t77,\n\t135,\n\t90,\n\t146,\n\t154,\n\t164,\n\t158,\n\t250,\n\t224,\n\t172,\n\t109,\n\t229,\n\t49,\n\t88,\n\t167,\n\t44,\n\t12,\n\t203,\n\t128,\n\t203,\n\t66,\n\t165,\n\t81,\n\t203,\n\t93,\n\t72,\n\t237,\n\t35,\n\t139,\n\t135,\n\t21,\n\t5,\n\t154,\n\t168,\n\t132,\n\t43,\n\t157,\n\t141,\n\t106,\n\t40,\n\t214,\n\t2,\n\t178,\n\t31,\n\t10,\n\t14,\n\t170,\n\t27,\n\t202,\n\t185,\n\t121,\n\t40,\n\t176,\n\t68,\n\t34,\n\t91,\n\t213,\n\t30,\n\t198,\n\t12,\n\t145,\n\t187,\n\t225,\n\t58,\n\t216,\n\t131,\n\t31,\n\t229,\n\t86,\n\t174,\n\t240,\n\t247,\n\t239,\n\t138,\n\t135,\n\t221,\n\t189,\n\t197,\n\t34,\n\t68,\n\t106,\n\t132,\n\t172,\n\t123,\n\t151,\n\t212,\n\t57,\n\t8,\n\t61,\n\t156,\n\t192,\n\t39,\n\t33,\n\t155,\n\t254,\n\t237,\n\t252,\n\t21,\n\t69,\n\t195,\n\t111,\n\t222,\n\t3,\n\t135,\n\t35,\n\t142,\n\t149,\n\t111,\n\t152,\n\t216,\n\t80,\n\t46,\n\t186,\n\t61,\n\t129,\n\t206,\n\t234,\n\t84,\n\t190,\n\t76,\n\t233,\n\t175,\n\t17,\n\t8,\n\t238,\n\t98,\n\t108,\n\t120,\n\t70,\n\t71,\n\t223,\n\t96,\n\t108,\n\t106,\n\t100,\n\t138,\n\t127,\n\t12,\n\t245,\n\t141,\n\t28,\n\t8,\n\t177,\n\t109,\n\t16,\n\t92,\n\t249,\n\t114,\n\t132,\n\t220,\n\t145,\n\t14,\n\t130,\n\t206,\n\t35,\n\t35,\n\t11,\n\t191,\n\t117,\n\t32,\n\t48,\n\t135,\n\t39,\n\t107,\n\t184,\n\t225,\n\t133,\n\t223,\n\t215,\n\t40,\n\t247,\n\t86,\n\t147,\n\t179,\n\t206,\n\t73,\n\t39,\n\t118,\n\t127,\n\t46,\n\t149,\n\t232,\n\t23,\n\t141,\n\t225,\n\t83,\n\t2,\n\t108,\n\t111,\n\t243,\n\t53,\n\t10,\n\t28,\n\t221,\n\t159,\n\t193,\n\t215,\n\t242,\n\t242,\n\t215,\n\t158,\n\t165,\n\t148,\n\t42,\n\t244,\n\t97,\n\t52,\n\t186,\n\t95,\n\t0,\n\t94,\n\t15,\n\t76,\n\t90,\n\t175,\n\t107,\n\t91,\n\t1,\n\t64,\n\t109,\n\t9,\n\t251,\n\t159,\n\t71,\n\t201,\n\t135,\n\t230,\n\t67,\n\t122,\n\t26,\n\t227,\n\t251,\n\t49,\n\t101,\n\t214,\n\t169,\n\t84,\n\t185,\n\t104,\n\t253,\n\t250,\n\t40,\n\t197,\n\t37,\n\t226,\n\t253,\n\t211,\n\t132,\n\t65,\n\t98,\n\t22,\n\t171,\n\t193,\n\t52,\n\t22,\n\t75,\n\t109,\n\t19,\n\t36,\n\t197,\n\t93,\n\t29,\n\t154,\n\t52,\n\t195,\n\t200,\n\t52,\n\t194,\n\t51,\n\t103,\n\t0,\n\t141,\n\t18,\n\t23,\n\t152,\n\t77,\n\t89,\n\t109,\n\t177,\n\t214,\n\t139,\n\t144,\n\t204,\n\t138,\n\t160,\n\t69,\n\t37,\n\t184,\n\t243,\n\t64,\n\t96,\n\t35,\n\t54,\n\t32,\n\t109,\n\t219,\n\t175,\n\t64,\n\t203,\n\t203,\n\t71,\n\t213,\n\t53,\n\t98,\n\t135,\n\t181,\n\t180,\n\t138,\n\t108,\n\t24,\n\t223,\n\t139,\n\t14,\n\t203,\n\t187,\n\t78,\n\t160,\n\t64,\n\t86,\n\t165,\n\t11,\n\t180,\n\t66,\n\t244,\n\t28,\n\t17,\n\t49,\n\t42,\n\t75,\n\t96,\n\t53,\n\t40,\n\t246,\n\t144,\n\t237,\n\t13,\n\t252,\n\t240,\n\t82,\n\t35,\n\t201,\n\t40,\n\t178,\n\t118,\n\t44,\n\t103,\n\t18,\n\t166,\n\t21,\n\t129,\n\t105,\n\t211,\n\t136,\n\t254,\n\t34,\n\t99,\n\t54,\n\t165,\n\t7,\n\t87,\n\t187,\n\t156,\n\t27,\n\t204,\n\t130,\n\t235,\n\t232,\n\t141,\n\t51,\n\t212,\n\t24,\n\t18,\n\t90,\n\t129,\n\t71,\n\t177,\n\t2,\n\t21,\n\t122,\n\t220,\n\t78,\n\t5,\n\t144,\n\t221,\n\t225,\n\t191,\n\t180,\n\t37,\n\t154,\n\t113,\n\t63,\n\t91,\n\t196,\n\t137,\n\t31,\n\t155,\n\t19,\n\t230,\n\t139,\n\t123,\n\t206,\n\t119,\n\t126,\n\t138,\n\t198,\n\t40,\n\t64,\n\t36,\n\t14,\n\t247,\n\t189,\n\t99,\n\t73,\n\t249,\n\t143,\n\t104,\n\t106,\n\t149,\n\t205,\n\t177,\n\t197,\n\t82,\n\t86,\n\t164,\n\t185,\n\t131,\n\t94,\n\t113,\n\t57,\n\t99,\n\t67,\n\t253,\n\t107,\n\t148,\n\t9,\n\t192,\n\t61,\n\t96,\n\t0,\n\t32,\n\t233,\n\t97,\n\t91,\n\t140,\n\t118,\n\t166,\n\t173,\n\t185,\n\t89,\n\t229,\n\t205,\n\t11,\n\t233,\n\t156,\n\t117,\n\t95,\n\t159,\n\t25,\n\t138,\n\t219,\n\t70,\n\t113,\n\t240,\n\t202,\n\t83,\n\t175,\n\t123,\n\t65,\n\t20,\n\t170,\n\t91,\n\t248,\n\t62,\n\t70,\n\t135,\n\t205,\n\t71,\n\t43,\n\t235,\n\t88,\n\t202,\n\t193,\n\t159,\n\t142,\n\t28,\n\t62,\n\t249,\n\t17,\n\t123,\n\t97,\n\t221,\n\t78,\n\t239,\n\t194,\n\t171,\n\t77,\n\t66,\n\t231,\n\t250,\n\t226,\n\t88,\n\t241,\n\t217,\n\t201,\n\t115,\n\t202,\n\t30,\n\t228,\n\t131,\n\t13,\n\t213,\n\t188,\n\t115,\n\t85,\n\t207,\n\t129,\n\t222,\n\t168,\n\t130,\n\t242,\n\t225,\n\t219,\n\t74,\n\t132,\n\t34,\n\t239,\n\t28,\n\t215,\n\t219,\n\t42,\n\t175,\n\t139,\n\t159,\n\t200,\n\t122,\n\t240,\n\t135,\n\t126,\n\t217,\n\t55,\n\t147,\n\t36,\n\t189,\n\t141,\n\t93,\n\t176,\n\t105,\n\t132,\n\t207,\n\t218,\n\t84,\n\t5,\n\t60,\n\t86,\n\t174,\n\t251,\n\t225,\n\t55,\n\t35,\n\t131,\n\t201,\n\t125,\n\t144,\n\t214,\n\t79,\n\t223,\n\t109,\n\t127,\n\t211,\n\t254,\n\t246,\n\t199,\n\t53,\n\t192,\n\t107,\n\t154,\n\t56,\n\t3,\n\t182,\n\t240,\n\t93,\n\t181,\n\t154,\n\t213,\n\t182,\n\t34,\n\t32,\n\t230,\n\t37,\n\t208,\n\t187,\n\t51,\n\t191,\n\t12,\n\t67,\n\t47,\n\t69,\n\t127,\n\t12,\n\t139,\n\t92,\n\t242,\n\t153,\n\t41,\n\t109,\n\t247,\n\t96,\n\t70,\n\t32,\n\t183,\n\t138,\n\t34,\n\t216,\n\t232,\n\t74,\n\t18,\n\t87,\n\t19,\n\t241,\n\t251,\n\t199,\n\t9,\n\t223,\n\t208,\n\t135,\n\t176,\n\t111,\n\t192,\n\t69,\n\t137,\n\t226,\n\t125,\n\t49,\n\t249,\n\t68,\n\t4,\n\t36,\n\t24,\n\t16,\n\t57,\n\t188,\n\t121,\n\t153,\n\t226,\n\t136,\n\t67,\n\t223,\n\t26,\n\t134,\n\t152,\n\t138,\n\t33,\n\t29,\n\t133,\n\t12,\n\t71,\n\t64,\n\t218,\n\t246,\n\t2,\n\t228,\n\t93,\n\t153,\n\t178,\n\t253,\n\t153,\n\t201,\n\t117,\n\t240,\n\t171,\n\t166,\n\t135,\n\t225,\n\t196,\n\t100,\n\t186,\n\t122,\n\t207,\n\t232,\n\t247,\n\t228,\n\t194,\n\t253,\n\t205,\n\t54,\n\t212,\n\t193,\n\t168,\n\t84,\n\t100,\n\t44,\n\t144,\n\t64,\n\t232,\n\t16,\n\t172,\n\t103,\n\t221,\n\t125,\n\t11,\n\t90,\n\t71,\n\t243,\n\t152,\n\t39,\n\t255,\n\t93,\n\t97,\n\t118,\n\t246,\n\t77,\n\t102,\n\t69,\n\t50,\n\t40,\n\t223,\n\t8,\n\t15,\n\t13,\n\t162,\n\t254,\n\t44,\n\t107,\n\t145,\n\t69,\n\t13,\n\t71,\n\t181,\n\t79,\n\t175,\n\t33,\n\t226,\n\t173,\n\t60,\n\t88,\n\t49,\n\t59,\n\t37,\n\t182,\n\t195,\n\t137,\n\t232,\n\t248,\n\t186,\n\t212,\n\t76,\n\t71,\n\t218,\n\t39,\n\t181,\n\t235,\n\t241,\n\t149,\n\t123,\n\t250,\n\t46,\n\t226,\n\t83,\n\t94,\n\t221,\n\t88,\n\t18,\n\t255,\n\t27,\n\t15,\n\t49,\n\t45,\n\t235,\n\t205,\n\t207,\n\t185,\n\t43,\n\t8,\n\t55,\n\t70,\n\t159,\n\t190,\n\t237,\n\t43,\n\t112,\n\t27,\n\t189,\n\t1,\n\t181,\n\t217,\n\t110,\n\t67,\n\t134,\n\t220,\n\t173,\n\t192,\n\t134,\n\t218,\n\t144,\n\t219,\n\t195,\n\t118,\n\t222,\n\t85,\n\t230,\n\t237,\n\t45,\n\t216,\n\t159,\n\t162,\n\t151,\n\t152,\n\t8,\n\t65,\n\t135,\n\t63,\n\t134,\n\t122,\n\t138,\n\t201,\n\t39,\n\t133,\n\t241,\n\t59,\n\t246,\n\t247,\n\t189,\n\t153,\n\t54,\n\t45,\n\t122,\n\t120,\n\t219,\n\t228,\n\t47,\n\t177,\n\t92,\n\t70,\n\t72,\n\t213,\n\t105,\n\t125,\n\t39,\n\t45,\n\t32,\n\t83,\n\t19,\n\t71,\n\t86,\n\t195,\n\t246,\n\t222,\n\t244,\n\t139,\n\t171,\n\t31,\n\t52,\n\t93,\n\t214,\n\t43,\n\t63,\n\t238,\n\t40,\n\t49,\n\t3,\n\t10,\n\t156,\n\t243,\n\t206,\n\t220,\n\t33,\n\t47,\n\t142,\n\t101,\n\t179,\n\t15,\n\t61,\n\t31,\n\t98,\n\t41,\n\t88,\n\t221,\n\t116,\n\t177,\n\t113,\n\t209,\n\t150,\n\t16,\n\t236,\n\t123,\n\t210,\n\t130,\n\t118,\n\t147,\n\t249,\n\t168,\n\t211,\n\t105,\n\t83,\n\t206,\n\t28,\n\t77,\n\t143,\n\t154,\n\t138,\n\t171,\n\t48,\n\t169,\n\t31,\n\t23,\n\t103,\n\t215,\n\t154,\n\t208,\n\t166,\n\t213,\n\t71,\n\t4,\n\t110,\n\t56,\n\t100,\n\t20,\n\t221,\n\t203,\n\t0,\n\t181,\n\t93,\n\t159,\n\t73,\n\t185,\n\t234,\n\t227,\n\t181,\n\t58,\n\t122,\n\t206,\n\t171,\n\t42,\n\t85,\n\t139,\n\t90,\n\t24,\n\t55,\n\t179,\n\t240,\n\t125,\n\t11,\n\t216,\n\t62,\n\t161,\n\t60,\n\t169,\n\t233,\n\t27,\n\t72,\n\t149,\n\t212,\n\t121,\n\t212,\n\t227,\n\t164,\n\t63,\n\t159,\n\t250,\n\t157,\n\t44,\n\t186,\n\t138,\n\t213,\n\t21,\n\t61,\n\t195,\n\t13,\n\t58,\n\t158,\n\t12,\n\t254,\n\t16,\n\t221,\n\t40,\n\t236,\n\t247,\n\t184,\n\t174,\n\t172,\n\t173,\n\t183,\n\t113,\n\t58,\n\t183,\n\t54,\n\t112,\n\t152,\n\t43,\n\t213,\n\t40,\n\t52,\n\t218,\n\t128,\n\t113,\n\t197,\n\t41,\n\t50,\n\t233,\n\t94,\n\t201,\n\t104,\n\t111,\n\t179,\n\t136,\n\t220,\n\t37,\n\t126,\n\t169,\n\t227,\n\t158,\n\t248,\n\t118,\n\t254,\n\t234,\n\t181,\n\t148,\n\t167,\n\t219,\n\t167,\n\t234,\n\t169,\n\t194,\n\t175,\n\t195,\n\t255,\n\t147,\n\t136,\n\t230,\n\t9,\n\t5,\n\t151,\n\t144,\n\t158,\n\t140,\n\t161,\n\t177,\n\t125,\n\t205,\n\t152,\n\t84,\n\t151,\n\t198,\n\t169,\n\t206,\n\t4,\n\t211,\n\t30,\n\t94,\n\t244,\n\t241,\n\t202,\n\t218,\n\t233,\n\t27,\n\t28,\n\t210,\n\t59,\n\t253,\n\t22,\n\t85,\n\t232,\n\t179,\n\t94,\n\t235,\n\t150,\n\t169,\n\t109,\n\t49,\n\t163,\n\t160,\n\t38,\n\t144,\n\t150,\n\t205,\n\t45,\n\t196,\n\t243,\n\t219,\n\t153,\n\t6,\n\t194,\n\t66,\n\t127,\n\t191,\n\t186,\n\t144,\n\t168,\n\t93,\n\t22,\n\t114,\n\t247,\n\t44,\n\t232,\n\t173,\n\t98,\n\t111,\n\t103,\n\t66,\n\t150,\n\t113,\n\t181,\n\t229,\n\t7,\n\t21,\n\t63,\n\t119,\n\t146,\n\t56,\n\t17,\n\t21,\n\t19,\n\t196,\n\t203,\n\t149,\n\t90,\n\t20,\n\t140,\n\t152,\n\t94,\n\t187,\n\t236,\n\t179,\n\t77,\n\t236,\n\t217,\n\t203,\n\t194,\n\t201,\n\t138,\n\t107,\n\t5,\n\t228,\n\t10,\n\t6,\n\t235,\n\t165,\n\t201,\n\t110,\n\t58,\n\t93,\n\t22,\n\t10,\n\t20,\n\t117,\n\t170,\n\t27,\n\t82,\n\t175,\n\t17,\n\t151,\n\t30,\n\t237,\n\t185,\n\t213,\n\t209,\n\t8,\n\t181,\n\t136,\n\t88,\n\t95,\n\t123,\n\t39,\n\t190,\n\t125,\n\t96,\n\t75,\n\t107,\n\t151,\n\t187,\n\t55,\n\t83,\n\t196,\n\t34,\n\t99,\n\t102,\n\t216,\n\t236,\n\t138,\n\t157,\n\t34,\n\t79,\n\t107,\n\t3,\n\t11,\n\t74,\n\t140,\n\t75,\n\t176,\n\t100,\n\t246,\n\t203,\n\t182,\n\t55,\n\t37,\n\t227,\n\t20,\n\t174,\n\t127,\n\t127,\n\t150,\n\t104,\n\t91,\n\t10,\n\t31,\n\t131,\n\t112,\n\t237,\n\t79,\n\t40,\n\t218,\n\t22,\n\t171,\n\t41,\n\t156,\n\t227,\n\t147,\n\t74,\n\t31,\n\t49,\n\t43,\n\t240,\n\t138,\n\t80,\n\t84,\n\t185,\n\t238,\n\t11,\n\t149,\n\t18,\n\t76,\n\t61,\n\t198,\n\t132,\n\t46,\n\t68,\n\t44,\n\t48,\n\t16,\n\t239,\n\t75,\n\t187,\n\t220,\n\t246,\n\t189,\n\t140,\n\t82,\n\t107,\n\t211,\n\t69,\n\t87,\n\t192,\n\t239,\n\t75,\n\t27,\n\t246,\n\t11,\n\t133,\n\t152,\n\t45,\n\t129,\n\t124,\n\t54,\n\t183,\n\t56,\n\t15,\n\t53,\n\t164,\n\t204,\n\t219,\n\t36,\n\t243,\n\t82,\n\t73,\n\t58,\n\t86,\n\t127,\n\t45,\n\t130,\n\t107,\n\t24,\n\t42,\n\t35,\n\t224,\n\t201,\n\t153,\n\t166,\n\t119,\n\t247,\n\t1,\n\t121,\n\t179,\n\t197,\n\t62,\n\t43,\n\t182,\n\t95,\n\t99,\n\t178,\n\t169,\n\t99,\n\t19,\n\t39,\n\t157,\n\t207,\n\t142,\n\t188,\n\t72,\n\t98,\n\t157,\n\t6,\n\t36,\n\t51,\n\t203,\n\t63,\n\t234,\n\t88,\n\t161,\n\t33,\n\t22,\n\t14,\n\t57,\n\t101,\n\t204,\n\t229,\n\t101,\n\t157,\n\t202,\n\t24,\n\t189,\n\t229,\n\t234,\n\t201,\n\t254,\n\t221,\n\t52,\n\t218,\n\t223,\n\t51,\n\t21,\n\t50,\n\t19,\n\t218,\n\t214,\n\t134,\n\t198,\n\t167,\n\t252,\n\t254,\n\t126,\n\t246,\n\t52,\n\t65,\n\t116,\n\t235,\n\t37,\n\t55,\n\t245,\n\t92,\n\t4,\n\t247,\n\t18,\n\t212,\n\t29,\n\t81,\n\t246,\n\t24,\n\t150,\n\t101,\n\t153,\n\t202,\n\t243,\n\t217,\n\t255,\n\t170,\n\t214,\n\t193,\n\t78,\n\t212,\n\t57,\n\t7,\n\t162,\n\t238,\n\t149,\n\t68,\n\t210,\n\t139,\n\t32,\n\t55,\n\t222,\n\t8,\n\t203,\n\t228,\n\t245,\n\t250,\n\t137,\n\t132,\n\t235,\n\t62,\n\t17,\n\t135,\n\t99,\n\t182,\n\t208,\n\t88,\n\t224,\n\t5,\n\t226,\n\t182,\n\t203,\n\t89,\n\t156,\n\t160,\n\t88,\n\t140,\n\t12,\n\t226,\n\t111,\n\t185,\n\t147,\n\t231,\n\t228,\n\t202,\n\t50,\n\t245,\n\t249,\n\t133,\n\t31,\n\t124,\n\t50,\n\t124,\n\t171,\n\t231,\n\t227,\n\t228,\n\t240,\n\t124,\n\t187,\n\t237,\n\t254,\n\t81,\n\t211,\n\t77,\n\t89,\n\t239,\n\t174,\n\t218,\n\t20,\n\t89,\n\t16,\n\t98,\n\t65,\n\t120,\n\t98,\n\t52,\n\t207,\n\t39,\n\t19,\n\t166,\n\t104,\n\t89,\n\t235,\n\t177,\n\t253,\n\t157,\n\t27,\n\t218,\n\t233,\n\t209,\n\t113,\n\t213,\n\t51,\n\t116,\n\t58,\n\t102,\n\t47,\n\t176,\n\t128,\n\t129,\n\t221,\n\t83,\n\t161,\n\t21,\n\t240,\n\t130,\n\t97,\n\t211,\n\t100,\n\t232,\n\t34,\n\t26,\n\t213,\n\t83,\n\t251,\n\t26,\n\t245,\n\t64,\n\t127,\n\t78,\n\t109,\n\t230,\n\t209,\n\t77,\n\t62,\n\t13,\n\t204,\n\t191,\n\t151,\n\t74,\n\t146,\n\t238,\n\t185,\n\t106,\n\t122,\n\t216,\n\t106,\n\t144,\n\t188,\n\t149,\n\t83,\n\t62,\n\t134,\n\t78,\n\t120,\n\t144,\n\t155,\n\t234,\n\t2,\n\t48,\n\t119,\n\t213,\n\t199,\n\t49,\n\t251,\n\t80,\n\t248,\n\t167,\n\t52,\n\t240,\n\t130,\n\t138,\n\t116,\n\t164,\n\t0,\n\t53,\n\t34,\n\t117,\n\t107,\n\t104,\n\t47,\n\t123,\n\t114,\n\t93,\n\t70,\n\t19,\n\t180,\n\t250,\n\t211,\n\t98,\n\t99,\n\t53,\n\t128,\n\t101,\n\t247,\n\t123,\n\t138,\n\t202,\n\t30,\n\t6,\n\t238,\n\t187,\n\t91,\n\t188,\n\t110,\n\t43,\n\t197,\n\t151,\n\t238,\n\t120,\n\t73,\n\t81,\n\t25,\n\t93,\n\t247,\n\t194,\n\t39,\n\t111,\n\t75,\n\t127,\n\t117,\n\t99,\n\t146,\n\t106,\n\t239,\n\t228,\n\t14,\n\t245,\n\t120,\n\t12,\n\t154,\n\t63,\n\t112,\n\t137,\n\t176,\n\t244,\n\t3,\n\t182,\n\t26,\n\t250,\n\t180,\n\t23,\n\t105,\n\t244,\n\t51,\n\t188,\n\t136,\n\t100,\n\t162,\n\t252,\n\t106,\n\t99,\n\t27,\n\t141,\n\t137,\n\t93,\n\t250,\n\t161,\n\t101,\n\t179,\n\t184,\n\t106,\n\t240,\n\t7,\n\t47,\n\t171,\n\t222,\n\t202,\n\t216,\n\t250,\n\t194,\n\t106,\n\t137,\n\t174,\n\t82,\n\t39,\n\t172,\n\t187,\n\t186,\n\t141,\n\t106,\n\t113,\n\t174,\n\t164,\n\t73,\n\t122,\n\t39,\n\t248,\n\t158,\n\t155,\n\t201,\n\t114,\n\t175,\n\t243,\n\t76,\n\t158,\n\t196,\n\t235,\n\t234,\n\t142,\n\t53,\n\t60,\n\t237,\n\t50,\n\t133,\n\t8,\n\t119,\n\t132,\n\t241,\n\t77,\n\t211,\n\t2,\n\t79,\n\t237,\n\t47,\n\t55,\n\t210,\n\t55,\n\t189,\n\t137,\n\t48,\n\t75,\n\t205,\n\t67,\n\t96,\n\t96,\n\t127,\n\t160,\n\t81,\n\t154,\n\t81,\n\t58,\n\t141,\n\t235,\n\t55,\n\t106,\n\t160,\n\t8,\n\t143,\n\t186,\n\t25,\n\t236,\n\t41,\n\t95,\n\t204,\n\t60,\n\t8,\n\t127,\n\t171,\n\t163,\n\t164,\n\t43,\n\t90,\n\t36,\n\t173,\n\t170,\n\t103,\n\t12,\n\t205,\n\t86,\n\t183,\n\t188,\n\t71,\n\t165,\n\t251,\n\t127,\n\t221,\n\t15,\n\t19,\n\t41,\n\t210,\n\t176,\n\t239,\n\t213,\n\t14,\n\t176,\n\t76,\n\t196,\n\t183,\n\t43,\n\t174,\n\t51,\n\t77,\n\t62,\n\t145,\n\t91,\n\t50,\n\t181,\n\t203,\n\t174,\n\t55,\n\t138,\n\t109,\n\t185,\n\t37,\n\t174,\n\t215,\n\t217,\n\t227,\n\t194,\n\t87,\n\t105,\n\t147,\n\t179,\n\t7,\n\t127,\n\t226,\n\t59,\n\t33,\n\t100,\n\t250,\n\t56,\n\t108,\n\t185,\n\t222,\n\t174,\n\t162,\n\t40,\n\t178,\n\t175,\n\t225,\n\t203,\n\t102,\n\t202,\n\t80,\n\t9,\n\t149,\n\t159,\n\t217,\n\t248,\n\t162,\n\t233,\n\t245,\n\t249,\n\t173,\n\t3,\n\t33,\n\t158,\n\t122,\n\t82,\n\t21,\n\t112,\n\t153,\n\t145,\n\t221,\n\t80,\n\t218,\n\t75,\n\t107,\n\t200,\n\t38,\n\t62,\n\t252,\n\t82,\n\t213,\n\t227,\n\t111,\n\t8,\n\t93,\n\t83,\n\t211,\n\t10,\n\t53,\n\t192,\n\t163,\n\t221,\n\t8,\n\t152,\n\t180,\n\t168,\n\t234,\n\t214,\n\t207,\n\t186,\n\t24,\n\t69,\n\t60,\n\t224,\n\t78,\n\t217,\n\t51,\n\t19,\n\t54,\n\t103,\n\t223,\n\t79,\n\t23,\n\t72,\n\t188,\n\t20,\n\t162,\n\t14,\n\t14,\n\t88,\n\t98,\n\t137,\n\t204,\n\t41,\n\t255,\n\t220,\n\t87,\n\t197,\n\t246,\n\t32,\n\t55,\n\t217,\n\t214,\n\t71,\n\t74,\n\t253,\n\t244,\n\t165,\n\t16,\n\t140,\n\t220,\n\t160,\n\t88,\n\t245,\n\t102,\n\t104,\n\t70,\n\t27,\n\t93,\n\t43,\n\t240,\n\t161,\n\t30,\n\t78,\n\t131,\n\t17,\n\t0,\n\t108,\n\t125,\n\t94,\n\t173,\n\t55,\n\t106,\n\t53,\n\t10,\n\t125,\n\t38,\n\t46,\n\t211,\n\t193,\n\t126,\n\t121,\n\t18,\n\t250,\n\t172,\n\t181,\n\t47,\n\t108,\n\t95,\n\t21,\n\t239,\n\t83,\n\t64,\n\t251,\n\t67,\n\t19,\n\t80,\n\t94,\n\t227,\n\t132,\n\t83,\n\t151,\n\t205,\n\t132,\n\t246,\n\t19,\n\t211,\n\t218,\n\t180,\n\t182,\n\t251,\n\t221,\n\t203,\n\t21,\n\t188,\n\t225,\n\t65,\n\t3,\n\t183,\n\t11,\n\t248,\n\t67,\n\t218,\n\t52,\n\t69,\n\t31,\n\t112,\n\t86,\n\t89,\n\t182,\n\t172,\n\t1,\n\t251,\n\t140,\n\t133,\n\t18,\n\t69,\n\t113,\n\t58,\n\t226,\n\t239,\n\t119,\n\t132,\n\t243,\n\t126,\n\t114,\n\t211,\n\t94,\n\t172,\n\t219,\n\t96,\n\t227,\n\t160,\n\t82,\n\t124,\n\t235,\n\t101,\n\t175,\n\t46,\n\t62,\n\t189,\n\t126,\n\t237,\n\t147,\n\t129,\n\t33,\n\t119,\n\t68,\n\t120,\n\t154,\n\t244,\n\t62,\n\t67,\n\t74,\n\t43,\n\t101,\n\t64,\n\t5,\n\t216,\n\t10,\n\t118,\n\t221,\n\t170,\n\t51,\n\t228,\n\t71,\n\t111,\n\t59,\n\t46,\n\t30,\n\t157,\n\t8,\n\t112,\n\t218,\n\t166,\n\t139,\n\t62,\n\t120,\n\t80,\n\t239,\n\t113,\n\t147,\n\t207,\n\t217,\n\t231,\n\t79,\n\t153,\n\t49,\n\t113,\n\t206,\n\t114,\n\t68,\n\t252,\n\t64,\n\t75,\n\t161,\n\t4,\n\t52,\n\t66,\n\t105,\n\t253,\n\t18,\n\t70,\n\t78,\n\t200,\n\t153,\n\t135,\n\t196,\n\t198,\n\t239,\n\t41,\n\t134,\n\t252,\n\t163,\n\t109,\n\t89,\n\t30,\n\t107,\n\t249,\n\t96,\n\t186,\n\t160,\n\t176,\n\t67,\n\t228,\n\t246,\n\t5,\n\t153,\n\t193,\n\t132,\n\t24,\n\t247,\n\t2,\n\t234,\n\t25,\n\t123,\n\t154,\n\t199,\n\t255,\n\t16,\n\t149,\n\t94,\n\t106,\n\t13,\n\t163,\n\t219,\n\t171,\n\t218,\n\t75,\n\t61,\n\t61,\n\t114,\n\t167,\n\t236,\n\t206,\n\t88,\n\t169,\n\t171,\n\t104,\n\t76,\n\t181,\n\t57,\n\t66,\n\t72,\n\t239,\n\t55,\n\t68,\n\t112,\n\t73,\n\t175,\n\t6,\n\t150,\n\t221,\n\t192,\n\t186,\n\t195,\n\t10,\n\t1,\n\t27,\n\t219,\n\t21,\n\t252,\n\t75,\n\t249,\n\t241,\n\t102,\n\t8,\n\t202,\n\t225,\n\t180,\n\t98,\n\t250,\n\t150,\n\t206,\n\t153,\n\t184,\n\t124,\n\t108,\n\t71,\n\t168,\n\t62,\n\t245,\n\t63,\n\t47,\n\t217,\n\t221,\n\t199,\n\t217,\n\t39,\n\t182,\n\t80,\n\t192,\n\t45,\n\t183,\n\t64,\n\t190,\n\t157,\n\t14,\n\t241,\n\t144,\n\t183,\n\t205,\n\t37,\n\t39,\n\t22,\n\t14,\n\t28,\n\t120,\n\t251,\n\t48,\n\t238,\n\t60,\n\t94,\n\t193,\n\t107,\n\t203,\n\t236,\n\t116,\n\t82,\n\t4,\n\t181,\n\t39,\n\t232,\n\t158,\n\t239,\n\t76,\n\t127,\n\t110,\n\t149,\n\t222,\n\t77,\n\t239,\n\t162,\n\t69,\n\t62,\n\t0,\n\t66,\n\t117,\n\t113,\n\t133,\n\t219,\n\t109,\n\t104,\n\t16,\n\t153,\n\t62,\n\t249,\n\t119,\n\t209,\n\t193,\n\t122,\n\t101,\n\t45,\n\t44,\n\t171,\n\t84,\n\t238,\n\t199,\n\t21,\n\t96,\n\t68,\n\t179,\n\t223,\n\t103,\n\t77,\n\t172,\n\t202,\n\t189,\n\t229,\n\t183,\n\t30,\n\t150,\n\t195,\n\t225,\n\t209,\n\t255,\n\t98,\n\t103,\n\t64,\n\t151,\n\t233,\n\t112,\n\t109,\n\t43,\n\t124,\n\t5,\n\t5,\n\t178,\n\t76,\n\t110,\n\t227,\n\t2,\n\t192,\n\t2,\n\t35,\n\t182,\n\t207,\n\t61,\n\t69,\n\t61,\n\t132,\n\t143,\n\t87,\n\t80,\n\t117,\n\t170,\n\t64,\n\t235,\n\t158,\n\t204,\n\t124,\n\t212,\n\t142,\n\t124,\n\t121,\n\t66,\n\t171,\n\t58,\n\t79,\n\t90,\n\t141,\n\t29,\n\t244,\n\t211,\n\t30,\n\t87,\n\t131,\n\t182,\n\t106,\n\t138,\n\t237,\n\t249,\n\t64,\n\t245,\n\t173,\n\t32,\n\t207,\n\t105,\n\t242,\n\t112,\n\t138,\n\t115,\n\t212,\n\t81,\n\t193,\n\t185,\n\t108,\n\t74,\n\t54,\n\t213,\n\t30,\n\t77,\n\t218,\n\t143,\n\t219,\n\t209,\n\t91,\n\t222,\n\t219,\n\t254,\n\t182,\n\t94,\n\t73,\n\t200,\n\t26,\n\t151,\n\t161,\n\t31,\n\t175,\n\t10,\n\t199,\n\t115,\n\t103,\n\t6,\n\t84,\n\t133,\n\t254,\n\t139,\n\t187,\n\t198,\n\t239,\n\t144,\n\t31,\n\t114,\n\t64,\n\t254,\n\t49,\n\t236,\n\t97,\n\t158,\n\t128,\n\t29,\n\t50,\n\t155,\n\t66,\n\t233,\n\t151,\n\t77,\n\t208,\n\t237,\n\t239,\n\t130,\n\t209,\n\t192,\n\t236,\n\t155,\n\t209,\n\t146,\n\t13,\n\t234,\n\t66,\n\t14,\n\t56,\n\t187,\n\t157,\n\t75,\n\t37,\n\t47,\n\t38,\n\t50,\n\t150,\n\t227,\n\t223,\n\t188,\n\t188,\n\t138,\n\t104,\n\t52,\n\t151,\n\t227,\n\t26,\n\t81,\n\t250,\n\t117,\n\t88,\n\t66,\n\t52,\n\t16,\n\t159,\n\t145,\n\t124,\n\t41,\n\t182,\n\t53,\n\t129,\n\t178,\n\t21,\n\t46,\n\t34,\n\t181,\n\t39,\n\t121,\n\t150,\n\t247,\n\t76,\n\t211,\n\t201,\n\t29,\n\t91,\n\t168,\n\t10,\n\t87,\n\t216,\n\t25,\n\t86,\n\t135,\n\t178,\n\t134,\n\t240,\n\t176,\n\t24,\n\t247,\n\t244,\n\t189,\n\t157,\n\t96,\n\t180,\n\t93,\n\t120,\n\t125,\n\t165,\n\t150,\n\t104,\n\t235,\n\t27,\n\t162,\n\t175,\n\t93,\n\t147,\n\t227,\n\t122,\n\t228,\n\t104,\n\t103,\n\t208,\n\t178,\n\t198,\n\t208,\n\t200,\n\t139,\n\t37,\n\t3,\n\t187,\n\t137,\n\t157,\n\t33,\n\t206,\n\t87,\n\t109,\n\t141,\n\t134,\n\t83,\n\t109,\n\t82,\n\t141,\n\t28,\n\t207,\n\t19,\n\t192,\n\t177,\n\t120,\n\t97,\n\t242,\n\t210,\n\t16,\n\t97,\n\t164,\n\t204,\n\t226,\n\t95,\n\t242,\n\t2,\n\t86,\n\t101,\n\t201,\n\t212,\n\t220,\n\t94,\n\t25,\n\t70,\n\t219,\n\t97,\n\t172,\n\t254,\n\t125,\n\t193,\n\t196,\n\t160,\n\t93,\n\t255,\n\t118,\n\t99,\n\t99,\n\t8,\n\t55,\n\t53,\n\t165,\n\t46,\n\t173,\n\t85,\n\t225,\n\t52,\n\t31,\n\t154,\n\t125,\n\t89,\n\t197,\n\t124,\n\t218,\n\t253,\n\t77,\n\t176,\n\t189,\n\t146,\n\t195,\n\t93,\n\t191,\n\t10,\n\t77,\n\t125,\n\t225,\n\t218,\n\t159,\n\t34,\n\t124,\n\t51,\n\t161,\n\t171,\n\t33,\n\t87,\n\t203,\n\t149,\n\t128,\n\t15,\n\t191,\n\t66,\n\t11,\n\t123,\n\t135,\n\t103,\n\t209,\n\t159,\n\t129,\n\t37,\n\t38,\n\t201,\n\t144,\n\t222,\n\t222,\n\t101,\n\t143,\n\t220,\n\t235,\n\t238,\n\t173,\n\t180,\n\t54,\n\t28,\n\t32,\n\t55,\n\t148,\n\t40,\n\t128,\n\t215,\n\t169,\n\t68,\n\t132,\n\t227,\n\t101,\n\t221,\n\t135,\n\t153,\n\t209,\n\t110,\n\t230,\n\t142,\n\t110,\n\t140,\n\t227,\n\t134,\n\t221,\n\t7,\n\t39,\n\t145,\n\t245,\n\t123,\n\t231,\n\t166,\n\t248,\n\t210,\n\t98,\n\t255,\n\t239,\n\t36,\n\t66,\n\t92,\n\t163,\n\t9,\n\t178,\n\t105,\n\t61,\n\t201,\n\t48,\n\t78,\n\t22,\n\t94,\n\t32,\n\t95,\n\t127,\n\t187,\n\t185,\n\t107,\n\t84,\n\t130,\n\t141,\n\t120,\n\t146,\n\t194,\n\t55,\n\t244,\n\t233,\n\t60,\n\t7,\n\t151,\n\t198,\n\t247,\n\t119,\n\t215,\n\t240,\n\t148,\n\t13,\n\t97,\n\t202,\n\t244,\n\t203,\n\t143,\n\t213,\n\t93,\n\t83,\n\t38,\n\t9,\n\t224,\n\t206,\n\t46,\n\t21,\n\t210,\n\t172,\n\t210,\n\t221,\n\t37,\n\t183,\n\t67,\n\t46,\n\t84,\n\t136,\n\t97,\n\t234,\n\t131,\n\t77,\n\t176,\n\t65,\n\t174,\n\t109,\n\t176,\n\t73,\n\t125,\n\t179,\n\t245,\n\t253,\n\t156,\n\t211,\n\t40,\n\t178,\n\t2,\n\t229,\n\t82,\n\t6,\n\t82,\n\t124,\n\t32,\n\t99,\n\t212,\n\t56,\n\t178,\n\t164,\n\t183,\n\t225,\n\t175,\n\t223,\n\t235,\n\t210,\n\t116,\n\t116,\n\t93,\n\t141,\n\t173,\n\t154,\n\t16,\n\t206,\n\t113,\n\t68,\n\t184,\n\t19,\n\t183,\n\t42,\n\t107,\n\t129,\n\t9,\n\t6,\n\t28,\n\t234,\n\t190,\n\t150,\n\t217,\n\t107,\n\t126,\n\t80,\n\t228,\n\t140,\n\t249,\n\t18,\n\t169,\n\t161,\n\t98,\n\t35,\n\t134,\n\t12,\n\t6,\n\t36,\n\t235,\n\t78,\n\t147,\n\t191,\n\t190,\n\t62,\n\t40,\n\t103,\n\t207,\n\t140,\n\t165,\n\t110,\n\t63,\n\t94,\n\t107,\n\t35,\n\t56,\n\t22,\n\t208,\n\t142,\n\t255,\n\t158,\n\t35,\n\t174,\n\t245,\n\t233,\n\t127,\n\t178,\n\t125,\n\t155,\n\t71,\n\t39,\n\t180,\n\t129,\n\t95,\n\t134,\n\t173,\n\t227,\n\t195,\n\t68,\n\t51,\n\t7,\n\t143,\n\t3,\n\t181,\n\t148,\n\t71,\n\t94,\n\t92,\n\t127,\n\t13,\n\t249,\n\t68,\n\t206,\n\t220,\n\t138,\n\t13,\n\t215,\n\t201,\n\t41,\n\t35,\n\t123,\n\t79,\n\t199,\n\t63,\n\t159,\n\t99,\n\t233,\n\t246,\n\t48,\n\t99,\n\t18,\n\t24,\n\t81,\n\t192,\n\t199,\n\t255,\n\t55,\n\t180,\n\t167,\n\t137,\n\t58,\n\t95,\n\t182,\n\t139,\n\t231,\n\t245,\n\t59,\n\t219,\n\t250,\n\t21,\n\t241,\n\t3,\n\t5,\n\t186,\n\t171,\n\t195,\n\t233,\n\t105,\n\t51,\n\t192,\n\t39,\n\t106,\n\t254,\n\t243,\n\t28,\n\t218,\n\t251,\n\t132,\n\t78,\n\t252,\n\t157,\n\t117,\n\t45,\n\t60,\n\t218,\n\t29,\n\t49,\n\t176,\n\t167,\n\t33,\n\t53,\n\t128,\n\t236,\n\t198,\n\t191,\n\t32,\n\t121,\n\t89,\n\t231,\n\t65,\n\t125,\n\t133,\n\t104,\n\t30,\n\t255,\n\t12,\n\t206,\n\t189,\n\t38,\n\t237,\n\t168,\n\t85,\n\t69,\n\t182,\n\t68,\n\t188,\n\t57,\n\t253,\n\t167,\n\t178,\n\t200,\n\t217,\n\t193,\n\t180,\n\t133,\n\t117,\n\t79,\n\t149,\n\t59,\n\t204,\n\t250,\n\t180,\n\t33,\n\t28,\n\t245,\n\t64,\n\t61,\n\t0,\n\t44,\n\t83,\n\t231,\n\t50,\n\t20,\n\t121,\n\t42,\n\t228,\n\t4,\n\t31,\n\t239,\n\t214,\n\t74,\n\t206,\n\t166,\n\t110,\n\t219,\n\t84,\n\t202,\n\t198,\n\t196,\n\t66,\n\t159,\n\t35,\n\t162,\n\t220,\n\t158,\n\t144,\n\t120,\n\t15,\n\t198,\n\t239,\n\t159,\n\t104,\n\t67,\n\t40,\n\t106,\n\t138,\n\t172,\n\t150,\n\t149,\n\t0,\n\t155,\n\t131,\n\t104,\n\t17,\n\t24,\n\t220,\n\t94,\n\t222,\n\t95,\n\t42,\n\t167,\n\t21,\n\t105,\n\t78,\n\t160,\n\t85,\n\t127,\n\t241,\n\t146,\n\t236,\n\t165,\n\t152,\n\t153,\n\t119,\n\t186,\n\t43,\n\t92,\n\t184,\n\t93,\n\t226,\n\t104,\n\t71,\n\t66,\n\t6,\n\t238,\n\t41,\n\t177,\n\t227,\n\t37,\n\t101,\n\t51,\n\t174,\n\t121,\n\t180,\n\t15,\n\t28,\n\t63,\n\t44,\n\t146,\n\t243,\n\t92,\n\t41,\n\t33,\n\t238,\n\t201,\n\t76,\n\t196,\n\t170,\n\t60,\n\t187,\n\t22,\n\t72,\n\t89,\n\t151,\n\t221,\n\t40,\n\t121,\n\t95,\n\t35,\n\t187,\n\t163,\n\t220,\n\t179,\n\t250,\n\t1,\n\t16,\n\t46,\n\t89,\n\t209,\n\t123,\n\t102,\n\t102,\n\t123,\n\t117,\n\t163,\n\t138,\n\t168,\n\t161,\n\t155,\n\t207,\n\t146,\n\t241,\n\t58,\n\t8,\n\t19,\n\t129,\n\t45,\n\t253,\n\t160,\n\t72,\n\t168,\n\t98,\n\t106,\n\t234,\n\t144,\n\t39,\n\t148,\n\t14,\n\t246,\n\t241,\n\t144,\n\t22,\n\t10,\n\t120,\n\t120,\n\t92,\n\t46,\n\t99,\n\t13,\n\t241,\n\t211,\n\t5,\n\t211,\n\t86,\n\t76,\n\t111,\n\t125,\n\t136,\n\t164,\n\t191,\n\t220,\n\t31,\n\t196,\n\t123,\n\t84,\n\t116,\n\t18,\n\t35,\n\t146,\n\t52,\n\t97,\n\t242,\n\t245,\n\t226,\n\t15,\n\t93,\n\t236,\n\t255,\n\t250,\n\t114,\n\t48,\n\t117,\n\t37,\n\t117,\n\t241,\n\t110,\n\t140,\n\t196,\n\t13,\n\t187,\n\t43,\n\t61,\n\t217,\n\t139,\n\t242,\n\t152,\n\t123,\n\t65,\n\t109,\n\t116,\n\t142,\n\t42,\n\t62,\n\t191,\n\t182,\n\t44,\n\t168,\n\t114,\n\t144,\n\t235,\n\t26,\n\t193,\n\t108,\n\t229,\n\t109,\n\t197,\n\t77,\n\t63,\n\t156,\n\t87,\n\t243,\n\t80,\n\t102,\n\t112,\n\t32,\n\t18,\n\t240,\n\t201,\n\t75,\n\t224,\n\t227,\n\t216,\n\t162,\n\t251,\n\t158,\n\t39,\n\t191,\n\t209,\n\t114,\n\t16,\n\t32,\n\t105,\n\t81,\n\t25,\n\t208,\n\t43,\n\t131,\n\t177,\n\t232,\n\t222,\n\t229,\n\t195,\n\t151,\n\t236,\n\t141,\n\t215,\n\t121,\n\t151,\n\t253,\n\t146,\n\t192,\n\t23,\n\t0,\n\t28,\n\t194,\n\t104,\n\t202,\n\t51,\n\t181,\n\t62,\n\t39,\n\t242,\n\t123,\n\t103,\n\t90,\n\t129,\n\t163,\n\t176,\n\t9,\n\t83,\n\t42,\n\t116,\n\t149,\n\t128,\n\t163,\n\t190,\n\t233,\n\t188,\n\t23,\n\t180,\n\t205,\n\t210,\n\t92,\n\t77,\n\t107,\n\t185,\n\t125,\n\t220,\n\t207,\n\t53,\n\t245,\n\t118,\n\t167,\n\t90,\n\t92,\n\t239,\n\t242,\n\t74,\n\t67,\n\t204,\n\t225,\n\t42,\n\t76,\n\t44,\n\t56,\n\t66,\n\t212,\n\t14,\n\t21,\n\t242,\n\t128,\n\t242,\n\t121,\n\t161,\n\t31,\n\t21,\n\t166,\n\t77,\n\t165,\n\t176,\n\t39,\n\t167,\n\t220,\n\t61,\n\t208,\n\t57,\n\t10,\n\t118,\n\t205,\n\t218,\n\t210,\n\t100,\n\t120,\n\t213,\n\t6,\n\t203,\n\t67,\n\t23,\n\t252,\n\t22,\n\t59,\n\t223,\n\t43,\n\t174,\n\t68,\n\t58,\n\t255,\n\t188,\n\t237,\n\t252,\n\t58,\n\t226,\n\t167,\n\t179,\n\t135,\n\t34,\n\t232,\n\t53,\n\t150,\n\t137,\n\t141,\n\t118,\n\t100,\n\t90,\n\t29,\n\t26,\n\t227,\n\t154,\n\t167,\n\t168,\n\t118,\n\t125,\n\t182,\n\t177,\n\t235,\n\t16,\n\t64,\n\t248,\n\t51,\n\t138,\n\t99,\n\t206,\n\t50,\n\t160,\n\t186,\n\t209,\n\t174,\n\t126,\n\t139,\n\t245,\n\t24,\n\t135,\n\t157,\n\t110,\n\t102,\n\t111,\n\t162,\n\t141,\n\t105,\n\t36,\n\t104,\n\t141,\n\t177,\n\t142,\n\t176,\n\t78,\n\t219,\n\t158,\n\t124,\n\t13,\n\t147,\n\t89,\n\t50,\n\t43,\n\t131,\n\t66,\n\t86,\n\t149,\n\t2,\n\t240,\n\t114,\n\t219,\n\t2,\n\t231,\n\t253,\n\t180,\n\t119,\n\t22,\n\t179,\n\t115,\n\t126,\n\t115,\n\t191,\n\t246,\n\t128,\n\t243,\n\t181,\n\t138,\n\t177,\n\t102,\n\t186,\n\t251,\n\t36,\n\t194,\n\t33,\n\t170,\n\t106,\n\t232,\n\t114,\n\t22,\n\t234,\n\t153,\n\t9,\n\t202,\n\t163,\n\t12,\n\t86,\n\t219,\n\t214,\n\t233,\n\t169,\n\t54,\n\t137,\n\t187,\n\t185,\n\t22,\n\t213,\n\t90,\n\t45,\n\t11,\n\t189,\n\t144,\n\t145,\n\t133,\n\t252,\n\t58,\n\t128,\n\t195,\n\t116,\n\t192,\n\t240,\n\t87,\n\t89,\n\t9,\n\t70,\n\t77,\n\t230,\n\t185,\n\t248,\n\t9,\n\t7,\n\t55,\n\t254,\n\t139,\n\t1,\n\t81,\n\t39,\n\t181,\n\t214,\n\t67,\n\t3,\n\t185,\n\t186,\n\t53,\n\t96,\n\t150,\n\t1,\n\t96,\n\t30,\n\t220,\n\t156,\n\t90,\n\t35,\n\t11,\n\t199,\n\t147,\n\t126,\n\t233,\n\t117,\n\t62,\n\t78,\n\t233,\n\t75,\n\t105,\n\t181,\n\t163,\n\t59,\n\t58,\n\t26,\n\t163,\n\t77,\n\t223,\n\t158,\n\t37,\n\t22,\n\t211,\n\t27,\n\t200,\n\t36,\n\t211,\n\t219,\n\t147,\n\t176,\n\t144,\n\t148,\n\t86,\n\t93,\n\t253,\n\t16,\n\t142,\n\t62,\n\t248,\n\t16,\n\t108,\n\t184,\n\t225,\n\t228,\n\t132,\n\t196,\n\t240,\n\t213,\n\t73,\n\t120,\n\t171,\n\t119,\n\t28,\n\t106,\n\t250,\n\t37,\n\t57,\n\t197,\n\t116,\n\t140,\n\t220,\n\t84,\n\t233,\n\t68,\n\t183,\n\t10,\n\t155,\n\t32,\n\t133,\n\t244,\n\t32,\n\t206,\n\t236,\n\t104,\n\t47,\n\t184,\n\t55,\n\t157,\n\t56,\n\t236,\n\t196,\n\t201,\n\t247,\n\t229,\n\t167,\n\t215,\n\t81,\n\t33,\n\t200,\n\t67,\n\t200,\n\t151,\n\t11,\n\t7,\n\t19,\n\t155,\n\t173,\n\t9,\n\t229,\n\t209,\n\t141,\n\t12,\n\t229,\n\t173,\n\t31,\n\t145,\n\t212,\n\t39,\n\t255,\n\t168,\n\t60,\n\t220,\n\t53,\n\t186,\n\t139,\n\t93,\n\t217,\n\t55,\n\t39,\n\t184,\n\t16,\n\t223,\n\t213,\n\t84,\n\t174,\n\t177,\n\t36,\n\t75,\n\t245,\n\t76,\n\t90,\n\t56,\n\t224,\n\t250,\n\t221,\n\t168,\n\t98,\n\t186,\n\t129,\n\t210,\n\t213,\n\t25,\n\t10,\n\t87,\n\t20,\n\t23,\n\t175,\n\t139,\n\t4,\n\t45,\n\t196,\n\t67,\n\t178,\n\t167,\n\t24,\n\t140,\n\t38,\n\t254,\n\t168,\n\t217,\n\t95,\n\t129,\n\t138,\n\t62,\n\t216,\n\t211,\n\t95,\n\t92,\n\t208,\n\t41,\n\t94,\n\t167,\n\t60,\n\t6,\n\t246,\n\t183,\n\t244,\n\t115,\n\t107,\n\t146,\n\t42,\n\t41,\n\t23,\n\t252,\n\t139,\n\t96,\n\t197,\n\t18,\n\t21,\n\t127,\n\t97,\n\t40,\n\t159,\n\t95,\n\t70,\n\t48,\n\t178,\n\t33,\n\t122,\n\t77,\n\t9,\n\t233,\n\t227,\n\t193,\n\t171,\n\t235,\n\t148,\n\t197,\n\t171,\n\t76,\n\t212,\n\t123,\n\t162,\n\t198,\n\t142,\n\t38,\n\t59,\n\t126,\n\t173,\n\t11,\n\t72,\n\t98,\n\t139,\n\t213,\n\t89,\n\t194,\n\t232,\n\t68,\n\t136,\n\t219,\n\t44,\n\t111,\n\t183,\n\t117,\n\t234,\n\t7,\n\t30,\n\t119,\n\t7,\n\t120,\n\t18,\n\t148,\n\t97,\n\t94,\n\t37,\n\t195,\n\t219,\n\t81,\n\t186,\n\t39,\n\t91,\n\t81,\n\t61,\n\t19,\n\t217,\n\t184,\n\t53,\n\t251,\n\t176,\n\t62,\n\t31,\n\t173,\n\t229,\n\t8,\n\t209,\n\t197,\n\t125,\n\t248,\n\t150,\n\t240,\n\t79,\n\t87,\n\t28,\n\t16,\n\t119,\n\t182,\n\t158,\n\t77,\n\t223,\n\t171,\n\t245,\n\t220,\n\t57,\n\t10,\n\t35,\n\t245,\n\t166,\n\t223,\n\t48,\n\t49,\n\t154,\n\t12,\n\t118,\n\t120,\n\t187,\n\t25,\n\t170,\n\t88,\n\t118,\n\t142,\n\t138,\n\t62,\n\t7,\n\t144,\n\t41,\n\t201,\n\t165,\n\t21,\n\t250,\n\t184,\n\t81,\n\t136,\n\t111,\n\t87,\n\t66,\n\t1,\n\t129,\n\t232,\n\t145,\n\t221,\n\t25,\n\t211,\n\t48,\n\t22,\n\t170,\n\t14,\n\t170,\n\t89,\n\t173,\n\t52,\n\t114,\n\t45,\n\t219,\n\t41,\n\t226,\n\t93,\n\t8,\n\t93,\n\t148,\n\t221,\n\t18,\n\t183,\n\t199,\n\t210,\n\t195,\n\t119,\n\t118,\n\t160,\n\t70,\n\t230,\n\t244,\n\t72,\n\t199,\n\t117,\n\t96,\n\t9,\n\t135,\n\t7,\n\t154,\n\t105,\n\t42,\n\t39,\n\t193,\n\t242,\n\t187,\n\t123,\n\t61,\n\t43,\n\t219,\n\t129,\n\t15,\n\t87,\n\t124,\n\t113,\n\t149,\n\t4,\n\t199,\n\t122,\n\t152,\n\t112,\n\t94,\n\t111,\n\t178,\n\t167,\n\t145,\n\t164,\n\t93,\n\t70,\n\t58,\n\t15,\n\t30,\n\t153,\n\t229,\n\t140,\n\t216,\n\t233,\n\t129,\n\t149,\n\t99,\n\t221,\n\t103,\n\t170,\n\t128,\n\t95,\n\t9,\n\t183,\n\t156,\n\t67,\n\t69,\n\t202,\n\t31,\n\t164,\n\t189,\n\t121,\n\t53,\n\t223,\n\t99,\n\t223,\n\t88,\n\t9,\n\t77,\n\t210,\n\t70,\n\t251,\n\t202,\n\t30,\n\t31,\n\t207,\n\t100,\n\t251,\n\t85,\n\t101,\n\t24,\n\t254,\n\t17,\n\t23,\n\t95,\n\t144,\n\t239,\n\t196,\n\t96,\n\t1,\n\t11,\n\t77,\n\t215,\n\t70,\n\t156,\n\t142,\n\t27,\n\t203,\n\t127,\n\t187,\n\t113,\n\t161,\n\t230,\n\t214,\n\t93,\n\t166,\n\t196,\n\t149,\n\t244,\n\t5,\n\t154,\n\t196,\n\t147,\n\t123,\n\t207,\n\t8,\n\t85,\n\t130,\n\t88,\n\t8,\n\t35,\n\t88,\n\t21,\n\t219,\n\t203,\n\t84,\n\t86,\n\t44,\n\t170,\n\t159,\n\t133,\n\t12,\n\t116,\n\t136,\n\t121,\n\t183,\n\t225,\n\t26,\n\t219,\n\t58,\n\t59,\n\t60,\n\t238,\n\t60,\n\t161,\n\t182,\n\t180,\n\t79,\n\t4,\n\t27,\n\t137,\n\t38,\n\t78,\n\t31,\n\t134,\n\t33,\n\t15,\n\t158,\n\t252,\n\t144,\n\t241,\n\t119,\n\t173,\n\t235,\n\t154,\n\t63,\n\t178,\n\t238,\n\t140,\n\t243,\n\t44,\n\t140,\n\t121,\n\t154,\n\t14,\n\t226,\n\t29,\n\t245,\n\t113,\n\t26,\n\t100,\n\t16,\n\t137,\n\t133,\n\t181,\n\t201,\n\t109,\n\t24,\n\t57,\n\t84,\n\t41,\n\t55,\n\t40,\n\t154,\n\t107,\n\t200,\n\t127,\n\t254,\n\t241,\n\t45,\n\t240,\n\t118,\n\t20,\n\t120,\n\t238,\n\t151,\n\t69,\n\t114,\n\t106,\n\t89,\n\t27,\n\t106,\n\t116,\n\t6,\n\t152,\n\t233,\n\t253,\n\t86,\n\t239,\n\t106,\n\t88,\n\t8,\n\t100,\n\t201,\n\t101,\n\t97,\n\t126,\n\t75,\n\t223,\n\t86,\n\t140,\n\t61,\n\t219,\n\t117,\n\t39,\n\t186,\n\t255,\n\t239,\n\t6,\n\t226,\n\t198,\n\t221,\n\t12,\n\t159,\n\t61,\n\t153,\n\t188,\n\t209,\n\t147,\n\t1,\n\t17,\n\t207,\n\t84,\n\t63,\n\t182,\n\t59,\n\t80,\n\t252,\n\t72,\n\t106,\n\t86,\n\t94,\n\t85,\n\t103,\n\t63,\n\t103,\n\t164,\n\t130,\n\t137,\n\t249,\n\t229,\n\t136,\n\t162,\n\t156,\n\t0,\n\t195,\n\t202,\n\t124,\n\t154,\n\t94,\n\t214,\n\t67,\n\t94,\n\t231,\n\t149,\n\t169,\n\t187,\n\t147,\n\t139,\n\t204,\n\t252,\n\t112,\n\t113,\n\t202,\n\t223,\n\t110,\n\t105,\n\t130,\n\t163,\n\t62,\n\t153,\n\t102,\n\t112,\n\t204,\n\t119,\n\t132,\n\t173,\n\t227,\n\t47,\n\t133,\n\t154,\n\t41,\n\t1,\n\t39,\n\t23,\n\t51,\n\t94,\n\t18,\n\t36,\n\t122,\n\t70,\n\t193,\n\t156,\n\t145,\n\t150,\n\t51,\n\t37,\n\t14,\n\t247,\n\t12,\n\t155,\n\t209,\n\t89,\n\t255,\n\t87,\n\t189,\n\t250,\n\t191,\n\t233,\n\t184,\n\t233,\n\t233,\n\t92,\n\t235,\n\t92,\n\t244,\n\t139,\n\t182,\n\t126,\n\t104,\n\t1,\n\t124,\n\t67,\n\t253,\n\t112,\n\t101,\n\t181,\n\t23,\n\t54,\n\t245,\n\t172,\n\t105,\n\t95,\n\t39,\n\t79,\n\t41,\n\t0,\n\t43,\n\t106,\n\t213,\n\t149,\n\t181,\n\t241,\n\t183,\n\t246,\n\t113,\n\t235,\n\t222,\n\t111,\n\t53,\n\t94,\n\t29,\n\t182,\n\t128,\n\t231,\n\t65,\n\t189,\n\t170,\n\t133,\n\t41,\n\t223,\n\t210,\n\t86,\n\t116,\n\t241,\n\t219,\n\t98,\n\t67,\n\t194,\n\t69,\n\t120,\n\t237,\n\t226,\n\t12,\n\t229,\n\t171,\n\t112,\n\t177,\n\t129,\n\t237,\n\t188,\n\t50,\n\t76,\n\t188,\n\t50,\n\t132,\n\t191,\n\t248,\n\t233,\n\t251,\n\t218,\n\t71,\n\t62,\n\t100,\n\t141,\n\t177,\n\t6,\n\t216,\n\t9,\n\t202,\n\t218,\n\t64,\n\t64,\n\t116,\n\t53,\n\t206,\n\t177,\n\t29,\n\t116,\n\t194,\n\t21,\n\t201,\n\t30,\n\t110,\n\t173,\n\t126,\n\t178,\n\t4,\n\t219,\n\t188,\n\t191,\n\t153,\n\t74,\n\t11,\n\t199,\n\t139,\n\t116,\n\t98,\n\t147,\n\t38,\n\t214,\n\t224,\n\t33,\n\t157,\n\t217,\n\t201,\n\t60,\n\t210,\n\t125,\n\t105,\n\t177,\n\t245,\n\t255,\n\t156,\n\t189,\n\t194,\n\t94,\n\t243,\n\t35,\n\t55,\n\t244,\n\t175,\n\t221,\n\t142,\n\t74,\n\t118,\n\t105,\n\t68,\n\t196,\n\t255,\n\t217,\n\t182,\n\t46,\n\t62,\n\t99,\n\t131,\n\t182,\n\t252,\n\t189,\n\t212,\n\t64,\n\t122,\n\t190,\n\t195,\n\t59,\n\t116,\n\t178,\n\t44,\n\t209,\n\t236,\n\t212,\n\t32,\n\t38,\n\t231,\n\t30,\n\t98,\n\t1,\n\t216,\n\t118,\n\t200,\n\t98,\n\t88,\n\t138,\n\t240,\n\t43,\n\t101,\n\t176,\n\t129,\n\t53,\n\t143,\n\t60,\n\t79,\n\t15,\n\t176,\n\t248,\n\t45,\n\t83,\n\t110,\n\t222,\n\t240,\n\t43,\n\t124,\n\t229,\n\t218,\n\t188,\n\t211,\n\t30,\n\t143,\n\t195,\n\t243,\n\t248,\n\t27,\n\t221,\n\t205,\n\t230,\n\t98,\n\t185,\n\t196,\n\t32,\n\t72,\n\t169,\n\t98,\n\t163,\n\t212,\n\t113,\n\t213,\n\t163,\n\t157,\n\t59,\n\t18,\n\t195,\n\t142,\n\t245,\n\t59,\n\t113,\n\t20,\n\t55,\n\t177,\n\t173,\n\t131,\n\t131,\n\t78,\n\t2,\n\t207,\n\t79,\n\t38,\n\t188,\n\t102,\n\t211,\n\t117,\n\t110,\n\t100,\n\t166,\n\t185,\n\t199,\n\t5,\n\t192,\n\t96,\n\t40,\n\t237,\n\t236,\n\t107,\n\t52,\n\t212,\n\t169,\n\t186,\n\t79,\n\t96,\n\t225,\n\t57,\n\t133,\n\t12,\n\t160,\n\t87,\n\t2,\n\t74,\n\t238,\n\t199,\n\t147,\n\t90,\n\t119,\n\t200,\n\t253,\n\t94,\n\t27,\n\t227,\n\t55,\n\t191,\n\t116,\n\t57,\n\t150,\n\t224,\n\t51,\n\t123,\n\t165,\n\t176,\n\t6,\n\t118,\n\t72,\n\t96,\n\t237,\n\t19,\n\t10,\n\t231,\n\t15,\n\t88,\n\t175,\n\t148,\n\t39,\n\t126,\n\t138,\n\t160,\n\t159,\n\t24,\n\t250,\n\t250,\n\t90,\n\t190,\n\t18,\n\t206,\n\t242,\n\t14,\n\t94,\n\t119,\n\t189,\n\t56,\n\t34,\n\t57,\n\t80,\n\t117,\n\t247,\n\t166,\n\t172,\n\t203,\n\t191,\n\t252,\n\t75,\n\t207,\n\t97,\n\t116,\n\t208,\n\t72,\n\t98,\n\t15,\n\t61,\n\t248,\n\t154,\n\t128,\n\t148,\n\t189,\n\t156,\n\t202,\n\t143,\n\t228,\n\t139,\n\t228,\n\t196,\n\t223,\n\t105,\n\t190,\n\t226,\n\t115,\n\t238,\n\t31,\n\t28,\n\t106,\n\t179,\n\t215,\n\t76,\n\t163,\n\t42,\n\t242,\n\t57,\n\t211,\n\t120,\n\t189,\n\t18,\n\t77,\n\t169,\n\t250,\n\t118,\n\t114,\n\t211,\n\t2,\n\t172,\n\t8,\n\t179,\n\t7,\n\t8,\n\t193,\n\t96,\n\t209,\n\t216,\n\t172,\n\t27,\n\t25,\n\t215,\n\t64,\n\t84,\n\t223,\n\t18,\n\t97,\n\t100,\n\t65,\n\t238,\n\t71,\n\t193,\n\t124,\n\t20,\n\t100,\n\t73,\n\t124,\n\t239,\n\t30,\n\t82,\n\t5,\n\t240,\n\t62,\n\t163,\n\t163,\n\t174,\n\t36,\n\t83,\n\t54,\n\t36,\n\t230,\n\t143,\n\t231,\n\t242,\n\t130,\n\t227,\n\t42,\n\t166,\n\t173,\n\t210,\n\t183,\n\t87,\n\t189,\n\t15,\n\t58,\n\t50,\n\t76,\n\t16,\n\t24,\n\t201,\n\t231,\n\t149,\n\t198,\n\t172,\n\t168,\n\t243,\n\t211,\n\t219,\n\t233,\n\t149,\n\t181,\n\t65,\n\t155,\n\t223,\n\t98,\n\t174,\n\t31,\n\t167,\n\t50,\n\t101,\n\t7,\n\t167,\n\t173,\n\t17,\n\t181,\n\t213,\n\t48,\n\t43,\n\t112,\n\t9,\n\t118,\n\t239,\n\t233,\n\t239,\n\t56,\n\t192,\n\t67,\n\t123,\n\t239,\n\t132,\n\t40,\n\t119,\n\t248,\n\t97,\n\t220,\n\t134,\n\t127,\n\t185,\n\t179,\n\t159,\n\t51,\n\t179,\n\t223,\n\t119,\n\t5,\n\t20,\n\t97,\n\t28,\n\t191,\n\t125,\n\t189,\n\t167,\n\t138,\n\t134,\n\t218,\n\t26,\n\t26,\n\t67,\n\t197,\n\t11,\n\t136,\n\t204,\n\t149,\n\t207,\n\t161,\n\t13,\n\t115,\n\t24,\n\t104,\n\t168,\n\t105,\n\t197,\n\t33,\n\t219,\n\t169,\n\t114,\n\t126,\n\t198,\n\t32,\n\t36,\n\t22,\n\t187,\n\t13,\n\t242,\n\t59,\n\t117,\n\t188,\n\t75,\n\t125,\n\t230,\n\t204,\n\t39,\n\t12,\n\t96,\n\t159,\n\t50,\n\t193,\n\t206,\n\t212,\n\t238,\n\t185,\n\t154,\n\t65,\n\t255,\n\t214,\n\t228,\n\t174,\n\t183,\n\t26,\n\t190,\n\t27,\n\t85,\n\t58,\n\t87,\n\t59,\n\t35,\n\t169,\n\t226,\n\t214,\n\t218,\n\t63,\n\t34,\n\t26,\n\t106,\n\t208,\n\t77,\n\t165,\n\t122,\n\t165,\n\t153,\n\t5,\n\t19,\n\t73,\n\t149,\n\t227,\n\t196,\n\t250,\n\t245,\n\t247,\n\t238,\n\t247,\n\t61,\n\t38,\n\t147,\n\t249,\n\t9,\n\t200,\n\t223,\n\t150,\n\t44,\n\t90,\n\t126,\n\t150,\n\t165,\n\t242,\n\t99,\n\t70,\n\t210,\n\t188,\n\t190,\n\t82,\n\t89,\n\t161,\n\t52,\n\t160,\n\t141,\n\t164,\n\t84,\n\t223,\n\t208,\n\t6,\n\t10,\n\t69,\n\t142,\n\t102,\n\t216,\n\t159,\n\t38,\n\t185,\n\t222,\n\t124,\n\t42,\n\t234,\n\t193,\n\t50,\n\t131,\n\t22,\n\t107,\n\t150,\n\t80,\n\t43,\n\t164,\n\t18,\n\t198,\n\t28,\n\t70,\n\t179,\n\t51,\n\t10,\n\t136,\n\t173,\n\t219,\n\t204,\n\t24,\n\t164,\n\t254,\n\t228,\n\t73,\n\t88,\n\t204,\n\t15,\n\t197,\n\t137,\n\t97,\n\t8,\n\t141,\n\t115,\n\t102,\n\t229,\n\t50,\n\t59,\n\t170,\n\t97,\n\t232,\n\t38,\n\t127,\n\t164,\n\t172,\n\t124,\n\t45,\n\t99,\n\t171,\n\t63,\n\t23,\n\t206,\n\t8,\n\t76,\n\t148,\n\t229,\n\t254,\n\t130,\n\t127,\n\t204,\n\t41,\n\t153,\n\t160,\n\t150,\n\t59,\n\t51,\n\t174,\n\t103,\n\t161,\n\t17,\n\t174,\n\t21,\n\t247,\n\t197,\n\t107,\n\t120,\n\t144,\n\t241,\n\t98,\n\t241,\n\t235,\n\t222,\n\t62,\n\t200,\n\t120,\n\t144,\n\t125,\n\t254,\n\t192,\n\t89,\n\t87,\n\t141,\n\t65,\n\t89,\n\t63,\n\t192,\n\t100,\n\t8,\n\t238,\n\t11,\n\t149,\n\t232,\n\t174,\n\t82,\n\t15,\n\t157,\n\t152,\n\t1,\n\t2,\n\t120,\n\t129,\n\t18,\n\t22,\n\t167,\n\t167,\n\t79,\n\t244,\n\t250,\n\t166,\n\t102,\n\t17,\n\t96,\n\t233,\n\t187,\n\t200,\n\t160,\n\t123,\n\t88,\n\t84,\n\t60,\n\t140,\n\t147,\n\t163,\n\t164,\n\t250,\n\t128,\n\t49,\n\t28,\n\t22,\n\t21,\n\t146,\n\t161,\n\t219,\n\t141,\n\t135,\n\t198,\n\t18,\n\t187,\n\t174,\n\t74,\n\t128,\n\t195,\n\t134,\n\t7,\n\t14,\n\t213,\n\t148,\n\t214,\n\t51,\n\t52,\n\t136,\n\t48,\n\t30,\n\t218,\n\t189,\n\t40,\n\t253,\n\t178,\n\t201,\n\t53,\n\t114,\n\t178,\n\t165,\n\t249,\n\t191,\n\t93,\n\t172,\n\t127,\n\t176,\n\t254,\n\t189,\n\t5,\n\t29,\n\t71,\n\t103,\n\t81,\n\t14,\n\t240,\n\t149,\n\t227,\n\t74,\n\t200,\n\t34,\n\t117,\n\t210,\n\t45,\n\t100,\n\t255,\n\t202,\n\t176,\n\t186,\n\t19,\n\t19,\n\t144,\n\t196,\n\t18,\n\t112,\n\t32,\n\t54,\n\t222,\n\t101,\n\t201,\n\t119,\n\t207,\n\t92,\n\t145,\n\t229,\n\t24,\n\t247,\n\t151,\n\t194,\n\t6,\n\t167,\n\t27,\n\t41,\n\t106,\n\t153,\n\t239,\n\t4,\n\t191,\n\t159,\n\t194,\n\t234,\n\t64,\n\t221,\n\t190,\n\t159,\n\t144,\n\t87,\n\t30,\n\t32,\n\t63,\n\t112,\n\t130,\n\t35,\n\t53,\n\t32,\n\t176,\n\t116,\n\t112,\n\t117,\n\t93,\n\t190,\n\t143,\n\t209,\n\t227,\n\t24,\n\t60,\n\t202,\n\t162,\n\t151,\n\t79,\n\t199,\n\t159,\n\t151,\n\t65,\n\t167,\n\t25,\n\t125,\n\t127,\n\t219,\n\t177,\n\t84,\n\t97,\n\t229,\n\t22,\n\t216,\n\t191,\n\t198,\n\t53,\n\t17,\n\t134,\n\t89,\n\t81,\n\t169,\n\t222,\n\t47,\n\t117,\n\t161,\n\t162,\n\t100,\n\t111,\n\t138,\n\t242,\n\t108,\n\t67,\n\t71,\n\t173,\n\t239,\n\t90,\n\t216,\n\t254,\n\t111,\n\t139,\n\t63,\n\t242,\n\t170,\n\t79,\n\t39,\n\t129,\n\t101,\n\t20,\n\t75,\n\t226,\n\t175,\n\t249,\n\t251,\n\t190,\n\t244,\n\t18,\n\t197,\n\t157,\n\t242,\n\t226,\n\t45,\n\t115,\n\t133,\n\t112,\n\t135,\n\t129,\n\t36,\n\t184,\n\t103,\n\t107,\n\t32,\n\t162,\n\t184,\n\t52,\n\t82,\n\t169,\n\t204,\n\t116,\n\t66,\n\t238,\n\t188,\n\t129,\n\t91,\n\t6,\n\t97,\n\t206,\n\t132,\n\t28,\n\t62,\n\t116,\n\t208,\n\t89,\n\t45,\n\t250,\n\t10,\n\t67,\n\t143,\n\t168,\n\t47,\n\t175,\n\t207,\n\t56,\n\t159,\n\t204,\n\t25,\n\t230,\n\t142,\n\t170,\n\t239,\n\t27,\n\t75,\n\t231,\n\t0,\n\t52,\n\t109,\n\t229,\n\t208,\n\t157,\n\t247,\n\t214,\n\t98,\n\t70,\n\t107,\n\t179,\n\t99,\n\t70,\n\t33,\n\t24,\n\t16,\n\t110,\n\t199,\n\t57,\n\t52,\n\t29,\n\t244,\n\t217,\n\t37,\n\t113,\n\t249,\n\t30,\n\t17,\n\t58,\n\t249,\n\t160,\n\t101,\n\t164,\n\t124,\n\t192,\n\t23,\n\t35,\n\t139,\n\t93,\n\t188,\n\t4,\n\t199,\n\t201,\n\t246,\n\t71,\n\t47,\n\t39,\n\t128,\n\t194,\n\t249,\n\t180,\n\t57,\n\t238,\n\t68,\n\t102,\n\t191,\n\t156,\n\t177,\n\t129,\n\t78,\n\t39,\n\t129,\n\t151,\n\t231,\n\t211,\n\t242,\n\t77,\n\t103,\n\t194,\n\t65,\n\t195,\n\t24,\n\t211,\n\t169,\n\t47,\n\t172,\n\t246,\n\t72,\n\t201,\n\t20,\n\t109,\n\t110,\n\t156,\n\t101,\n\t6,\n\t47,\n\t3,\n\t34,\n\t34,\n\t229,\n\t212,\n\t15,\n\t209,\n\t5,\n\t132,\n\t210,\n\t9,\n\t187,\n\t32,\n\t132,\n\t2,\n\t101,\n\t89,\n\t72,\n\t129,\n\t138,\n\t31,\n\t129,\n\t186,\n\t191,\n\t88,\n\t17,\n\t71,\n\t82,\n\t242,\n\t205,\n\t2,\n\t135,\n\t217,\n\t154,\n\t162,\n\t35,\n\t80,\n\t231,\n\t28,\n\t202,\n\t3,\n\t17,\n\t155,\n\t41,\n\t108,\n\t56,\n\t211,\n\t121,\n\t161,\n\t72,\n\t1,\n\t180,\n\t175,\n\t141,\n\t42,\n\t183,\n\t3,\n\t233,\n\t248,\n\t235,\n\t47,\n\t97,\n\t133,\n\t83,\n\t60,\n\t192,\n\t138,\n\t103,\n\t1,\n\t20,\n\t151,\n\t203,\n\t57,\n\t142,\n\t15,\n\t222,\n\t157,\n\t245,\n\t69,\n\t239,\n\t22,\n\t186,\n\t18,\n\t62,\n\t1,\n\t176,\n\t213,\n\t218,\n\t182,\n\t189,\n\t209,\n\t42,\n\t14,\n\t175,\n\t95,\n\t36,\n\t221,\n\t68,\n\t108,\n\t189,\n\t150,\n\t186,\n\t83,\n\t102,\n\t30,\n\t65,\n\t67,\n\t191,\n\t20,\n\t142,\n\t245,\n\t148,\n\t255,\n\t69,\n\t127,\n\t193,\n\t195,\n\t104,\n\t0,\n\t252,\n\t26,\n\t197,\n\t247,\n\t69,\n\t235,\n\t36,\n\t0,\n\t158,\n\t173,\n\t229,\n\t95,\n\t109,\n\t95,\n\t216,\n\t93,\n\t162,\n\t159,\n\t167,\n\t190,\n\t205,\n\t155,\n\t30,\n\t77,\n\t140,\n\t66,\n\t20,\n\t151,\n\t26,\n\t35,\n\t179,\n\t46,\n\t226,\n\t55,\n\t185,\n\t193,\n\t29,\n\t38,\n\t98,\n\t129,\n\t251,\n\t27,\n\t23,\n\t37,\n\t78,\n\t95,\n\t86,\n\t83,\n\t120,\n\t32,\n\t177,\n\t190,\n\t169,\n\t209,\n\t72,\n\t76,\n\t79,\n\t226,\n\t89,\n\t57,\n\t101,\n\t230,\n\t37,\n\t70,\n\t239,\n\t92,\n\t105,\n\t166,\n\t187,\n\t227,\n\t116,\n\t214,\n\t53,\n\t215,\n\t33,\n\t68,\n\t136,\n\t68,\n\t91,\n\t6,\n\t157,\n\t176,\n\t18,\n\t30,\n\t219,\n\t142,\n\t66,\n\t241,\n\t201,\n\t105,\n\t105,\n\t158,\n\t51,\n\t172,\n\t251,\n\t36,\n\t248,\n\t236,\n\t23,\n\t207,\n\t21,\n\t130,\n\t189,\n\t20,\n\t110,\n\t155,\n\t35,\n\t82,\n\t45,\n\t110,\n\t74,\n\t89,\n\t164,\n\t137,\n\t200,\n\t149,\n\t61,\n\t229,\n\t204,\n\t33,\n\t120,\n\t174,\n\t250,\n\t130,\n\t190,\n\t246,\n\t219,\n\t203,\n\t41,\n\t103,\n\t120,\n\t102,\n\t78,\n\t210,\n\t242,\n\t173,\n\t243,\n\t54,\n\t65,\n\t17,\n\t106,\n\t100,\n\t83,\n\t17,\n\t243,\n\t244,\n\t58,\n\t201,\n\t103,\n\t213,\n\t131,\n\t4,\n\t221,\n\t125,\n\t125,\n\t145,\n\t203,\n\t140,\n\t55,\n\t249,\n\t224,\n\t14,\n\t255,\n\t149,\n\t83,\n\t230,\n\t113,\n\t91,\n\t228,\n\t217,\n\t115,\n\t92,\n\t251,\n\t193,\n\t16,\n\t5,\n\t171,\n\t53,\n\t158,\n\t144,\n\t222,\n\t54,\n\t199,\n\t209,\n\t17,\n\t120,\n\t189,\n\t198,\n\t233,\n\t249,\n\t240,\n\t231,\n\t129,\n\t255,\n\t242,\n\t194,\n\t154,\n\t50,\n\t53,\n\t11,\n\t99,\n\t173,\n\t251,\n\t220,\n\t171,\n\t221,\n\t192,\n\t85,\n\t189,\n\t81,\n\t13,\n\t100,\n\t96,\n\t134,\n\t252,\n\t170,\n\t128,\n\t141,\n\t129,\n\t144,\n\t202,\n\t245,\n\t175,\n\t6,\n\t34,\n\t242,\n\t8,\n\t179,\n\t103,\n\t65,\n\t189,\n\t26,\n\t99,\n\t233,\n\t49,\n\t234,\n\t143,\n\t122,\n\t176,\n\t16,\n\t209,\n\t210,\n\t91,\n\t207,\n\t31,\n\t138,\n\t0,\n\t83,\n\t56,\n\t32,\n\t26,\n\t186,\n\t137,\n\t34,\n\t233,\n\t100,\n\t117,\n\t43,\n\t161,\n\t236,\n\t159,\n\t119,\n\t218,\n\t57,\n\t163,\n\t238,\n\t31,\n\t71,\n\t97,\n\t45,\n\t177,\n\t144,\n\t104,\n\t36,\n\t228,\n\t80,\n\t16,\n\t14,\n\t18,\n\t91,\n\t64,\n\t166,\n\t121,\n\t116,\n\t167,\n\t110,\n\t92,\n\t118,\n\t123,\n\t212,\n\t36,\n\t8,\n\t114,\n\t40,\n\t119,\n\t42,\n\t149,\n\t235,\n\t232,\n\t57,\n\t17,\n\t49,\n\t41,\n\t102,\n\t194,\n\t234,\n\t157,\n\t223,\n\t205,\n\t107,\n\t173,\n\t4,\n\t40,\n\t245,\n\t255,\n\t181,\n\t10,\n\t79,\n\t17,\n\t195,\n\t190,\n\t8,\n\t226,\n\t1,\n\t61,\n\t196,\n\t29,\n\t179,\n\t48,\n\t243,\n\t74,\n\t33,\n\t198,\n\t201,\n\t1,\n\t79,\n\t151,\n\t47,\n\t251,\n\t41,\n\t200,\n\t148,\n\t135,\n\t91,\n\t190,\n\t152,\n\t87,\n\t241,\n\t76,\n\t33,\n\t198,\n\t191,\n\t217,\n\t231,\n\t217,\n\t106,\n\t167,\n\t116,\n\t104,\n\t30,\n\t26,\n\t52,\n\t63,\n\t146,\n\t189,\n\t54,\n\t170,\n\t100,\n\t193,\n\t95,\n\t177,\n\t220,\n\t214,\n\t168,\n\t132,\n\t190,\n\t8,\n\t146,\n\t207,\n\t84,\n\t243,\n\t254,\n\t204,\n\t187,\n\t18,\n\t205,\n\t189,\n\t194,\n\t249,\n\t250,\n\t22,\n\t176,\n\t198,\n\t60,\n\t254,\n\t218,\n\t177,\n\t121,\n\t97,\n\t57,\n\t168,\n\t135,\n\t196,\n\t231,\n\t45,\n\t62,\n\t244,\n\t233,\n\t180,\n\t80,\n\t53,\n\t144,\n\t113,\n\t84,\n\t147,\n\t198,\n\t204,\n\t19,\n\t180,\n\t172,\n\t77,\n\t41,\n\t198,\n\t108,\n\t86,\n\t212,\n\t174,\n\t203,\n\t49,\n\t174,\n\t174,\n\t244,\n\t46,\n\t26,\n\t18,\n\t135,\n\t147,\n\t176,\n\t189,\n\t9,\n\t218,\n\t251,\n\t15,\n\t56,\n\t93,\n\t213,\n\t225,\n\t101,\n\t189,\n\t172,\n\t150,\n\t130,\n\t120,\n\t102,\n\t192,\n\t160,\n\t222,\n\t63,\n\t143,\n\t174,\n\t50,\n\t75,\n\t211,\n\t207,\n\t201,\n\t6,\n\t46,\n\t115,\n\t25,\n\t222,\n\t174,\n\t119,\n\t246,\n\t113,\n\t134,\n\t103,\n\t6,\n\t40,\n\t179,\n\t151,\n\t61,\n\t195,\n\t110,\n\t157,\n\t10,\n\t185,\n\t17,\n\t37,\n\t189,\n\t218,\n\t34,\n\t111,\n\t126,\n\t203,\n\t145,\n\t172,\n\t214,\n\t45,\n\t107,\n\t5,\n\t176,\n\t74,\n\t99,\n\t97,\n\t61,\n\t138,\n\t5,\n\t143,\n\t100,\n\t42,\n\t88,\n\t209,\n\t116,\n\t125,\n\t242,\n\t233,\n\t26,\n\t223,\n\t218,\n\t119,\n\t110,\n\t17,\n\t39,\n\t203,\n\t228,\n\t111,\n\t155,\n\t23,\n\t146,\n\t156,\n\t138,\n\t94,\n\t107,\n\t197,\n\t27,\n\t149,\n\t92,\n\t119,\n\t55,\n\t255,\n\t227,\n\t137,\n\t55,\n\t60,\n\t18,\n\t255,\n\t162,\n\t50,\n\t121,\n\t219,\n\t233,\n\t22,\n\t27,\n\t51,\n\t128,\n\t174,\n\t124,\n\t169,\n\t229,\n\t255,\n\t122,\n\t246,\n\t133,\n\t119,\n\t39,\n\t103,\n\t56,\n\t46,\n\t45,\n\t187,\n\t54,\n\t74,\n\t47,\n\t107,\n\t213,\n\t112,\n\t68,\n\t213,\n\t74,\n\t168,\n\t221,\n\t21,\n\t250,\n\t5,\n\t126,\n\t153,\n\t49,\n\t226,\n\t182,\n\t9,\n\t23,\n\t87,\n\t125,\n\t26,\n\t89,\n\t221,\n\t192,\n\t213,\n\t20,\n\t162,\n\t149,\n\t209,\n\t37,\n\t122,\n\t35,\n\t79,\n\t3,\n\t238,\n\t92,\n\t167,\n\t237,\n\t254,\n\t79,\n\t181,\n\t254,\n\t197,\n\t241,\n\t226,\n\t69,\n\t149,\n\t208,\n\t214,\n\t206,\n\t5,\n\t3,\n\t212,\n\t241,\n\t33,\n\t201,\n\t239,\n\t121,\n\t11,\n\t61,\n\t37,\n\t38,\n\t121,\n\t175,\n\t154,\n\t141,\n\t154,\n\t10,\n\t165,\n\t91,\n\t140,\n\t204,\n\t181,\n\t158,\n\t171,\n\t96,\n\t219,\n\t224,\n\t155,\n\t37,\n\t92,\n\t203,\n\t2,\n\t173,\n\t187,\n\t198,\n\t113,\n\t157,\n\t38,\n\t210,\n\t230,\n\t245,\n\t229,\n\t5,\n\t95,\n\t141,\n\t93,\n\t210,\n\t31,\n\t139,\n\t127,\n\t177,\n\t206,\n\t185,\n\t201,\n\t209,\n\t57,\n\t5,\n\t47,\n\t229,\n\t39,\n\t242,\n\t253,\n\t79,\n\t88,\n\t224,\n\t182,\n\t60,\n\t241,\n\t66,\n\t141,\n\t83,\n\t234,\n\t238,\n\t164,\n\t199,\n\t238,\n\t99,\n\t169,\n\t204,\n\t230,\n\t35,\n\t253,\n\t190,\n\t33,\n\t209,\n\t199,\n\t147,\n\t249,\n\t225,\n\t224,\n\t175,\n\t222,\n\t201,\n\t170,\n\t22,\n\t245,\n\t206,\n\t37,\n\t95,\n\t120,\n\t3,\n\t115,\n\t124,\n\t223,\n\t27,\n\t21,\n\t72,\n\t79,\n\t40,\n\t24,\n\t187,\n\t132,\n\t144,\n\t66,\n\t186,\n\t68,\n\t39,\n\t7,\n\t70,\n\t134,\n\t140,\n\t84,\n\t216,\n\t44,\n\t147,\n\t215,\n\t47,\n\t110,\n\t165,\n\t67,\n\t102,\n\t252,\n\t211,\n\t26,\n\t206,\n\t15,\n\t151,\n\t5,\n\t90,\n\t0,\n\t60,\n\t135,\n\t61,\n\t210,\n\t183,\n\t71,\n\t186,\n\t246,\n\t76,\n\t13,\n\t156,\n\t61,\n\t254,\n\t157,\n\t125,\n\t224,\n\t203,\n\t93,\n\t133,\n\t142,\n\t184,\n\t206,\n\t249,\n\t215,\n\t81,\n\t190,\n\t251,\n\t223,\n\t201,\n\t93,\n\t210,\n\t89,\n\t181,\n\t220,\n\t198,\n\t163,\n\t71,\n\t126,\n\t107,\n\t27,\n\t246,\n\t237,\n\t83,\n\t87,\n\t236,\n\t7,\n\t77,\n\t191,\n\t65,\n\t211,\n\t191,\n\t203,\n\t218,\n\t192,\n\t124,\n\t89,\n\t65,\n\t201,\n\t245,\n\t231,\n\t141,\n\t162,\n\t96,\n\t242,\n\t202,\n\t193,\n\t22,\n\t103,\n\t71,\n\t94,\n\t168,\n\t72,\n\t71,\n\t254,\n\t133,\n\t136,\n\t218,\n\t136,\n\t132,\n\t135,\n\t157,\n\t186,\n\t130,\n\t240,\n\t10,\n\t212,\n\t220,\n\t118,\n\t144,\n\t136,\n\t77,\n\t190,\n\t70,\n\t17,\n\t250,\n\t211,\n\t216,\n\t28,\n\t70,\n\t189,\n\t143,\n\t233,\n\t221,\n\t213,\n\t80,\n\t105,\n\t64,\n\t253,\n\t110,\n\t205,\n\t40,\n\t200,\n\t12,\n\t239,\n\t159,\n\t12,\n\t48,\n\t123,\n\t187,\n\t45,\n\t54,\n\t246,\n\t180,\n\t99,\n\t12,\n\t46,\n\t82,\n\t147,\n\t166,\n\t138,\n\t115,\n\t60,\n\t179,\n\t212,\n\t62,\n\t110,\n\t3,\n\t210,\n\t238,\n\t249,\n\t26,\n\t235,\n\t106,\n\t153,\n\t124,\n\t37,\n\t115,\n\t75,\n\t221,\n\t84,\n\t101,\n\t148,\n\t212,\n\t7,\n\t216,\n\t173,\n\t89,\n\t23,\n\t19,\n\t169,\n\t95,\n\t194,\n\t233,\n\t174,\n\t219,\n\t95,\n\t169,\n\t14,\n\t122,\n\t49,\n\t179,\n\t204,\n\t208,\n\t139,\n\t109,\n\t82,\n\t23,\n\t151,\n\t88,\n\t63,\n\t230,\n\t68,\n\t227,\n\t158,\n\t22,\n\t161,\n\t148,\n\t108,\n\t191,\n\t164,\n\t80,\n\t229,\n\t101,\n\t92,\n\t180,\n\t197,\n\t95,\n\t254,\n\t118,\n\t230,\n\t14,\n\t31,\n\t104,\n\t177,\n\t5,\n\t59,\n\t138,\n\t150,\n\t89,\n\t217,\n\t142,\n\t92,\n\t195,\n\t111,\n\t86,\n\t58,\n\t72,\n\t85,\n\t53,\n\t173,\n\t235,\n\t157,\n\t7,\n\t125,\n\t8,\n\t215,\n\t246,\n\t132,\n\t247,\n\t14,\n\t14,\n\t64,\n\t187,\n\t175,\n\t175,\n\t215,\n\t240,\n\t162,\n\t239,\n\t194,\n\t218,\n\t233,\n\t147,\n\t167,\n\t129,\n\t128,\n\t133,\n\t61,\n\t61,\n\t64,\n\t83,\n\t12,\n\t80,\n\t185,\n\t157,\n\t50,\n\t183,\n\t156,\n\t74,\n\t116,\n\t213,\n\t203,\n\t104,\n\t52,\n\t200,\n\t72,\n\t196,\n\t222,\n\t10,\n\t61,\n\t122,\n\t93,\n\t58,\n\t242,\n\t132,\n\t205,\n\t250,\n\t43,\n\t105,\n\t159,\n\t25,\n\t18,\n\t32,\n\t162,\n\t222,\n\t245,\n\t190,\n\t133,\n\t172,\n\t242,\n\t212,\n\t233,\n\t47,\n\t247,\n\t245,\n\t174,\n\t247,\n\t48,\n\t191,\n\t114,\n\t210,\n\t13,\n\t255,\n\t191,\n\t27,\n\t196,\n\t199,\n\t9,\n\t62,\n\t205,\n\t165,\n\t241,\n\t214,\n\t113,\n\t111,\n\t165,\n\t176,\n\t95,\n\t232,\n\t151,\n\t202,\n\t189,\n\t6,\n\t46,\n\t140,\n\t123,\n\t51,\n\t83,\n\t170,\n\t157,\n\t43,\n\t166,\n\t159,\n\t228,\n\t37,\n\t24,\n\t149,\n\t124,\n\t218,\n\t215,\n\t255,\n\t13,\n\t187,\n\t113,\n\t20,\n\t83,\n\t187,\n\t196,\n\t72,\n\t34,\n\t171,\n\t84,\n\t110,\n\t80,\n\t76,\n\t147,\n\t28,\n\t184,\n\t143,\n\t0,\n\t21,\n\t168,\n\t40,\n\t212,\n\t38,\n\t72,\n\t143,\n\t6,\n\t61,\n\t156,\n\t2,\n\t133,\n\t101,\n\t160,\n\t111,\n\t1,\n\t219,\n\t243,\n\t121,\n\t117,\n\t226,\n\t221,\n\t50,\n\t16,\n\t219,\n\t239,\n\t27,\n\t57,\n\t158,\n\t23,\n\t119,\n\t118,\n\t230,\n\t201,\n\t134,\n\t232,\n\t252,\n\t89,\n\t182,\n\t133,\n\t71,\n\t43,\n\t181,\n\t47,\n\t174,\n\t252,\n\t12,\n\t120,\n\t97,\n\t3,\n\t234,\n\t204,\n\t138,\n\t99,\n\t104,\n\t224,\n\t45,\n\t100,\n\t26,\n\t154,\n\t116,\n\t180,\n\t63,\n\t234,\n\t156,\n\t39,\n\t194,\n\t20,\n\t119,\n\t163,\n\t165,\n\t253,\n\t11,\n\t37,\n\t126,\n\t55,\n\t57,\n\t58,\n\t249,\n\t239,\n\t195,\n\t216,\n\t210,\n\t217,\n\t200,\n\t34,\n\t185,\n\t86,\n\t200,\n\t214,\n\t50,\n\t185,\n\t31,\n\t226,\n\t123,\n\t168,\n\t246,\n\t196,\n\t214,\n\t245,\n\t57,\n\t94,\n\t174,\n\t209,\n\t211,\n\t151,\n\t255,\n\t80,\n\t237,\n\t113,\n\t222,\n\t254,\n\t201,\n\t175,\n\t86,\n\t250,\n\t182,\n\t54,\n\t46,\n\t105,\n\t242,\n\t64,\n\t203,\n\t100,\n\t241,\n\t35,\n\t11,\n\t78,\n\t137,\n\t252,\n\t68,\n\t7,\n\t112,\n\t57,\n\t163,\n\t118,\n\t180,\n\t216,\n\t57,\n\t205,\n\t89,\n\t195,\n\t42,\n\t89,\n\t149,\n\t120,\n\t236,\n\t79,\n\t87,\n\t107,\n\t225,\n\t28,\n\t138,\n\t61,\n\t64,\n\t67,\n\t213,\n\t238,\n\t55,\n\t55,\n\t127,\n\t236,\n\t213,\n\t14,\n\t171,\n\t162,\n\t54,\n\t13,\n\t78,\n\t104,\n\t117,\n\t247,\n\t113,\n\t149,\n\t201,\n\t13,\n\t22,\n\t57,\n\t48,\n\t154,\n\t104,\n\t249,\n\t86,\n\t167,\n\t1,\n\t201,\n\t170,\n\t167,\n\t138,\n\t26,\n\t177,\n\t130,\n\t198,\n\t251,\n\t10,\n\t215,\n\t80,\n\t190,\n\t111,\n\t37,\n\t77,\n\t36,\n\t170,\n\t77,\n\t161,\n\t24,\n\t75,\n\t36,\n\t132,\n\t255,\n\t137,\n\t142,\n\t40,\n\t43,\n\t207,\n\t89,\n\t122,\n\t66,\n\t113,\n\t48,\n\t167,\n\t169,\n\t252,\n\t60,\n\t197,\n\t94,\n\t38,\n\t158,\n\t244,\n\t34,\n\t46,\n\t169,\n\t165,\n\t230,\n\t138,\n\t244,\n\t104,\n\t69,\n\t233,\n\t242,\n\t68,\n\t211,\n\t71,\n\t30,\n\t47,\n\t44,\n\t111,\n\t211,\n\t203,\n\t74,\n\t136,\n\t246,\n\t173,\n\t225,\n\t7,\n\t113,\n\t100,\n\t88,\n\t18,\n\t109,\n\t9,\n\t39,\n\t156,\n\t72,\n\t130,\n\t44,\n\t63,\n\t16,\n\t115,\n\t90,\n\t227,\n\t107,\n\t53,\n\t74,\n\t51,\n\t122,\n\t247,\n\t129,\n\t121,\n\t231,\n\t49,\n\t227,\n\t141,\n\t129,\n\t220,\n\t255,\n\t200,\n\t85,\n\t117,\n\t171,\n\t232,\n\t90,\n\t104,\n\t223,\n\t176,\n\t156,\n\t93,\n\t197,\n\t159,\n\t139,\n\t152,\n\t8,\n\t143,\n\t87,\n\t176,\n\t163,\n\t174,\n\t87,\n\t0,\n\t195,\n\t208,\n\t187,\n\t2,\n\t59,\n\t247,\n\t244,\n\t130,\n\t62,\n\t92,\n\t155,\n\t16,\n\t133,\n\t114,\n\t190,\n\t236,\n\t114,\n\t82,\n\t28,\n\t121,\n\t245,\n\t163,\n\t190,\n\t138,\n\t222,\n\t251,\n\t118,\n\t146,\n\t83,\n\t142,\n\t248,\n\t115,\n\t42,\n\t131,\n\t87,\n\t17,\n\t251,\n\t195,\n\t84,\n\t87,\n\t220,\n\t33,\n\t236,\n\t106,\n\t171,\n\t12,\n\t69,\n\t125,\n\t123,\n\t100,\n\t184,\n\t35,\n\t176,\n\t53,\n\t240,\n\t179,\n\t121,\n\t11,\n\t155,\n\t101,\n\t201,\n\t116,\n\t205,\n\t202,\n\t187,\n\t127,\n\t55,\n\t81,\n\t122,\n\t154,\n\t30,\n\t171,\n\t50,\n\t195,\n\t51,\n\t225,\n\t199,\n\t179,\n\t69,\n\t138,\n\t189,\n\t5,\n\t170,\n\t60,\n\t166,\n\t255,\n\t14,\n\t156,\n\t196,\n\t61,\n\t148,\n\t247,\n\t42,\n\t90,\n\t221,\n\t220,\n\t123,\n\t103,\n\t93,\n\t176,\n\t253,\n\t248,\n\t183,\n\t38,\n\t155,\n\t60,\n\t178,\n\t162,\n\t124,\n\t127,\n\t192,\n\t33,\n\t241,\n\t166,\n\t64,\n\t190,\n\t65,\n\t215,\n\t188,\n\t132,\n\t114,\n\t174,\n\t204,\n\t74,\n\t238,\n\t186,\n\t197,\n\t104,\n\t211,\n\t93,\n\t54,\n\t248,\n\t200,\n\t243,\n\t237,\n\t196,\n\t154,\n\t184,\n\t181,\n\t247,\n\t144,\n\t194,\n\t53,\n\t175,\n\t57,\n\t241,\n\t169,\n\t227,\n\t217,\n\t7,\n\t103,\n\t203,\n\t160,\n\t179,\n\t178,\n\t25,\n\t39,\n\t224,\n\t221,\n\t190,\n\t214,\n\t111,\n\t164,\n\t229,\n\t47,\n\t44,\n\t186,\n\t117,\n\t247,\n\t37,\n\t174,\n\t200,\n\t248,\n\t155,\n\t173,\n\t71,\n\t56,\n\t53,\n\t153,\n\t205,\n\t158,\n\t245,\n\t135,\n\t52,\n\t102,\n\t255,\n\t79,\n\t102,\n\t125,\n\t82,\n\t194,\n\t28,\n\t72,\n\t117,\n\t79,\n\t108,\n\t95,\n\t6,\n\t81,\n\t77,\n\t223,\n\t201,\n\t228,\n\t90,\n\t20,\n\t155,\n\t71,\n\t190,\n\t61,\n\t132,\n\t68,\n\t120,\n\t120,\n\t55,\n\t161,\n\t205,\n\t152,\n\t99,\n\t49,\n\t159,\n\t219,\n\t23,\n\t201,\n\t197,\n\t113,\n\t49,\n\t183,\n\t138,\n\t83,\n\t221,\n\t23,\n\t195,\n\t68,\n\t123,\n\t204,\n\t92,\n\t181,\n\t38,\n\t161,\n\t115,\n\t178,\n\t235,\n\t124,\n\t111,\n\t230,\n\t146,\n\t238,\n\t132,\n\t225,\n\t26,\n\t199,\n\t71,\n\t81,\n\t129,\n\t44,\n\t176,\n\t103,\n\t241,\n\t135,\n\t249,\n\t128,\n\t87,\n\t22,\n\t0,\n\t158,\n\t77,\n\t77,\n\t33,\n\t103,\n\t196,\n\t143,\n\t16,\n\t91,\n\t39,\n\t242,\n\t155,\n\t167,\n\t167,\n\t82,\n\t174,\n\t173,\n\t221,\n\t74,\n\t129,\n\t124,\n\t84,\n\t103,\n\t233,\n\t90,\n\t221,\n\t30,\n\t126,\n\t225,\n\t227,\n\t198,\n\t71,\n\t134,\n\t69,\n\t229,\n\t68,\n\t45,\n\t57,\n\t175,\n\t55,\n\t249,\n\t88,\n\t252,\n\t206,\n\t31,\n\t52,\n\t117,\n\t252,\n\t219,\n\t135,\n\t21,\n\t130,\n\t122,\n\t130,\n\t103,\n\t67,\n\t135,\n\t100,\n\t100,\n\t147,\n\t56,\n\t118,\n\t188,\n\t228,\n\t157,\n\t147,\n\t142,\n\t43,\n\t29,\n\t167,\n\t221,\n\t106,\n\t239,\n\t38,\n\t124,\n\t197,\n\t33,\n\t47,\n\t41,\n\t211,\n\t23,\n\t162,\n\t115,\n\t227,\n\t55,\n\t101,\n\t21,\n\t87,\n\t34,\n\t157,\n\t116,\n\t181,\n\t93,\n\t131,\n\t201,\n\t130,\n\t176,\n\t71,\n\t18,\n\t243,\n\t186,\n\t83,\n\t240,\n\t204,\n\t119,\n\t11,\n\t149,\n\t132,\n\t241,\n\t151,\n\t131,\n\t197,\n\t238,\n\t255,\n\t37,\n\t215,\n\t78,\n\t128,\n\t206,\n\t191,\n\t186,\n\t192,\n\t17,\n\t94,\n\t141,\n\t186,\n\t191,\n\t220,\n\t254,\n\t246,\n\t11,\n\t253,\n\t35,\n\t239,\n\t199,\n\t30,\n\t165,\n\t143,\n\t125,\n\t247,\n\t79,\n\t221,\n\t225,\n\t224,\n\t46,\n\t174,\n\t125,\n\t165,\n\t169,\n\t209,\n\t138,\n\t45,\n\t79,\n\t5,\n\t125,\n\t249,\n\t204,\n\t195,\n\t183,\n\t24,\n\t238,\n\t149,\n\t94,\n\t92,\n\t148,\n\t76,\n\t83,\n\t189,\n\t206,\n\t199,\n\t8,\n\t182,\n\t131,\n\t107,\n\t225,\n\t255,\n\t238,\n\t32,\n\t95,\n\t199,\n\t111,\n\t110,\n\t55,\n\t232,\n\t142,\n\t127,\n\t222,\n\t45,\n\t88,\n\t97,\n\t98,\n\t95,\n\t6,\n\t182,\n\t28,\n\t2,\n\t67,\n\t157,\n\t10,\n\t113,\n\t154,\n\t184,\n\t207,\n\t98,\n\t94,\n\t91,\n\t151,\n\t158,\n\t58,\n\t114,\n\t86,\n\t21,\n\t1,\n\t39,\n\t87,\n\t16,\n\t232,\n\t27,\n\t142,\n\t125,\n\t77,\n\t160,\n\t184,\n\t205,\n\t124,\n\t155,\n\t16,\n\t33,\n\t40,\n\t39,\n\t69,\n\t121,\n\t171,\n\t91,\n\t87,\n\t173,\n\t6,\n\t195,\n\t50,\n\t213,\n\t49,\n\t121,\n\t53,\n\t122,\n\t61,\n\t219,\n\t117,\n\t255,\n\t50,\n\t110,\n\t115,\n\t180,\n\t201,\n\t161,\n\t95,\n\t253,\n\t97,\n\t145,\n\t86,\n\t197,\n\t75,\n\t66,\n\t127,\n\t163,\n\t174,\n\t221,\n\t87,\n\t127,\n\t189,\n\t31,\n\t239,\n\t27,\n\t77,\n\t119,\n\t242,\n\t18,\n\t80,\n\t172,\n\t121,\n\t13,\n\t122,\n\t135,\n\t169,\n\t229,\n\t210,\n\t222,\n\t251,\n\t171,\n\t166,\n\t113,\n\t42,\n\t174,\n\t42,\n\t243,\n\t26,\n\t22,\n\t153,\n\t183,\n\t17,\n\t145,\n\t195,\n\t4,\n\t235,\n\t194,\n\t139,\n\t69,\n\t216,\n\t200,\n\t129,\n\t71,\n\t50,\n\t5,\n\t251,\n\t10,\n\t170,\n\t119,\n\t37,\n\t85,\n\t229,\n\t196,\n\t145,\n\t112,\n\t65,\n\t241,\n\t210,\n\t104,\n\t133,\n\t4,\n\t108,\n\t141,\n\t174,\n\t214,\n\t80,\n\t85,\n\t81,\n\t217,\n\t77,\n\t195,\n\t132,\n\t26,\n\t245,\n\t75,\n\t11,\n\t60,\n\t66,\n\t189,\n\t225,\n\t8,\n\t165,\n\t159,\n\t122,\n\t114,\n\t43,\n\t20,\n\t21,\n\t9,\n\t227,\n\t101,\n\t199,\n\t204,\n\t157,\n\t236,\n\t71,\n\t160,\n\t84,\n\t212,\n\t1,\n\t144,\n\t82,\n\t218,\n\t108,\n\t171,\n\t231,\n\t137,\n\t235,\n\t88,\n\t84,\n\t30,\n\t8,\n\t61,\n\t157,\n\t95,\n\t74,\n\t138,\n\t252,\n\t217,\n\t170,\n\t219,\n\t129,\n\t135,\n\t156,\n\t241,\n\t164,\n\t157,\n\t20,\n\t198,\n\t136,\n\t150,\n\t230,\n\t19,\n\t98,\n\t227,\n\t113,\n\t223,\n\t100,\n\t177,\n\t126,\n\t184,\n\t202,\n\t81,\n\t211,\n\t198,\n\t171,\n\t229,\n\t13,\n\t167,\n\t150,\n\t41,\n\t201,\n\t218,\n\t4,\n\t27,\n\t124,\n\t85,\n\t46,\n\t44,\n\t109,\n\t152,\n\t115,\n\t189,\n\t205,\n\t124,\n\t74,\n\t2,\n\t113,\n\t231,\n\t62,\n\t225,\n\t246,\n\t124,\n\t241,\n\t171,\n\t143,\n\t29,\n\t6,\n\t114,\n\t224,\n\t131,\n\t17,\n\t79,\n\t178,\n\t93,\n\t75,\n\t87,\n\t135,\n\t169,\n\t223,\n\t80,\n\t191,\n\t156,\n\t202,\n\t76,\n\t44,\n\t214,\n\t2,\n\t121,\n\t190,\n\t71,\n\t216,\n\t21,\n\t161,\n\t65,\n\t175,\n\t211,\n\t221,\n\t9,\n\t123,\n\t213,\n\t127,\n\t126,\n\t78,\n\t37,\n\t12,\n\t115,\n\t80,\n\t201,\n\t150,\n\t142,\n\t253,\n\t22,\n\t234,\n\t225,\n\t137,\n\t43,\n\t93,\n\t110,\n\t0,\n\t96,\n\t234,\n\t74,\n\t147,\n\t176,\n\t9,\n\t254,\n\t171,\n\t162,\n\t228,\n\t136,\n\t140,\n\t245,\n\t96,\n\t195,\n\t158,\n\t220,\n\t36,\n\t35,\n\t144,\n\t225,\n\t191,\n\t109,\n\t144,\n\t143,\n\t216,\n\t229,\n\t99,\n\t104,\n\t159,\n\t212,\n\t176,\n\t123,\n\t189,\n\t154,\n\t102,\n\t188,\n\t138,\n\t163,\n\t199,\n\t126,\n\t31,\n\t33,\n\t193,\n\t17,\n\t213,\n\t137,\n\t42,\n\t185,\n\t26,\n\t175,\n\t45,\n\t11,\n\t32,\n\t103,\n\t51,\n\t3,\n\t130,\n\t43,\n\t171,\n\t126,\n\t119,\n\t89,\n\t205,\n\t25,\n\t129,\n\t173,\n\t232,\n\t155,\n\t181,\n\t16,\n\t136,\n\t1,\n\t130,\n\t188,\n\t137,\n\t124,\n\t24,\n\t108,\n\t154,\n\t171,\n\t62,\n\t115,\n\t31,\n\t237,\n\t96,\n\t48,\n\t254,\n\t105,\n\t133,\n\t101,\n\t2,\n\t164,\n\t171,\n\t109,\n\t181,\n\t98,\n\t50,\n\t137,\n\t204,\n\t244,\n\t246,\n\t245,\n\t224,\n\t239,\n\t161,\n\t177,\n\t146,\n\t104,\n\t134,\n\t72,\n\t196,\n\t52,\n\t233,\n\t159,\n\t87,\n\t240,\n\t21,\n\t48,\n\t168,\n\t235,\n\t90,\n\t184,\n\t54,\n\t207,\n\t33,\n\t254,\n\t43,\n\t164,\n\t175,\n\t242,\n\t98,\n\t135,\n\t128,\n\t31,\n\t18,\n\t125,\n\t178,\n\t133,\n\t210,\n\t245,\n\t80,\n\t222,\n\t212,\n\t12,\n\t62,\n\t107,\n\t3,\n\t142,\n\t197,\n\t163,\n\t124,\n\t126,\n\t130,\n\t235,\n\t137,\n\t253,\n\t19,\n\t92,\n\t27,\n\t208,\n\t231,\n\t151,\n\t109,\n\t70,\n\t219,\n\t165,\n\t70,\n\t175,\n\t94,\n\t152,\n\t80,\n\t193,\n\t198,\n\t84,\n\t28,\n\t168,\n\t160,\n\t154,\n\t15,\n\t195,\n\t94,\n\t77,\n\t33,\n\t59,\n\t20,\n\t225,\n\t239,\n\t114,\n\t55,\n\t255,\n\t250,\n\t130,\n\t155,\n\t110,\n\t212,\n\t106,\n\t207,\n\t216,\n\t27,\n\t161,\n\t250,\n\t28,\n\t216,\n\t76,\n\t208,\n\t222,\n\t146,\n\t250,\n\t91,\n\t146,\n\t93,\n\t124,\n\t156,\n\t192,\n\t90,\n\t99,\n\t164,\n\t242,\n\t135,\n\t168,\n\t16,\n\t39,\n\t189,\n\t210,\n\t85,\n\t76,\n\t174,\n\t236,\n\t37,\n\t254,\n\t91,\n\t76,\n\t211,\n\t94,\n\t79,\n\t255,\n\t50,\n\t15,\n\t107,\n\t58,\n\t175,\n\t118,\n\t241,\n\t102,\n\t44,\n\t213,\n\t71,\n\t48,\n\t134,\n\t107,\n\t194,\n\t36,\n\t54,\n\t180,\n\t130,\n\t173,\n\t26,\n\t30,\n\t143,\n\t13,\n\t81,\n\t254,\n\t243,\n\t151,\n\t176,\n\t221,\n\t198,\n\t170,\n\t86,\n\t221,\n\t129,\n\t176,\n\t59,\n\t249,\n\t172,\n\t231,\n\t46,\n\t220,\n\t111,\n\t108,\n\t173,\n\t5,\n\t157,\n\t236,\n\t217,\n\t160,\n\t183,\n\t48,\n\t145,\n\t81,\n\t114,\n\t216,\n\t146,\n\t118,\n\t17,\n\t75,\n\t11,\n\t71,\n\t246,\n\t133,\n\t45,\n\t146,\n\t172,\n\t141,\n\t220,\n\t39,\n\t207,\n\t219,\n\t76,\n\t80,\n\t213,\n\t246,\n\t151,\n\t66,\n\t94,\n\t12,\n\t18,\n\t104,\n\t208,\n\t122,\n\t21,\n\t145,\n\t232,\n\t105,\n\t134,\n\t158,\n\t71,\n\t105,\n\t96,\n\t212,\n\t24,\n\t120,\n\t129,\n\t184,\n\t211,\n\t204,\n\t128,\n\t95,\n\t187,\n\t130,\n\t102,\n\t102,\n\t20,\n\t137,\n\t207,\n\t99,\n\t184,\n\t231,\n\t219,\n\t249,\n\t23,\n\t182,\n\t243,\n\t227,\n\t149,\n\t56,\n\t31,\n\t172,\n\t113,\n\t130,\n\t184,\n\t13,\n\t163,\n\t220,\n\t5,\n\t239,\n\t185,\n\t194,\n\t104,\n\t226,\n\t246,\n\t12,\n\t166,\n\t182,\n\t67,\n\t41,\n\t42,\n\t142,\n\t20,\n\t42,\n\t160,\n\t179,\n\t239,\n\t44,\n\t115,\n\t184,\n\t223,\n\t21,\n\t34,\n\t92,\n\t125,\n\t200,\n\t218,\n\t51,\n\t165,\n\t18,\n\t105,\n\t53,\n\t165,\n\t135,\n\t181,\n\t166,\n\t85,\n\t18,\n\t163,\n\t248,\n\t230,\n\t125,\n\t137,\n\t122,\n\t100,\n\t229,\n\t96,\n\t20,\n\t166,\n\t52,\n\t130,\n\t181,\n\t22,\n\t228,\n\t152,\n\t1,\n\t68,\n\t53,\n\t200,\n\t18,\n\t231,\n\t43,\n\t23,\n\t175,\n\t174,\n\t54,\n\t178,\n\t119,\n\t232,\n\t118,\n\t139,\n\t195,\n\t227,\n\t116,\n\t29,\n\t216,\n\t99,\n\t166,\n\t244,\n\t158,\n\t189,\n\t201,\n\t184,\n\t229,\n\t198,\n\t164,\n\t243,\n\t50,\n\t135,\n\t133,\n\t118,\n\t118,\n\t201,\n\t105,\n\t71,\n\t112,\n\t197,\n\t18,\n\t248,\n\t41,\n\t176,\n\t18,\n\t234,\n\t134,\n\t162,\n\t195,\n\t57,\n\t99,\n\t248,\n\t200,\n\t75,\n\t200,\n\t47,\n\t167,\n\t246,\n\t212,\n\t250,\n\t64,\n\t239,\n\t255,\n\t1\n];\nvar trieBuffer = {\n\ttype: type,\n\tdata: data\n};\n\n// we may be running in a browser so we make an Uint8Array\n\nvar trieData = new Uint8Array(trieBuffer.data);\nvar trie = new UnicodeTrie(trieData);\n\nvar log2 = Math.log2 || function (n) {\n return Math.log(n) / Math.LN2;\n};\n\nvar bits = function bits(n) {\n return log2(n) + 1 | 0;\n}; // compute the number of bits stored for each field\n\n\nvar CATEGORY_BITS = bits(data$1.categories.length - 1);\nvar COMBINING_BITS = bits(data$1.combiningClasses.length - 1);\nvar SCRIPT_BITS = bits(data$1.scripts.length - 1);\nvar EAW_BITS = bits(data$1.eaw.length - 1);\nvar NUMBER_BITS = 10; // compute shift and mask values for each field\n\nvar CATEGORY_SHIFT = COMBINING_BITS + SCRIPT_BITS + EAW_BITS + NUMBER_BITS;\nvar COMBINING_SHIFT = SCRIPT_BITS + EAW_BITS + NUMBER_BITS;\nvar SCRIPT_SHIFT = EAW_BITS + NUMBER_BITS;\nvar EAW_SHIFT = NUMBER_BITS;\nvar CATEGORY_MASK = (1 << CATEGORY_BITS) - 1;\nvar COMBINING_MASK = (1 << COMBINING_BITS) - 1;\nvar SCRIPT_MASK = (1 << SCRIPT_BITS) - 1;\nvar EAW_MASK = (1 << EAW_BITS) - 1;\nvar NUMBER_MASK = (1 << NUMBER_BITS) - 1;\nvar getCategory = function getCategory(codePoint) {\n var val = trie.get(codePoint);\n return data$1.categories[val >> CATEGORY_SHIFT & CATEGORY_MASK];\n};\nvar getCombiningClass = function getCombiningClass(codePoint) {\n var val = trie.get(codePoint);\n return data$1.combiningClasses[val >> COMBINING_SHIFT & COMBINING_MASK];\n};\nvar getScript = function getScript(codePoint) {\n var val = trie.get(codePoint);\n return data$1.scripts[val >> SCRIPT_SHIFT & SCRIPT_MASK];\n};\nvar getEastAsianWidth = function getEastAsianWidth(codePoint) {\n var val = trie.get(codePoint);\n return data$1.eaw[val >> EAW_SHIFT & EAW_MASK];\n};\nvar getNumericValue = function getNumericValue(codePoint) {\n var val = trie.get(codePoint);\n var num = val & NUMBER_MASK;\n\n if (num === 0) {\n return null;\n }\n\n if (num <= 50) {\n return num - 1;\n }\n\n if (num < 0x1e0) {\n var numerator = (num >> 4) - 12;\n var denominator = (num & 0xf) + 1;\n return numerator / denominator;\n }\n\n if (num < 0x300) {\n val = (num >> 5) - 14;\n\n var _exp = (num & 0x1f) + 2;\n\n while (_exp > 0) {\n val *= 10;\n _exp--;\n }\n\n return val;\n }\n\n val = (num >> 2) - 0xbf;\n var exp = (num & 3) + 1;\n\n while (exp > 0) {\n val *= 60;\n exp--;\n }\n\n return val;\n};\nvar isAlphabetic = function isAlphabetic(codePoint) {\n var category = getCategory(codePoint);\n return category === 'Lu' || category === 'Ll' || category === 'Lt' || category === 'Lm' || category === 'Lo' || category === 'Nl';\n};\nvar isDigit = function isDigit(codePoint) {\n return getCategory(codePoint) === 'Nd';\n};\nvar isPunctuation = function isPunctuation(codePoint) {\n var category = getCategory(codePoint);\n return category === 'Pc' || category === 'Pd' || category === 'Pe' || category === 'Pf' || category === 'Pi' || category === 'Po' || category === 'Ps';\n};\nvar isLowerCase = function isLowerCase(codePoint) {\n return getCategory(codePoint) === 'Ll';\n};\nvar isUpperCase = function isUpperCase(codePoint) {\n return getCategory(codePoint) === 'Lu';\n};\nvar isTitleCase = function isTitleCase(codePoint) {\n return getCategory(codePoint) === 'Lt';\n};\nvar isWhiteSpace = function isWhiteSpace(codePoint) {\n var category = getCategory(codePoint);\n return category === 'Zs' || category === 'Zl' || category === 'Zp';\n};\nvar isBaseForm = function isBaseForm(codePoint) {\n var category = getCategory(codePoint);\n return category === 'Nd' || category === 'No' || category === 'Nl' || category === 'Lu' || category === 'Ll' || category === 'Lt' || category === 'Lm' || category === 'Lo' || category === 'Me' || category === 'Mc';\n};\nvar isMark = function isMark(codePoint) {\n var category = getCategory(codePoint);\n return category === 'Mn' || category === 'Me' || category === 'Mc';\n};\nvar index = {\n getCategory: getCategory,\n getCombiningClass: getCombiningClass,\n getScript: getScript,\n getEastAsianWidth: getEastAsianWidth,\n getNumericValue: getNumericValue,\n isAlphabetic: isAlphabetic,\n isDigit: isDigit,\n isPunctuation: isPunctuation,\n isLowerCase: isLowerCase,\n isUpperCase: isUpperCase,\n isTitleCase: isTitleCase,\n isWhiteSpace: isWhiteSpace,\n isBaseForm: isBaseForm,\n isMark: isMark\n};\n\nexport default index;\nexport { getCategory, getCombiningClass, getEastAsianWidth, getNumericValue, getScript, isAlphabetic, isBaseForm, isDigit, isLowerCase, isMark, isPunctuation, isTitleCase, isUpperCase, isWhiteSpace };\n","(function (root, wrapper) {\n if (typeof define == \"function\" && define.amd) define([], function () {\n return wrapper;\n });else if (typeof module == \"object\" && module.exports) module.exports = wrapper;else (root.nbind = root.nbind || {}).init = wrapper;\n})(this, function (Module, cb) {\n if (typeof Module == \"function\") {\n cb = Module;Module = {};\n }Module.onRuntimeInitialized = function (init, cb) {\n return function () {\n if (init) init.apply(this, arguments);try {\n Module.ccall(\"nbind_init\");\n } catch (err) {\n cb(err);return;\n }cb(null, { bind: Module._nbind_value, reflect: Module.NBind.reflect, queryType: Module.NBind.queryType, toggleLightGC: Module.toggleLightGC, lib: Module });\n };\n }(Module.onRuntimeInitialized, cb);var Module;if (!Module) Module = (typeof Module !== \"undefined\" ? Module : null) || {};var moduleOverrides = {};for (var key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n }var ENVIRONMENT_IS_WEB = false;var ENVIRONMENT_IS_WORKER = false;var ENVIRONMENT_IS_NODE = false;var ENVIRONMENT_IS_SHELL = false;if (Module[\"ENVIRONMENT\"]) {\n if (Module[\"ENVIRONMENT\"] === \"WEB\") {\n ENVIRONMENT_IS_WEB = true;\n } else if (Module[\"ENVIRONMENT\"] === \"WORKER\") {\n ENVIRONMENT_IS_WORKER = true;\n } else if (Module[\"ENVIRONMENT\"] === \"NODE\") {\n ENVIRONMENT_IS_NODE = true;\n } else if (Module[\"ENVIRONMENT\"] === \"SHELL\") {\n ENVIRONMENT_IS_SHELL = true;\n } else {\n throw new Error(\"The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.\");\n }\n } else {\n ENVIRONMENT_IS_WEB = typeof window === \"object\";ENVIRONMENT_IS_WORKER = typeof importScripts === \"function\";ENVIRONMENT_IS_NODE = typeof process === \"object\" && typeof require === \"function\" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\n }if (ENVIRONMENT_IS_NODE) {\n if (!Module[\"print\"]) Module[\"print\"] = console.log;if (!Module[\"printErr\"]) Module[\"printErr\"] = console.warn;var nodeFS;var nodePath;Module[\"read\"] = function shell_read(filename, binary) {\n if (!nodeFS) nodeFS = {}(\"\");if (!nodePath) nodePath = {}(\"\");filename = nodePath[\"normalize\"](filename);var ret = nodeFS[\"readFileSync\"](filename);return binary ? ret : ret.toString();\n };Module[\"readBinary\"] = function readBinary(filename) {\n var ret = Module[\"read\"](filename, true);if (!ret.buffer) {\n ret = new Uint8Array(ret);\n }assert(ret.buffer);return ret;\n };Module[\"load\"] = function load(f) {\n globalEval(read(f));\n };if (!Module[\"thisProgram\"]) {\n if (process[\"argv\"].length > 1) {\n Module[\"thisProgram\"] = process[\"argv\"][1].replace(/\\\\/g, \"/\");\n } else {\n Module[\"thisProgram\"] = \"unknown-program\";\n }\n }Module[\"arguments\"] = process[\"argv\"].slice(2);if (typeof module !== \"undefined\") {\n module[\"exports\"] = Module;\n }process[\"on\"](\"uncaughtException\", function (ex) {\n if (!(ex instanceof ExitStatus)) {\n throw ex;\n }\n });Module[\"inspect\"] = function () {\n return \"[Emscripten Module object]\";\n };\n } else if (ENVIRONMENT_IS_SHELL) {\n if (!Module[\"print\"]) Module[\"print\"] = print;if (typeof printErr != \"undefined\") Module[\"printErr\"] = printErr;if (typeof read != \"undefined\") {\n Module[\"read\"] = read;\n } else {\n Module[\"read\"] = function shell_read() {\n throw \"no read() available\";\n };\n }Module[\"readBinary\"] = function readBinary(f) {\n if (typeof readbuffer === \"function\") {\n return new Uint8Array(readbuffer(f));\n }var data = read(f, \"binary\");assert(typeof data === \"object\");return data;\n };if (typeof scriptArgs != \"undefined\") {\n Module[\"arguments\"] = scriptArgs;\n } else if (typeof arguments != \"undefined\") {\n Module[\"arguments\"] = arguments;\n }if (typeof quit === \"function\") {\n Module[\"quit\"] = function (status, toThrow) {\n quit(status);\n };\n }\n } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n Module[\"read\"] = function shell_read(url) {\n var xhr = new XMLHttpRequest();xhr.open(\"GET\", url, false);xhr.send(null);return xhr.responseText;\n };if (ENVIRONMENT_IS_WORKER) {\n Module[\"readBinary\"] = function readBinary(url) {\n var xhr = new XMLHttpRequest();xhr.open(\"GET\", url, false);xhr.responseType = \"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response);\n };\n }Module[\"readAsync\"] = function readAsync(url, onload, onerror) {\n var xhr = new XMLHttpRequest();xhr.open(\"GET\", url, true);xhr.responseType = \"arraybuffer\";xhr.onload = function xhr_onload() {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n } else {\n onerror();\n }\n };xhr.onerror = onerror;xhr.send(null);\n };if (typeof arguments != \"undefined\") {\n Module[\"arguments\"] = arguments;\n }if (typeof console !== \"undefined\") {\n if (!Module[\"print\"]) Module[\"print\"] = function shell_print(x) {\n console.log(x);\n };if (!Module[\"printErr\"]) Module[\"printErr\"] = function shell_printErr(x) {\n console.warn(x);\n };\n } else {\n var TRY_USE_DUMP = false;if (!Module[\"print\"]) Module[\"print\"] = TRY_USE_DUMP && typeof dump !== \"undefined\" ? function (x) {\n dump(x);\n } : function (x) {};\n }if (ENVIRONMENT_IS_WORKER) {\n Module[\"load\"] = importScripts;\n }if (typeof Module[\"setWindowTitle\"] === \"undefined\") {\n Module[\"setWindowTitle\"] = function (title) {\n document.title = title;\n };\n }\n } else {\n throw \"Unknown runtime environment. Where are we?\";\n }function globalEval(x) {\n eval.call(null, x);\n }if (!Module[\"load\"] && Module[\"read\"]) {\n Module[\"load\"] = function load(f) {\n globalEval(Module[\"read\"](f));\n };\n }if (!Module[\"print\"]) {\n Module[\"print\"] = function () {};\n }if (!Module[\"printErr\"]) {\n Module[\"printErr\"] = Module[\"print\"];\n }if (!Module[\"arguments\"]) {\n Module[\"arguments\"] = [];\n }if (!Module[\"thisProgram\"]) {\n Module[\"thisProgram\"] = \"./this.program\";\n }if (!Module[\"quit\"]) {\n Module[\"quit\"] = function (status, toThrow) {\n throw toThrow;\n };\n }Module.print = Module[\"print\"];Module.printErr = Module[\"printErr\"];Module[\"preRun\"] = [];Module[\"postRun\"] = [];for (var key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n }moduleOverrides = undefined;var Runtime = { setTempRet0: function (value) {\n tempRet0 = value;return value;\n }, getTempRet0: function () {\n return tempRet0;\n }, stackSave: function () {\n return STACKTOP;\n }, stackRestore: function (stackTop) {\n STACKTOP = stackTop;\n }, getNativeTypeSize: function (type) {\n switch (type) {case \"i1\":case \"i8\":\n return 1;case \"i16\":\n return 2;case \"i32\":\n return 4;case \"i64\":\n return 8;case \"float\":\n return 4;case \"double\":\n return 8;default:\n {\n if (type[type.length - 1] === \"*\") {\n return Runtime.QUANTUM_SIZE;\n } else if (type[0] === \"i\") {\n var bits = parseInt(type.substr(1));assert(bits % 8 === 0);return bits / 8;\n } else {\n return 0;\n }\n }}\n }, getNativeFieldSize: function (type) {\n return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);\n }, STACK_ALIGN: 16, prepVararg: function (ptr, type) {\n if (type === \"double\" || type === \"i64\") {\n if (ptr & 7) {\n assert((ptr & 7) === 4);ptr += 4;\n }\n } else {\n assert((ptr & 3) === 0);\n }return ptr;\n }, getAlignSize: function (type, size, vararg) {\n if (!vararg && (type == \"i64\" || type == \"double\")) return 8;if (!type) return Math.min(size, 8);return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);\n }, dynCall: function (sig, ptr, args) {\n if (args && args.length) {\n return Module[\"dynCall_\" + sig].apply(null, [ptr].concat(args));\n } else {\n return Module[\"dynCall_\" + sig].call(null, ptr);\n }\n }, functionPointers: [], addFunction: function (func) {\n for (var i = 0; i < Runtime.functionPointers.length; i++) {\n if (!Runtime.functionPointers[i]) {\n Runtime.functionPointers[i] = func;return 2 * (1 + i);\n }\n }throw \"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.\";\n }, removeFunction: function (index) {\n Runtime.functionPointers[(index - 2) / 2] = null;\n }, warnOnce: function (text) {\n if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};if (!Runtime.warnOnce.shown[text]) {\n Runtime.warnOnce.shown[text] = 1;Module.printErr(text);\n }\n }, funcWrappers: {}, getFuncWrapper: function (func, sig) {\n if (!func) return;assert(sig);if (!Runtime.funcWrappers[sig]) {\n Runtime.funcWrappers[sig] = {};\n }var sigCache = Runtime.funcWrappers[sig];if (!sigCache[func]) {\n if (sig.length === 1) {\n sigCache[func] = function dynCall_wrapper() {\n return Runtime.dynCall(sig, func);\n };\n } else if (sig.length === 2) {\n sigCache[func] = function dynCall_wrapper(arg) {\n return Runtime.dynCall(sig, func, [arg]);\n };\n } else {\n sigCache[func] = function dynCall_wrapper() {\n return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments));\n };\n }\n }return sigCache[func];\n }, getCompilerSetting: function (name) {\n throw \"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work\";\n }, stackAlloc: function (size) {\n var ret = STACKTOP;STACKTOP = STACKTOP + size | 0;STACKTOP = STACKTOP + 15 & -16;return ret;\n }, staticAlloc: function (size) {\n var ret = STATICTOP;STATICTOP = STATICTOP + size | 0;STATICTOP = STATICTOP + 15 & -16;return ret;\n }, dynamicAlloc: function (size) {\n var ret = HEAP32[DYNAMICTOP_PTR >> 2];var end = (ret + size + 15 | 0) & -16;HEAP32[DYNAMICTOP_PTR >> 2] = end;if (end >= TOTAL_MEMORY) {\n var success = enlargeMemory();if (!success) {\n HEAP32[DYNAMICTOP_PTR >> 2] = ret;return 0;\n }\n }return ret;\n }, alignMemory: function (size, quantum) {\n var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16);return ret;\n }, makeBigInt: function (low, high, unsigned) {\n var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * +4294967296 : +(low >>> 0) + +(high | 0) * +4294967296;return ret;\n }, GLOBAL_BASE: 8, QUANTUM_SIZE: 4, __dummy__: 0 };Module[\"Runtime\"] = Runtime;var ABORT = 0;var EXITSTATUS = 0;function assert(condition, text) {\n if (!condition) {\n abort(\"Assertion failed: \" + text);\n }\n }function getCFunc(ident) {\n var func = Module[\"_\" + ident];if (!func) {\n try {\n func = eval(\"_\" + ident);\n } catch (e) {}\n }assert(func, \"Cannot call unknown function \" + ident + \" (perhaps LLVM optimizations or closure removed it?)\");return func;\n }var cwrap, ccall;(function () {\n var JSfuncs = { \"stackSave\": function () {\n Runtime.stackSave();\n }, \"stackRestore\": function () {\n Runtime.stackRestore();\n }, \"arrayToC\": function (arr) {\n var ret = Runtime.stackAlloc(arr.length);writeArrayToMemory(arr, ret);return ret;\n }, \"stringToC\": function (str) {\n var ret = 0;if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;ret = Runtime.stackAlloc(len);stringToUTF8(str, ret, len);\n }return ret;\n } };var toC = { \"string\": JSfuncs[\"stringToC\"], \"array\": JSfuncs[\"arrayToC\"] };ccall = function ccallFunc(ident, returnType, argTypes, args, opts) {\n var func = getCFunc(ident);var cArgs = [];var stack = 0;if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];if (converter) {\n if (stack === 0) stack = Runtime.stackSave();cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }var ret = func.apply(null, cArgs);if (returnType === \"string\") ret = Pointer_stringify(ret);if (stack !== 0) {\n if (opts && opts.async) {\n EmterpreterAsync.asyncFinalizers.push(function () {\n Runtime.stackRestore(stack);\n });return;\n }Runtime.stackRestore(stack);\n }return ret;\n };var sourceRegex = /^function\\s*[a-zA-Z$_0-9]*\\s*\\(([^)]*)\\)\\s*{\\s*([^*]*?)[\\s;]*(?:return\\s*(.*?)[;\\s]*)?}$/;function parseJSFunc(jsfunc) {\n var parsed = jsfunc.toString().match(sourceRegex).slice(1);return { arguments: parsed[0], body: parsed[1], returnValue: parsed[2] };\n }var JSsource = null;function ensureJSsource() {\n if (!JSsource) {\n JSsource = {};for (var fun in JSfuncs) {\n if (JSfuncs.hasOwnProperty(fun)) {\n JSsource[fun] = parseJSFunc(JSfuncs[fun]);\n }\n }\n }\n }cwrap = function cwrap(ident, returnType, argTypes) {\n argTypes = argTypes || [];var cfunc = getCFunc(ident);var numericArgs = argTypes.every(function (type) {\n return type === \"number\";\n });var numericRet = returnType !== \"string\";if (numericRet && numericArgs) {\n return cfunc;\n }var argNames = argTypes.map(function (x, i) {\n return \"$\" + i;\n });var funcstr = \"(function(\" + argNames.join(\",\") + \") {\";var nargs = argTypes.length;if (!numericArgs) {\n ensureJSsource();funcstr += \"var stack = \" + JSsource[\"stackSave\"].body + \";\";for (var i = 0; i < nargs; i++) {\n var arg = argNames[i],\n type = argTypes[i];if (type === \"number\") continue;var convertCode = JSsource[type + \"ToC\"];funcstr += \"var \" + convertCode.arguments + \" = \" + arg + \";\";funcstr += convertCode.body + \";\";funcstr += arg + \"=(\" + convertCode.returnValue + \");\";\n }\n }var cfuncname = parseJSFunc(function () {\n return cfunc;\n }).returnValue;funcstr += \"var ret = \" + cfuncname + \"(\" + argNames.join(\",\") + \");\";if (!numericRet) {\n var strgfy = parseJSFunc(function () {\n return Pointer_stringify;\n }).returnValue;funcstr += \"ret = \" + strgfy + \"(ret);\";\n }if (!numericArgs) {\n ensureJSsource();funcstr += JSsource[\"stackRestore\"].body.replace(\"()\", \"(stack)\") + \";\";\n }funcstr += \"return ret})\";return eval(funcstr);\n };\n })();Module[\"ccall\"] = ccall;Module[\"cwrap\"] = cwrap;function setValue(ptr, value, type, noSafe) {\n type = type || \"i8\";if (type.charAt(type.length - 1) === \"*\") type = \"i32\";switch (type) {case \"i1\":\n HEAP8[ptr >> 0] = value;break;case \"i8\":\n HEAP8[ptr >> 0] = value;break;case \"i16\":\n HEAP16[ptr >> 1] = value;break;case \"i32\":\n HEAP32[ptr >> 2] = value;break;case \"i64\":\n tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= +1 ? tempDouble > +0 ? (Math_min(+Math_floor(tempDouble / +4294967296), +4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / +4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1];break;case \"float\":\n HEAPF32[ptr >> 2] = value;break;case \"double\":\n HEAPF64[ptr >> 3] = value;break;default:\n abort(\"invalid type for setValue: \" + type);}\n }Module[\"setValue\"] = setValue;function getValue(ptr, type, noSafe) {\n type = type || \"i8\";if (type.charAt(type.length - 1) === \"*\") type = \"i32\";switch (type) {case \"i1\":\n return HEAP8[ptr >> 0];case \"i8\":\n return HEAP8[ptr >> 0];case \"i16\":\n return HEAP16[ptr >> 1];case \"i32\":\n return HEAP32[ptr >> 2];case \"i64\":\n return HEAP32[ptr >> 2];case \"float\":\n return HEAPF32[ptr >> 2];case \"double\":\n return HEAPF64[ptr >> 3];default:\n abort(\"invalid type for setValue: \" + type);}return null;\n }Module[\"getValue\"] = getValue;var ALLOC_NORMAL = 0;var ALLOC_STACK = 1;var ALLOC_STATIC = 2;var ALLOC_DYNAMIC = 3;var ALLOC_NONE = 4;Module[\"ALLOC_NORMAL\"] = ALLOC_NORMAL;Module[\"ALLOC_STACK\"] = ALLOC_STACK;Module[\"ALLOC_STATIC\"] = ALLOC_STATIC;Module[\"ALLOC_DYNAMIC\"] = ALLOC_DYNAMIC;Module[\"ALLOC_NONE\"] = ALLOC_NONE;function allocate(slab, types, allocator, ptr) {\n var zeroinit, size;if (typeof slab === \"number\") {\n zeroinit = true;size = slab;\n } else {\n zeroinit = false;size = slab.length;\n }var singleType = typeof types === \"string\" ? types : null;var ret;if (allocator == ALLOC_NONE) {\n ret = ptr;\n } else {\n ret = [typeof _malloc === \"function\" ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));\n }if (zeroinit) {\n var ptr = ret,\n stop;assert((ret & 3) == 0);stop = ret + (size & ~3);for (; ptr < stop; ptr += 4) {\n HEAP32[ptr >> 2] = 0;\n }stop = ret + size;while (ptr < stop) {\n HEAP8[ptr++ >> 0] = 0;\n }return ret;\n }if (singleType === \"i8\") {\n if (slab.subarray || slab.slice) {\n HEAPU8.set(slab, ret);\n } else {\n HEAPU8.set(new Uint8Array(slab), ret);\n }return ret;\n }var i = 0,\n type,\n typeSize,\n previousType;while (i < size) {\n var curr = slab[i];if (typeof curr === \"function\") {\n curr = Runtime.getFunctionIndex(curr);\n }type = singleType || types[i];if (type === 0) {\n i++;continue;\n }if (type == \"i64\") type = \"i32\";setValue(ret + i, curr, type);if (previousType !== type) {\n typeSize = Runtime.getNativeTypeSize(type);previousType = type;\n }i += typeSize;\n }return ret;\n }Module[\"allocate\"] = allocate;function getMemory(size) {\n if (!staticSealed) return Runtime.staticAlloc(size);if (!runtimeInitialized) return Runtime.dynamicAlloc(size);return _malloc(size);\n }Module[\"getMemory\"] = getMemory;function Pointer_stringify(ptr, length) {\n if (length === 0 || !ptr) return \"\";var hasUtf = 0;var t;var i = 0;while (1) {\n t = HEAPU8[ptr + i >> 0];hasUtf |= t;if (t == 0 && !length) break;i++;if (length && i == length) break;\n }if (!length) length = i;var ret = \"\";if (hasUtf < 128) {\n var MAX_CHUNK = 1024;var curr;while (length > 0) {\n curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));ret = ret ? ret + curr : curr;ptr += MAX_CHUNK;length -= MAX_CHUNK;\n }return ret;\n }return Module[\"UTF8ToString\"](ptr);\n }Module[\"Pointer_stringify\"] = Pointer_stringify;function AsciiToString(ptr) {\n var str = \"\";while (1) {\n var ch = HEAP8[ptr++ >> 0];if (!ch) return str;str += String.fromCharCode(ch);\n }\n }Module[\"AsciiToString\"] = AsciiToString;function stringToAscii(str, outPtr) {\n return writeAsciiToMemory(str, outPtr, false);\n }Module[\"stringToAscii\"] = stringToAscii;var UTF8Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf8\") : undefined;function UTF8ArrayToString(u8Array, idx) {\n var endPtr = idx;while (u8Array[endPtr]) ++endPtr;if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\n } else {\n var u0, u1, u2, u3, u4, u5;var str = \"\";while (1) {\n u0 = u8Array[idx++];if (!u0) return str;if (!(u0 & 128)) {\n str += String.fromCharCode(u0);continue;\n }u1 = u8Array[idx++] & 63;if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);continue;\n }u2 = u8Array[idx++] & 63;if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u3 = u8Array[idx++] & 63;if ((u0 & 248) == 240) {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3;\n } else {\n u4 = u8Array[idx++] & 63;if ((u0 & 252) == 248) {\n u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4;\n } else {\n u5 = u8Array[idx++] & 63;u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5;\n }\n }\n }if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n }\n }Module[\"UTF8ArrayToString\"] = UTF8ArrayToString;function UTF8ToString(ptr) {\n return UTF8ArrayToString(HEAPU8, ptr);\n }Module[\"UTF8ToString\"] = UTF8ToString;function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;var startIdx = outIdx;var endIdx = outIdx + maxBytesToWrite - 1;for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;if (u <= 127) {\n if (outIdx >= endIdx) break;outU8Array[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;outU8Array[outIdx++] = 192 | u >> 6;outU8Array[outIdx++] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;outU8Array[outIdx++] = 224 | u >> 12;outU8Array[outIdx++] = 128 | u >> 6 & 63;outU8Array[outIdx++] = 128 | u & 63;\n } else if (u <= 2097151) {\n if (outIdx + 3 >= endIdx) break;outU8Array[outIdx++] = 240 | u >> 18;outU8Array[outIdx++] = 128 | u >> 12 & 63;outU8Array[outIdx++] = 128 | u >> 6 & 63;outU8Array[outIdx++] = 128 | u & 63;\n } else if (u <= 67108863) {\n if (outIdx + 4 >= endIdx) break;outU8Array[outIdx++] = 248 | u >> 24;outU8Array[outIdx++] = 128 | u >> 18 & 63;outU8Array[outIdx++] = 128 | u >> 12 & 63;outU8Array[outIdx++] = 128 | u >> 6 & 63;outU8Array[outIdx++] = 128 | u & 63;\n } else {\n if (outIdx + 5 >= endIdx) break;outU8Array[outIdx++] = 252 | u >> 30;outU8Array[outIdx++] = 128 | u >> 24 & 63;outU8Array[outIdx++] = 128 | u >> 18 & 63;outU8Array[outIdx++] = 128 | u >> 12 & 63;outU8Array[outIdx++] = 128 | u >> 6 & 63;outU8Array[outIdx++] = 128 | u & 63;\n }\n }outU8Array[outIdx] = 0;return outIdx - startIdx;\n }Module[\"stringToUTF8Array\"] = stringToUTF8Array;function stringToUTF8(str, outPtr, maxBytesToWrite) {\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n }Module[\"stringToUTF8\"] = stringToUTF8;function lengthBytesUTF8(str) {\n var len = 0;for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;if (u <= 127) {\n ++len;\n } else if (u <= 2047) {\n len += 2;\n } else if (u <= 65535) {\n len += 3;\n } else if (u <= 2097151) {\n len += 4;\n } else if (u <= 67108863) {\n len += 5;\n } else {\n len += 6;\n }\n }return len;\n }Module[\"lengthBytesUTF8\"] = lengthBytesUTF8;var UTF16Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;function demangle(func) {\n var __cxa_demangle_func = Module[\"___cxa_demangle\"] || Module[\"__cxa_demangle\"];if (__cxa_demangle_func) {\n try {\n var s = func.substr(1);var len = lengthBytesUTF8(s) + 1;var buf = _malloc(len);stringToUTF8(s, buf, len);var status = _malloc(4);var ret = __cxa_demangle_func(buf, 0, 0, status);if (getValue(status, \"i32\") === 0 && ret) {\n return Pointer_stringify(ret);\n }\n } catch (e) {} finally {\n if (buf) _free(buf);if (status) _free(status);if (ret) _free(ret);\n }return func;\n }Runtime.warnOnce(\"warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling\");return func;\n }function demangleAll(text) {\n var regex = /__Z[\\w\\d_]+/g;return text.replace(regex, function (x) {\n var y = demangle(x);return x === y ? x : x + \" [\" + y + \"]\";\n });\n }function jsStackTrace() {\n var err = new Error();if (!err.stack) {\n try {\n throw new Error(0);\n } catch (e) {\n err = e;\n }if (!err.stack) {\n return \"(no stack trace available)\";\n }\n }return err.stack.toString();\n }function stackTrace() {\n var js = jsStackTrace();if (Module[\"extraStackTrace\"]) js += \"\\n\" + Module[\"extraStackTrace\"]();return demangleAll(js);\n }Module[\"stackTrace\"] = stackTrace;var HEAP, buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;function updateGlobalBufferViews() {\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(buffer);Module[\"HEAP16\"] = HEAP16 = new Int16Array(buffer);Module[\"HEAP32\"] = HEAP32 = new Int32Array(buffer);Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(buffer);Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(buffer);Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(buffer);Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(buffer);Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(buffer);\n }var STATIC_BASE, STATICTOP, staticSealed;var STACK_BASE, STACKTOP, STACK_MAX;var DYNAMIC_BASE, DYNAMICTOP_PTR;STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;staticSealed = false;function abortOnCannotGrowMemory() {\n abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \" + TOTAL_MEMORY + \", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \");\n }function enlargeMemory() {\n abortOnCannotGrowMemory();\n }var TOTAL_STACK = Module[\"TOTAL_STACK\"] || 5242880;var TOTAL_MEMORY = Module[\"TOTAL_MEMORY\"] || 268435456;if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr(\"TOTAL_MEMORY should be larger than TOTAL_STACK, was \" + TOTAL_MEMORY + \"! (TOTAL_STACK=\" + TOTAL_STACK + \")\");if (Module[\"buffer\"]) {\n buffer = Module[\"buffer\"];\n } else {\n {\n buffer = new ArrayBuffer(TOTAL_MEMORY);\n }\n }updateGlobalBufferViews();function getTotalMemory() {\n return TOTAL_MEMORY;\n }HEAP32[0] = 1668509029;HEAP16[1] = 25459;if (HEAPU8[2] !== 115 || HEAPU8[3] !== 99) throw \"Runtime error: expected the system to be little-endian!\";Module[\"HEAP\"] = HEAP;Module[\"buffer\"] = buffer;Module[\"HEAP8\"] = HEAP8;Module[\"HEAP16\"] = HEAP16;Module[\"HEAP32\"] = HEAP32;Module[\"HEAPU8\"] = HEAPU8;Module[\"HEAPU16\"] = HEAPU16;Module[\"HEAPU32\"] = HEAPU32;Module[\"HEAPF32\"] = HEAPF32;Module[\"HEAPF64\"] = HEAPF64;function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();if (typeof callback == \"function\") {\n callback();continue;\n }var func = callback.func;if (typeof func === \"number\") {\n if (callback.arg === undefined) {\n Module[\"dynCall_v\"](func);\n } else {\n Module[\"dynCall_vi\"](func, callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n }var __ATPRERUN__ = [];var __ATINIT__ = [];var __ATMAIN__ = [];var __ATEXIT__ = [];var __ATPOSTRUN__ = [];var runtimeInitialized = false;var runtimeExited = false;function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [Module[\"preRun\"]];while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }callRuntimeCallbacks(__ATPRERUN__);\n }function ensureInitRuntime() {\n if (runtimeInitialized) return;runtimeInitialized = true;callRuntimeCallbacks(__ATINIT__);\n }function preMain() {\n callRuntimeCallbacks(__ATMAIN__);\n }function exitRuntime() {\n callRuntimeCallbacks(__ATEXIT__);runtimeExited = true;\n }function postRun() {\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [Module[\"postRun\"]];while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }callRuntimeCallbacks(__ATPOSTRUN__);\n }function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }Module[\"addOnPreRun\"] = addOnPreRun;function addOnInit(cb) {\n __ATINIT__.unshift(cb);\n }Module[\"addOnInit\"] = addOnInit;function addOnPreMain(cb) {\n __ATMAIN__.unshift(cb);\n }Module[\"addOnPreMain\"] = addOnPreMain;function addOnExit(cb) {\n __ATEXIT__.unshift(cb);\n }Module[\"addOnExit\"] = addOnExit;function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }Module[\"addOnPostRun\"] = addOnPostRun;function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;var u8array = new Array(len);var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);if (dontAddNull) u8array.length = numBytesWritten;return u8array;\n }Module[\"intArrayFromString\"] = intArrayFromString;function intArrayToString(array) {\n var ret = [];for (var i = 0; i < array.length; i++) {\n var chr = array[i];if (chr > 255) {\n chr &= 255;\n }ret.push(String.fromCharCode(chr));\n }return ret.join(\"\");\n }Module[\"intArrayToString\"] = intArrayToString;function writeStringToMemory(string, buffer, dontAddNull) {\n Runtime.warnOnce(\"writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!\");var lastChar, end;if (dontAddNull) {\n end = buffer + lengthBytesUTF8(string);lastChar = HEAP8[end];\n }stringToUTF8(string, buffer, Infinity);if (dontAddNull) HEAP8[end] = lastChar;\n }Module[\"writeStringToMemory\"] = writeStringToMemory;function writeArrayToMemory(array, buffer) {\n HEAP8.set(array, buffer);\n }Module[\"writeArrayToMemory\"] = writeArrayToMemory;function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n }Module[\"writeAsciiToMemory\"] = writeAsciiToMemory;if (!Math[\"imul\"] || Math[\"imul\"](4294967295, 5) !== -5) Math[\"imul\"] = function imul(a, b) {\n var ah = a >>> 16;var al = a & 65535;var bh = b >>> 16;var bl = b & 65535;return al * bl + (ah * bl + al * bh << 16) | 0;\n };Math.imul = Math[\"imul\"];if (!Math[\"fround\"]) {\n var froundBuffer = new Float32Array(1);Math[\"fround\"] = function (x) {\n froundBuffer[0] = x;return froundBuffer[0];\n };\n }Math.fround = Math[\"fround\"];if (!Math[\"clz32\"]) Math[\"clz32\"] = function (x) {\n x = x >>> 0;for (var i = 0; i < 32; i++) {\n if (x & 1 << 31 - i) return i;\n }return 32;\n };Math.clz32 = Math[\"clz32\"];if (!Math[\"trunc\"]) Math[\"trunc\"] = function (x) {\n return x < 0 ? Math.ceil(x) : Math.floor(x);\n };Math.trunc = Math[\"trunc\"];var Math_abs = Math.abs;var Math_cos = Math.cos;var Math_sin = Math.sin;var Math_tan = Math.tan;var Math_acos = Math.acos;var Math_asin = Math.asin;var Math_atan = Math.atan;var Math_atan2 = Math.atan2;var Math_exp = Math.exp;var Math_log = Math.log;var Math_sqrt = Math.sqrt;var Math_ceil = Math.ceil;var Math_floor = Math.floor;var Math_pow = Math.pow;var Math_imul = Math.imul;var Math_fround = Math.fround;var Math_round = Math.round;var Math_min = Math.min;var Math_clz32 = Math.clz32;var Math_trunc = Math.trunc;var runDependencies = 0;var runDependencyWatcher = null;var dependenciesFulfilled = null;function getUniqueRunDependency(id) {\n return id;\n }function addRunDependency(id) {\n runDependencies++;if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n }Module[\"addRunDependency\"] = addRunDependency;function removeRunDependency(id) {\n runDependencies--;if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);runDependencyWatcher = null;\n }if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;dependenciesFulfilled = null;callback();\n }\n }\n }Module[\"removeRunDependency\"] = removeRunDependency;Module[\"preloadedImages\"] = {};Module[\"preloadedAudios\"] = {};var ASM_CONSTS = [function ($0, $1, $2, $3, $4, $5, $6, $7) {\n return _nbind.callbackSignatureList[$0].apply(this, arguments);\n }];function _emscripten_asm_const_iiiiiiii(code, a0, a1, a2, a3, a4, a5, a6) {\n return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5, a6);\n }function _emscripten_asm_const_iiiii(code, a0, a1, a2, a3) {\n return ASM_CONSTS[code](a0, a1, a2, a3);\n }function _emscripten_asm_const_iiidddddd(code, a0, a1, a2, a3, a4, a5, a6, a7) {\n return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5, a6, a7);\n }function _emscripten_asm_const_iiididi(code, a0, a1, a2, a3, a4, a5) {\n return ASM_CONSTS[code](a0, a1, a2, a3, a4, a5);\n }function _emscripten_asm_const_iiii(code, a0, a1, a2) {\n return ASM_CONSTS[code](a0, a1, a2);\n }function _emscripten_asm_const_iiiid(code, a0, a1, a2, a3) {\n return ASM_CONSTS[code](a0, a1, a2, a3);\n }function _emscripten_asm_const_iiiiii(code, a0, a1, a2, a3, a4) {\n return ASM_CONSTS[code](a0, a1, a2, a3, a4);\n }STATIC_BASE = Runtime.GLOBAL_BASE;STATICTOP = STATIC_BASE + 12800;__ATINIT__.push({ func: function () {\n __GLOBAL__sub_I_Yoga_cpp();\n } }, { func: function () {\n __GLOBAL__sub_I_nbind_cc();\n } }, { func: function () {\n __GLOBAL__sub_I_common_cc();\n } }, { func: function () {\n __GLOBAL__sub_I_Binding_cc();\n } });allocate([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 192, 127, 0, 0, 192, 127, 0, 0, 192, 127, 3, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 3, 0, 0, 0, 0, 0, 192, 127, 3, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 127, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 128, 191, 0, 0, 128, 191, 0, 0, 192, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 190, 12, 0, 0, 200, 12, 0, 0, 208, 12, 0, 0, 216, 12, 0, 0, 230, 12, 0, 0, 242, 12, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 192, 127, 3, 0, 0, 0, 180, 45, 0, 0, 181, 45, 0, 0, 182, 45, 0, 0, 181, 45, 0, 0, 182, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 183, 45, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 184, 45, 0, 0, 185, 45, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 182, 45, 0, 0, 186, 45, 0, 0, 185, 45, 0, 0, 148, 4, 0, 0, 3, 0, 0, 0, 187, 45, 0, 0, 164, 4, 0, 0, 188, 45, 0, 0, 2, 0, 0, 0, 189, 45, 0, 0, 164, 4, 0, 0, 188, 45, 0, 0, 185, 45, 0, 0, 164, 4, 0, 0, 185, 45, 0, 0, 164, 4, 0, 0, 188, 45, 0, 0, 181, 45, 0, 0, 182, 45, 0, 0, 181, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 183, 45, 0, 0, 182, 45, 0, 0, 181, 45, 0, 0, 190, 45, 0, 0, 190, 45, 0, 0, 182, 45, 0, 0, 182, 45, 0, 0, 185, 45, 0, 0, 181, 45, 0, 0, 185, 45, 0, 0, 182, 45, 0, 0, 181, 45, 0, 0, 185, 45, 0, 0, 182, 45, 0, 0, 185, 45, 0, 0, 48, 5, 0, 0, 3, 0, 0, 0, 56, 5, 0, 0, 1, 0, 0, 0, 189, 45, 0, 0, 185, 45, 0, 0, 164, 4, 0, 0, 76, 5, 0, 0, 2, 0, 0, 0, 191, 45, 0, 0, 186, 45, 0, 0, 182, 45, 0, 0, 185, 45, 0, 0, 192, 45, 0, 0, 185, 45, 0, 0, 182, 45, 0, 0, 186, 45, 0, 0, 185, 45, 0, 0, 76, 5, 0, 0, 76, 5, 0, 0, 136, 5, 0, 0, 182, 45, 0, 0, 181, 45, 0, 0, 2, 0, 0, 0, 190, 45, 0, 0, 136, 5, 0, 0, 56, 19, 0, 0, 156, 5, 0, 0, 2, 0, 0, 0, 184, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 204, 5, 0, 0, 181, 45, 0, 0, 181, 45, 0, 0, 2, 0, 0, 0, 180, 45, 0, 0, 204, 5, 0, 0, 2, 0, 0, 0, 195, 45, 0, 0, 236, 5, 0, 0, 97, 19, 0, 0, 198, 45, 0, 0, 211, 45, 0, 0, 212, 45, 0, 0, 213, 45, 0, 0, 214, 45, 0, 0, 215, 45, 0, 0, 188, 45, 0, 0, 182, 45, 0, 0, 216, 45, 0, 0, 217, 45, 0, 0, 218, 45, 0, 0, 219, 45, 0, 0, 192, 45, 0, 0, 181, 45, 0, 0, 0, 0, 0, 0, 185, 45, 0, 0, 110, 19, 0, 0, 186, 45, 0, 0, 115, 19, 0, 0, 221, 45, 0, 0, 120, 19, 0, 0, 148, 4, 0, 0, 132, 19, 0, 0, 96, 6, 0, 0, 145, 19, 0, 0, 222, 45, 0, 0, 164, 19, 0, 0, 223, 45, 0, 0, 173, 19, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 104, 6, 0, 0, 1, 0, 0, 0, 187, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 13, 0, 0, 0, 185, 45, 0, 0, 224, 45, 0, 0, 164, 6, 0, 0, 188, 45, 0, 0, 172, 6, 0, 0, 180, 6, 0, 0, 2, 0, 0, 0, 188, 6, 0, 0, 7, 0, 0, 0, 224, 45, 0, 0, 7, 0, 0, 0, 164, 6, 0, 0, 1, 0, 0, 0, 213, 45, 0, 0, 185, 45, 0, 0, 224, 45, 0, 0, 172, 6, 0, 0, 185, 45, 0, 0, 224, 45, 0, 0, 164, 6, 0, 0, 185, 45, 0, 0, 224, 45, 0, 0, 211, 45, 0, 0, 211, 45, 0, 0, 222, 45, 0, 0, 211, 45, 0, 0, 224, 45, 0, 0, 222, 45, 0, 0, 211, 45, 0, 0, 224, 45, 0, 0, 172, 6, 0, 0, 222, 45, 0, 0, 211, 45, 0, 0, 224, 45, 0, 0, 188, 45, 0, 0, 222, 45, 0, 0, 211, 45, 0, 0, 40, 7, 0, 0, 188, 45, 0, 0, 2, 0, 0, 0, 224, 45, 0, 0, 185, 45, 0, 0, 188, 45, 0, 0, 188, 45, 0, 0, 188, 45, 0, 0, 188, 45, 0, 0, 222, 45, 0, 0, 224, 45, 0, 0, 148, 4, 0, 0, 185, 45, 0, 0, 148, 4, 0, 0, 148, 4, 0, 0, 148, 4, 0, 0, 148, 4, 0, 0, 148, 4, 0, 0, 185, 45, 0, 0, 164, 6, 0, 0, 148, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 1, 0, 0, 0, 16, 0, 0, 0, 148, 7, 0, 0, 2, 0, 0, 0, 225, 45, 0, 0, 183, 45, 0, 0, 188, 45, 0, 0, 168, 7, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 234, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 9, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 242, 45, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 97, 108, 108, 111, 99, 97, 116, 101, 32, 109, 101, 109, 111, 114, 121, 32, 102, 111, 114, 32, 110, 111, 100, 101, 0, 67, 97, 110, 110, 111, 116, 32, 114, 101, 115, 101, 116, 32, 97, 32, 110, 111, 100, 101, 32, 119, 104, 105, 99, 104, 32, 115, 116, 105, 108, 108, 32, 104, 97, 115, 32, 99, 104, 105, 108, 100, 114, 101, 110, 32, 97, 116, 116, 97, 99, 104, 101, 100, 0, 67, 97, 110, 110, 111, 116, 32, 114, 101, 115, 101, 116, 32, 97, 32, 110, 111, 100, 101, 32, 115, 116, 105, 108, 108, 32, 97, 116, 116, 97, 99, 104, 101, 100, 32, 116, 111, 32, 97, 32, 112, 97, 114, 101, 110, 116, 0, 67, 111, 117, 108, 100, 32, 110, 111, 116, 32, 97, 108, 108, 111, 99, 97, 116, 101, 32, 109, 101, 109, 111, 114, 121, 32, 102, 111, 114, 32, 99, 111, 110, 102, 105, 103, 0, 67, 97, 110, 110, 111, 116, 32, 115, 101, 116, 32, 109, 101, 97, 115, 117, 114, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 58, 32, 78, 111, 100, 101, 115, 32, 119, 105, 116, 104, 32, 109, 101, 97, 115, 117, 114, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 32, 99, 97, 110, 110, 111, 116, 32, 104, 97, 118, 101, 32, 99, 104, 105, 108, 100, 114, 101, 110, 46, 0, 67, 104, 105, 108, 100, 32, 97, 108, 114, 101, 97, 100, 121, 32, 104, 97, 115, 32, 97, 32, 112, 97, 114, 101, 110, 116, 44, 32, 105, 116, 32, 109, 117, 115, 116, 32, 98, 101, 32, 114, 101, 109, 111, 118, 101, 100, 32, 102, 105, 114, 115, 116, 46, 0, 67, 97, 110, 110, 111, 116, 32, 97, 100, 100, 32, 99, 104, 105, 108, 100, 58, 32, 78, 111, 100, 101, 115, 32, 119, 105, 116, 104, 32, 109, 101, 97, 115, 117, 114, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 32, 99, 97, 110, 110, 111, 116, 32, 104, 97, 118, 101, 32, 99, 104, 105, 108, 100, 114, 101, 110, 46, 0, 79, 110, 108, 121, 32, 108, 101, 97, 102, 32, 110, 111, 100, 101, 115, 32, 119, 105, 116, 104, 32, 99, 117, 115, 116, 111, 109, 32, 109, 101, 97, 115, 117, 114, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 115, 115, 104, 111, 117, 108, 100, 32, 109, 97, 110, 117, 97, 108, 108, 121, 32, 109, 97, 114, 107, 32, 116, 104, 101, 109, 115, 101, 108, 118, 101, 115, 32, 97, 115, 32, 100, 105, 114, 116, 121, 0, 67, 97, 110, 110, 111, 116, 32, 103, 101, 116, 32, 108, 97, 121, 111, 117, 116, 32, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 32, 111, 102, 32, 109, 117, 108, 116, 105, 45, 101, 100, 103, 101, 32, 115, 104, 111, 114, 116, 104, 97, 110, 100, 115, 0, 37, 115, 37, 100, 46, 123, 91, 115, 107, 105, 112, 112, 101, 100, 93, 32, 0, 119, 109, 58, 32, 37, 115, 44, 32, 104, 109, 58, 32, 37, 115, 44, 32, 97, 119, 58, 32, 37, 102, 32, 97, 104, 58, 32, 37, 102, 32, 61, 62, 32, 100, 58, 32, 40, 37, 102, 44, 32, 37, 102, 41, 32, 37, 115, 10, 0, 37, 115, 37, 100, 46, 123, 37, 115, 0, 42, 0, 119, 109, 58, 32, 37, 115, 44, 32, 104, 109, 58, 32, 37, 115, 44, 32, 97, 119, 58, 32, 37, 102, 32, 97, 104, 58, 32, 37, 102, 32, 37, 115, 10, 0, 37, 115, 37, 100, 46, 125, 37, 115, 0, 119, 109, 58, 32, 37, 115, 44, 32, 104, 109, 58, 32, 37, 115, 44, 32, 100, 58, 32, 40, 37, 102, 44, 32, 37, 102, 41, 32, 37, 115, 10, 0, 79, 117, 116, 32, 111, 102, 32, 99, 97, 99, 104, 101, 32, 101, 110, 116, 114, 105, 101, 115, 33, 10, 0, 83, 99, 97, 108, 101, 32, 102, 97, 99, 116, 111, 114, 32, 115, 104, 111, 117, 108, 100, 32, 110, 111, 116, 32, 98, 101, 32, 108, 101, 115, 115, 32, 116, 104, 97, 110, 32, 122, 101, 114, 111, 0, 105, 110, 105, 116, 105, 97, 108, 0, 37, 115, 10, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 85, 78, 68, 69, 70, 73, 78, 69, 68, 0, 69, 88, 65, 67, 84, 76, 89, 0, 65, 84, 95, 77, 79, 83, 84, 0, 76, 65, 89, 95, 85, 78, 68, 69, 70, 73, 78, 69, 68, 0, 76, 65, 89, 95, 69, 88, 65, 67, 84, 76, 89, 0, 76, 65, 89, 95, 65, 84, 95, 77, 79, 83, 84, 0, 97, 118, 97, 105, 108, 97, 98, 108, 101, 87, 105, 100, 116, 104, 32, 105, 115, 32, 105, 110, 100, 101, 102, 105, 110, 105, 116, 101, 32, 115, 111, 32, 119, 105, 100, 116, 104, 77, 101, 97, 115, 117, 114, 101, 77, 111, 100, 101, 32, 109, 117, 115, 116, 32, 98, 101, 32, 89, 71, 77, 101, 97, 115, 117, 114, 101, 77, 111, 100, 101, 85, 110, 100, 101, 102, 105, 110, 101, 100, 0, 97, 118, 97, 105, 108, 97, 98, 108, 101, 72, 101, 105, 103, 104, 116, 32, 105, 115, 32, 105, 110, 100, 101, 102, 105, 110, 105, 116, 101, 32, 115, 111, 32, 104, 101, 105, 103, 104, 116, 77, 101, 97, 115, 117, 114, 101, 77, 111, 100, 101, 32, 109, 117, 115, 116, 32, 98, 101, 32, 89, 71, 77, 101, 97, 115, 117, 114, 101, 77, 111, 100, 101, 85, 110, 100, 101, 102, 105, 110, 101, 100, 0, 102, 108, 101, 120, 0, 115, 116, 114, 101, 116, 99, 104, 0, 109, 117, 108, 116, 105, 108, 105, 110, 101, 45, 115, 116, 114, 101, 116, 99, 104, 0, 69, 120, 112, 101, 99, 116, 101, 100, 32, 110, 111, 100, 101, 32, 116, 111, 32, 104, 97, 118, 101, 32, 99, 117, 115, 116, 111, 109, 32, 109, 101, 97, 115, 117, 114, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 0, 109, 101, 97, 115, 117, 114, 101, 0, 69, 120, 112, 101, 99, 116, 32, 99, 117, 115, 116, 111, 109, 32, 98, 97, 115, 101, 108, 105, 110, 101, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 116, 111, 32, 110, 111, 116, 32, 114, 101, 116, 117, 114, 110, 32, 78, 97, 78, 0, 97, 98, 115, 45, 109, 101, 97, 115, 117, 114, 101, 0, 97, 98, 115, 45, 108, 97, 121, 111, 117, 116, 0, 78, 111, 100, 101, 0, 99, 114, 101, 97, 116, 101, 68, 101, 102, 97, 117, 108, 116, 0, 99, 114, 101, 97, 116, 101, 87, 105, 116, 104, 67, 111, 110, 102, 105, 103, 0, 100, 101, 115, 116, 114, 111, 121, 0, 114, 101, 115, 101, 116, 0, 99, 111, 112, 121, 83, 116, 121, 108, 101, 0, 115, 101, 116, 80, 111, 115, 105, 116, 105, 111, 110, 84, 121, 112, 101, 0, 115, 101, 116, 80, 111, 115, 105, 116, 105, 111, 110, 0, 115, 101, 116, 80, 111, 115, 105, 116, 105, 111, 110, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 65, 108, 105, 103, 110, 67, 111, 110, 116, 101, 110, 116, 0, 115, 101, 116, 65, 108, 105, 103, 110, 73, 116, 101, 109, 115, 0, 115, 101, 116, 65, 108, 105, 103, 110, 83, 101, 108, 102, 0, 115, 101, 116, 70, 108, 101, 120, 68, 105, 114, 101, 99, 116, 105, 111, 110, 0, 115, 101, 116, 70, 108, 101, 120, 87, 114, 97, 112, 0, 115, 101, 116, 74, 117, 115, 116, 105, 102, 121, 67, 111, 110, 116, 101, 110, 116, 0, 115, 101, 116, 77, 97, 114, 103, 105, 110, 0, 115, 101, 116, 77, 97, 114, 103, 105, 110, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 77, 97, 114, 103, 105, 110, 65, 117, 116, 111, 0, 115, 101, 116, 79, 118, 101, 114, 102, 108, 111, 119, 0, 115, 101, 116, 68, 105, 115, 112, 108, 97, 121, 0, 115, 101, 116, 70, 108, 101, 120, 0, 115, 101, 116, 70, 108, 101, 120, 66, 97, 115, 105, 115, 0, 115, 101, 116, 70, 108, 101, 120, 66, 97, 115, 105, 115, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 70, 108, 101, 120, 71, 114, 111, 119, 0, 115, 101, 116, 70, 108, 101, 120, 83, 104, 114, 105, 110, 107, 0, 115, 101, 116, 87, 105, 100, 116, 104, 0, 115, 101, 116, 87, 105, 100, 116, 104, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 87, 105, 100, 116, 104, 65, 117, 116, 111, 0, 115, 101, 116, 72, 101, 105, 103, 104, 116, 0, 115, 101, 116, 72, 101, 105, 103, 104, 116, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 72, 101, 105, 103, 104, 116, 65, 117, 116, 111, 0, 115, 101, 116, 77, 105, 110, 87, 105, 100, 116, 104, 0, 115, 101, 116, 77, 105, 110, 87, 105, 100, 116, 104, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 77, 105, 110, 72, 101, 105, 103, 104, 116, 0, 115, 101, 116, 77, 105, 110, 72, 101, 105, 103, 104, 116, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 77, 97, 120, 87, 105, 100, 116, 104, 0, 115, 101, 116, 77, 97, 120, 87, 105, 100, 116, 104, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 77, 97, 120, 72, 101, 105, 103, 104, 116, 0, 115, 101, 116, 77, 97, 120, 72, 101, 105, 103, 104, 116, 80, 101, 114, 99, 101, 110, 116, 0, 115, 101, 116, 65, 115, 112, 101, 99, 116, 82, 97, 116, 105, 111, 0, 115, 101, 116, 66, 111, 114, 100, 101, 114, 0, 115, 101, 116, 80, 97, 100, 100, 105, 110, 103, 0, 115, 101, 116, 80, 97, 100, 100, 105, 110, 103, 80, 101, 114, 99, 101, 110, 116, 0, 103, 101, 116, 80, 111, 115, 105, 116, 105, 111, 110, 84, 121, 112, 101, 0, 103, 101, 116, 80, 111, 115, 105, 116, 105, 111, 110, 0, 103, 101, 116, 65, 108, 105, 103, 110, 67, 111, 110, 116, 101, 110, 116, 0, 103, 101, 116, 65, 108, 105, 103, 110, 73, 116, 101, 109, 115, 0, 103, 101, 116, 65, 108, 105, 103, 110, 83, 101, 108, 102, 0, 103, 101, 116, 70, 108, 101, 120, 68, 105, 114, 101, 99, 116, 105, 111, 110, 0, 103, 101, 116, 70, 108, 101, 120, 87, 114, 97, 112, 0, 103, 101, 116, 74, 117, 115, 116, 105, 102, 121, 67, 111, 110, 116, 101, 110, 116, 0, 103, 101, 116, 77, 97, 114, 103, 105, 110, 0, 103, 101, 116, 70, 108, 101, 120, 66, 97, 115, 105, 115, 0, 103, 101, 116, 70, 108, 101, 120, 71, 114, 111, 119, 0, 103, 101, 116, 70, 108, 101, 120, 83, 104, 114, 105, 110, 107, 0, 103, 101, 116, 87, 105, 100, 116, 104, 0, 103, 101, 116, 72, 101, 105, 103, 104, 116, 0, 103, 101, 116, 77, 105, 110, 87, 105, 100, 116, 104, 0, 103, 101, 116, 77, 105, 110, 72, 101, 105, 103, 104, 116, 0, 103, 101, 116, 77, 97, 120, 87, 105, 100, 116, 104, 0, 103, 101, 116, 77, 97, 120, 72, 101, 105, 103, 104, 116, 0, 103, 101, 116, 65, 115, 112, 101, 99, 116, 82, 97, 116, 105, 111, 0, 103, 101, 116, 66, 111, 114, 100, 101, 114, 0, 103, 101, 116, 79, 118, 101, 114, 102, 108, 111, 119, 0, 103, 101, 116, 68, 105, 115, 112, 108, 97, 121, 0, 103, 101, 116, 80, 97, 100, 100, 105, 110, 103, 0, 105, 110, 115, 101, 114, 116, 67, 104, 105, 108, 100, 0, 114, 101, 109, 111, 118, 101, 67, 104, 105, 108, 100, 0, 103, 101, 116, 67, 104, 105, 108, 100, 67, 111, 117, 110, 116, 0, 103, 101, 116, 80, 97, 114, 101, 110, 116, 0, 103, 101, 116, 67, 104, 105, 108, 100, 0, 115, 101, 116, 77, 101, 97, 115, 117, 114, 101, 70, 117, 110, 99, 0, 117, 110, 115, 101, 116, 77, 101, 97, 115, 117, 114, 101, 70, 117, 110, 99, 0, 109, 97, 114, 107, 68, 105, 114, 116, 121, 0, 105, 115, 68, 105, 114, 116, 121, 0, 99, 97, 108, 99, 117, 108, 97, 116, 101, 76, 97, 121, 111, 117, 116, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 76, 101, 102, 116, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 82, 105, 103, 104, 116, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 84, 111, 112, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 66, 111, 116, 116, 111, 109, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 87, 105, 100, 116, 104, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 72, 101, 105, 103, 104, 116, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 76, 97, 121, 111, 117, 116, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 77, 97, 114, 103, 105, 110, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 66, 111, 114, 100, 101, 114, 0, 103, 101, 116, 67, 111, 109, 112, 117, 116, 101, 100, 80, 97, 100, 100, 105, 110, 103, 0, 67, 111, 110, 102, 105, 103, 0, 99, 114, 101, 97, 116, 101, 0, 115, 101, 116, 69, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 70, 101, 97, 116, 117, 114, 101, 69, 110, 97, 98, 108, 101, 100, 0, 115, 101, 116, 80, 111, 105, 110, 116, 83, 99, 97, 108, 101, 70, 97, 99, 116, 111, 114, 0, 105, 115, 69, 120, 112, 101, 114, 105, 109, 101, 110, 116, 97, 108, 70, 101, 97, 116, 117, 114, 101, 69, 110, 97, 98, 108, 101, 100, 0, 86, 97, 108, 117, 101, 0, 76, 97, 121, 111, 117, 116, 0, 83, 105, 122, 101, 0, 103, 101, 116, 73, 110, 115, 116, 97, 110, 99, 101, 67, 111, 117, 110, 116, 0, 73, 110, 116, 54, 52, 0, 1, 1, 1, 2, 2, 4, 4, 4, 4, 8, 8, 4, 8, 118, 111, 105, 100, 0, 98, 111, 111, 108, 0, 115, 116, 100, 58, 58, 115, 116, 114, 105, 110, 103, 0, 99, 98, 70, 117, 110, 99, 116, 105, 111, 110, 32, 38, 0, 99, 111, 110, 115, 116, 32, 99, 98, 70, 117, 110, 99, 116, 105, 111, 110, 32, 38, 0, 69, 120, 116, 101, 114, 110, 97, 108, 0, 66, 117, 102, 102, 101, 114, 0, 78, 66, 105, 110, 100, 73, 68, 0, 78, 66, 105, 110, 100, 0, 98, 105, 110, 100, 95, 118, 97, 108, 117, 101, 0, 114, 101, 102, 108, 101, 99, 116, 0, 113, 117, 101, 114, 121, 84, 121, 112, 101, 0, 108, 97, 108, 108, 111, 99, 0, 108, 114, 101, 115, 101, 116, 0, 123, 114, 101, 116, 117, 114, 110, 40, 95, 110, 98, 105, 110, 100, 46, 99, 97, 108, 108, 98, 97, 99, 107, 83, 105, 103, 110, 97, 116, 117, 114, 101, 76, 105, 115, 116, 91, 36, 48, 93, 46, 97, 112, 112, 108, 121, 40, 116, 104, 105, 115, 44, 97, 114, 103, 117, 109, 101, 110, 116, 115, 41, 41, 59, 125, 0, 95, 110, 98, 105, 110, 100, 95, 110, 101, 119, 0, 17, 0, 10, 0, 17, 17, 17, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 15, 10, 17, 17, 17, 3, 10, 7, 0, 1, 19, 9, 11, 11, 0, 0, 9, 6, 11, 0, 0, 11, 0, 6, 17, 0, 0, 0, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 10, 10, 17, 17, 17, 0, 10, 0, 0, 2, 0, 9, 11, 0, 0, 0, 9, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 4, 13, 0, 0, 0, 0, 9, 14, 0, 0, 0, 0, 0, 14, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 0, 0, 0, 9, 16, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 18, 18, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 9, 11, 0, 0, 0, 0, 0, 11, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 12, 0, 0, 0, 0, 9, 12, 0, 0, 0, 0, 0, 12, 0, 0, 12, 0, 0, 45, 43, 32, 32, 32, 48, 88, 48, 120, 0, 40, 110, 117, 108, 108, 41, 0, 45, 48, 88, 43, 48, 88, 32, 48, 88, 45, 48, 120, 43, 48, 120, 32, 48, 120, 0, 105, 110, 102, 0, 73, 78, 70, 0, 110, 97, 110, 0, 78, 65, 78, 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 46, 0, 84, 33, 34, 25, 13, 1, 2, 3, 17, 75, 28, 12, 16, 4, 11, 29, 18, 30, 39, 104, 110, 111, 112, 113, 98, 32, 5, 6, 15, 19, 20, 21, 26, 8, 22, 7, 40, 36, 23, 24, 9, 10, 14, 27, 31, 37, 35, 131, 130, 125, 38, 42, 43, 60, 61, 62, 63, 67, 71, 74, 77, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 99, 100, 101, 102, 103, 105, 106, 107, 108, 114, 115, 116, 121, 122, 123, 124, 0, 73, 108, 108, 101, 103, 97, 108, 32, 98, 121, 116, 101, 32, 115, 101, 113, 117, 101, 110, 99, 101, 0, 68, 111, 109, 97, 105, 110, 32, 101, 114, 114, 111, 114, 0, 82, 101, 115, 117, 108, 116, 32, 110, 111, 116, 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 97, 98, 108, 101, 0, 78, 111, 116, 32, 97, 32, 116, 116, 121, 0, 80, 101, 114, 109, 105, 115, 115, 105, 111, 110, 32, 100, 101, 110, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 110, 111, 116, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 102, 105, 108, 101, 32, 111, 114, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 78, 111, 32, 115, 117, 99, 104, 32, 112, 114, 111, 99, 101, 115, 115, 0, 70, 105, 108, 101, 32, 101, 120, 105, 115, 116, 115, 0, 86, 97, 108, 117, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 32, 102, 111, 114, 32, 100, 97, 116, 97, 32, 116, 121, 112, 101, 0, 78, 111, 32, 115, 112, 97, 99, 101, 32, 108, 101, 102, 116, 32, 111, 110, 32, 100, 101, 118, 105, 99, 101, 0, 79, 117, 116, 32, 111, 102, 32, 109, 101, 109, 111, 114, 121, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 98, 117, 115, 121, 0, 73, 110, 116, 101, 114, 114, 117, 112, 116, 101, 100, 32, 115, 121, 115, 116, 101, 109, 32, 99, 97, 108, 108, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 116, 101, 109, 112, 111, 114, 97, 114, 105, 108, 121, 32, 117, 110, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 73, 110, 118, 97, 108, 105, 100, 32, 115, 101, 101, 107, 0, 67, 114, 111, 115, 115, 45, 100, 101, 118, 105, 99, 101, 32, 108, 105, 110, 107, 0, 82, 101, 97, 100, 45, 111, 110, 108, 121, 32, 102, 105, 108, 101, 32, 115, 121, 115, 116, 101, 109, 0, 68, 105, 114, 101, 99, 116, 111, 114, 121, 32, 110, 111, 116, 32, 101, 109, 112, 116, 121, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 112, 101, 101, 114, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 116, 105, 109, 101, 100, 32, 111, 117, 116, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 102, 117, 115, 101, 100, 0, 72, 111, 115, 116, 32, 105, 115, 32, 100, 111, 119, 110, 0, 72, 111, 115, 116, 32, 105, 115, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 65, 100, 100, 114, 101, 115, 115, 32, 105, 110, 32, 117, 115, 101, 0, 66, 114, 111, 107, 101, 110, 32, 112, 105, 112, 101, 0, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 32, 111, 114, 32, 97, 100, 100, 114, 101, 115, 115, 0, 66, 108, 111, 99, 107, 32, 100, 101, 118, 105, 99, 101, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 78, 111, 32, 115, 117, 99, 104, 32, 100, 101, 118, 105, 99, 101, 0, 78, 111, 116, 32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 73, 115, 32, 97, 32, 100, 105, 114, 101, 99, 116, 111, 114, 121, 0, 84, 101, 120, 116, 32, 102, 105, 108, 101, 32, 98, 117, 115, 121, 0, 69, 120, 101, 99, 32, 102, 111, 114, 109, 97, 116, 32, 101, 114, 114, 111, 114, 0, 73, 110, 118, 97, 108, 105, 100, 32, 97, 114, 103, 117, 109, 101, 110, 116, 0, 65, 114, 103, 117, 109, 101, 110, 116, 32, 108, 105, 115, 116, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 83, 121, 109, 98, 111, 108, 105, 99, 32, 108, 105, 110, 107, 32, 108, 111, 111, 112, 0, 70, 105, 108, 101, 110, 97, 109, 101, 32, 116, 111, 111, 32, 108, 111, 110, 103, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 111, 112, 101, 110, 32, 102, 105, 108, 101, 115, 32, 105, 110, 32, 115, 121, 115, 116, 101, 109, 0, 78, 111, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 66, 97, 100, 32, 102, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 0, 78, 111, 32, 99, 104, 105, 108, 100, 32, 112, 114, 111, 99, 101, 115, 115, 0, 66, 97, 100, 32, 97, 100, 100, 114, 101, 115, 115, 0, 70, 105, 108, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 84, 111, 111, 32, 109, 97, 110, 121, 32, 108, 105, 110, 107, 115, 0, 78, 111, 32, 108, 111, 99, 107, 115, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 82, 101, 115, 111, 117, 114, 99, 101, 32, 100, 101, 97, 100, 108, 111, 99, 107, 32, 119, 111, 117, 108, 100, 32, 111, 99, 99, 117, 114, 0, 83, 116, 97, 116, 101, 32, 110, 111, 116, 32, 114, 101, 99, 111, 118, 101, 114, 97, 98, 108, 101, 0, 80, 114, 101, 118, 105, 111, 117, 115, 32, 111, 119, 110, 101, 114, 32, 100, 105, 101, 100, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 99, 97, 110, 99, 101, 108, 101, 100, 0, 70, 117, 110, 99, 116, 105, 111, 110, 32, 110, 111, 116, 32, 105, 109, 112, 108, 101, 109, 101, 110, 116, 101, 100, 0, 78, 111, 32, 109, 101, 115, 115, 97, 103, 101, 32, 111, 102, 32, 100, 101, 115, 105, 114, 101, 100, 32, 116, 121, 112, 101, 0, 73, 100, 101, 110, 116, 105, 102, 105, 101, 114, 32, 114, 101, 109, 111, 118, 101, 100, 0, 68, 101, 118, 105, 99, 101, 32, 110, 111, 116, 32, 97, 32, 115, 116, 114, 101, 97, 109, 0, 78, 111, 32, 100, 97, 116, 97, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 68, 101, 118, 105, 99, 101, 32, 116, 105, 109, 101, 111, 117, 116, 0, 79, 117, 116, 32, 111, 102, 32, 115, 116, 114, 101, 97, 109, 115, 32, 114, 101, 115, 111, 117, 114, 99, 101, 115, 0, 76, 105, 110, 107, 32, 104, 97, 115, 32, 98, 101, 101, 110, 32, 115, 101, 118, 101, 114, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 101, 114, 114, 111, 114, 0, 66, 97, 100, 32, 109, 101, 115, 115, 97, 103, 101, 0, 70, 105, 108, 101, 32, 100, 101, 115, 99, 114, 105, 112, 116, 111, 114, 32, 105, 110, 32, 98, 97, 100, 32, 115, 116, 97, 116, 101, 0, 78, 111, 116, 32, 97, 32, 115, 111, 99, 107, 101, 116, 0, 68, 101, 115, 116, 105, 110, 97, 116, 105, 111, 110, 32, 97, 100, 100, 114, 101, 115, 115, 32, 114, 101, 113, 117, 105, 114, 101, 100, 0, 77, 101, 115, 115, 97, 103, 101, 32, 116, 111, 111, 32, 108, 97, 114, 103, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 119, 114, 111, 110, 103, 32, 116, 121, 112, 101, 32, 102, 111, 114, 32, 115, 111, 99, 107, 101, 116, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 116, 121, 112, 101, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 78, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 80, 114, 111, 116, 111, 99, 111, 108, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 0, 65, 100, 100, 114, 101, 115, 115, 32, 102, 97, 109, 105, 108, 121, 32, 110, 111, 116, 32, 115, 117, 112, 112, 111, 114, 116, 101, 100, 32, 98, 121, 32, 112, 114, 111, 116, 111, 99, 111, 108, 0, 65, 100, 100, 114, 101, 115, 115, 32, 110, 111, 116, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 78, 101, 116, 119, 111, 114, 107, 32, 105, 115, 32, 100, 111, 119, 110, 0, 78, 101, 116, 119, 111, 114, 107, 32, 117, 110, 114, 101, 97, 99, 104, 97, 98, 108, 101, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 114, 101, 115, 101, 116, 32, 98, 121, 32, 110, 101, 116, 119, 111, 114, 107, 0, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 32, 97, 98, 111, 114, 116, 101, 100, 0, 78, 111, 32, 98, 117, 102, 102, 101, 114, 32, 115, 112, 97, 99, 101, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 0, 83, 111, 99, 107, 101, 116, 32, 105, 115, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 83, 111, 99, 107, 101, 116, 32, 110, 111, 116, 32, 99, 111, 110, 110, 101, 99, 116, 101, 100, 0, 67, 97, 110, 110, 111, 116, 32, 115, 101, 110, 100, 32, 97, 102, 116, 101, 114, 32, 115, 111, 99, 107, 101, 116, 32, 115, 104, 117, 116, 100, 111, 119, 110, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 97, 108, 114, 101, 97, 100, 121, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 79, 112, 101, 114, 97, 116, 105, 111, 110, 32, 105, 110, 32, 112, 114, 111, 103, 114, 101, 115, 115, 0, 83, 116, 97, 108, 101, 32, 102, 105, 108, 101, 32, 104, 97, 110, 100, 108, 101, 0, 82, 101, 109, 111, 116, 101, 32, 73, 47, 79, 32, 101, 114, 114, 111, 114, 0, 81, 117, 111, 116, 97, 32, 101, 120, 99, 101, 101, 100, 101, 100, 0, 78, 111, 32, 109, 101, 100, 105, 117, 109, 32, 102, 111, 117, 110, 100, 0, 87, 114, 111, 110, 103, 32, 109, 101, 100, 105, 117, 109, 32, 116, 121, 112, 101, 0, 78, 111, 32, 101, 114, 114, 111, 114, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 0, 0], \"i8\", ALLOC_NONE, Runtime.GLOBAL_BASE);var tempDoublePtr = STATICTOP;STATICTOP += 16;function _atexit(func, arg) {\n __ATEXIT__.unshift({ func: func, arg: arg });\n }function ___cxa_atexit() {\n return _atexit.apply(null, arguments);\n }function _abort() {\n Module[\"abort\"]();\n }function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj() {\n Module[\"printErr\"](\"missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj\");abort(-1);\n }function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;return c > 3 && r && Object.defineProperty(target, key, r), r;\n }function _defineHidden(value) {\n return function (target, key) {\n Object.defineProperty(target, key, { configurable: false, enumerable: false, value: value, writable: true });\n };\n }var _nbind = {};function __nbind_free_external(num) {\n _nbind.externalList[num].dereference(num);\n }function __nbind_reference_external(num) {\n _nbind.externalList[num].reference();\n }function _llvm_stackrestore(p) {\n var self = _llvm_stacksave;var ret = self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p, 1);Runtime.stackRestore(ret);\n }function __nbind_register_pool(pageSize, usedPtr, rootPtr, pagePtr) {\n _nbind.Pool.pageSize = pageSize;_nbind.Pool.usedPtr = usedPtr / 4;_nbind.Pool.rootPtr = rootPtr;_nbind.Pool.pagePtr = pagePtr / 4;HEAP32[usedPtr / 4] = 16909060;if (HEAP8[usedPtr] == 1) _nbind.bigEndian = true;HEAP32[usedPtr / 4] = 0;_nbind.makeTypeKindTbl = (_a = {}, _a[1024] = _nbind.PrimitiveType, _a[64] = _nbind.Int64Type, _a[2048] = _nbind.BindClass, _a[3072] = _nbind.BindClassPtr, _a[4096] = _nbind.SharedClassPtr, _a[5120] = _nbind.ArrayType, _a[6144] = _nbind.ArrayType, _a[7168] = _nbind.CStringType, _a[9216] = _nbind.CallbackType, _a[10240] = _nbind.BindType, _a);_nbind.makeTypeNameTbl = { \"Buffer\": _nbind.BufferType, \"External\": _nbind.ExternalType, \"Int64\": _nbind.Int64Type, \"_nbind_new\": _nbind.CreateValueType, \"bool\": _nbind.BooleanType, \"cbFunction &\": _nbind.CallbackType, \"const cbFunction &\": _nbind.CallbackType, \"const std::string &\": _nbind.StringType, \"std::string\": _nbind.StringType };Module[\"toggleLightGC\"] = _nbind.toggleLightGC;_nbind.callUpcast = Module[\"dynCall_ii\"];var globalScope = _nbind.makeType(_nbind.constructType, { flags: 2048, id: 0, name: \"\" });globalScope.proto = Module;_nbind.BindClass.list.push(globalScope);var _a;\n }function _emscripten_set_main_loop_timing(mode, value) {\n Browser.mainLoop.timingMode = mode;Browser.mainLoop.timingValue = value;if (!Browser.mainLoop.func) {\n return 1;\n }if (mode == 0) {\n Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setTimeout() {\n var timeUntilNextTick = Math.max(0, Browser.mainLoop.tickStartTime + value - _emscripten_get_now()) | 0;setTimeout(Browser.mainLoop.runner, timeUntilNextTick);\n };Browser.mainLoop.method = \"timeout\";\n } else if (mode == 1) {\n Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_rAF() {\n Browser.requestAnimationFrame(Browser.mainLoop.runner);\n };Browser.mainLoop.method = \"rAF\";\n } else if (mode == 2) {\n if (!window[\"setImmediate\"]) {\n var setImmediates = [];var emscriptenMainLoopMessageId = \"setimmediate\";function Browser_setImmediate_messageHandler(event) {\n if (event.source === window && event.data === emscriptenMainLoopMessageId) {\n event.stopPropagation();setImmediates.shift()();\n }\n }window.addEventListener(\"message\", Browser_setImmediate_messageHandler, true);window[\"setImmediate\"] = function Browser_emulated_setImmediate(func) {\n setImmediates.push(func);if (ENVIRONMENT_IS_WORKER) {\n if (Module[\"setImmediates\"] === undefined) Module[\"setImmediates\"] = [];Module[\"setImmediates\"].push(func);window.postMessage({ target: emscriptenMainLoopMessageId });\n } else window.postMessage(emscriptenMainLoopMessageId, \"*\");\n };\n }Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {\n window[\"setImmediate\"](Browser.mainLoop.runner);\n };Browser.mainLoop.method = \"immediate\";\n }return 0;\n }function _emscripten_get_now() {\n abort();\n }function _emscripten_set_main_loop(func, fps, simulateInfiniteLoop, arg, noSetTiming) {\n Module[\"noExitRuntime\"] = true;assert(!Browser.mainLoop.func, \"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.\");Browser.mainLoop.func = func;Browser.mainLoop.arg = arg;var browserIterationFunc;if (typeof arg !== \"undefined\") {\n browserIterationFunc = function () {\n Module[\"dynCall_vi\"](func, arg);\n };\n } else {\n browserIterationFunc = function () {\n Module[\"dynCall_v\"](func);\n };\n }var thisMainLoopId = Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner = function Browser_mainLoop_runner() {\n if (ABORT) return;if (Browser.mainLoop.queue.length > 0) {\n var start = Date.now();var blocker = Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if (Browser.mainLoop.remainingBlockers) {\n var remaining = Browser.mainLoop.remainingBlockers;var next = remaining % 1 == 0 ? remaining - 1 : Math.floor(remaining);if (blocker.counted) {\n Browser.mainLoop.remainingBlockers = next;\n } else {\n next = next + .5;Browser.mainLoop.remainingBlockers = (8 * remaining + next) / 9;\n }\n }console.log('main loop blocker \"' + blocker.name + '\" took ' + (Date.now() - start) + \" ms\");Browser.mainLoop.updateStatus();if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;setTimeout(Browser.mainLoop.runner, 0);return;\n }if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;Browser.mainLoop.currentFrameNumber = Browser.mainLoop.currentFrameNumber + 1 | 0;if (Browser.mainLoop.timingMode == 1 && Browser.mainLoop.timingValue > 1 && Browser.mainLoop.currentFrameNumber % Browser.mainLoop.timingValue != 0) {\n Browser.mainLoop.scheduler();return;\n } else if (Browser.mainLoop.timingMode == 0) {\n Browser.mainLoop.tickStartTime = _emscripten_get_now();\n }if (Browser.mainLoop.method === \"timeout\" && Module.ctx) {\n Module.printErr(\"Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!\");Browser.mainLoop.method = \"\";\n }Browser.mainLoop.runIter(browserIterationFunc);if (thisMainLoopId < Browser.mainLoop.currentlyRunningMainloop) return;if (typeof SDL === \"object\" && SDL.audio && SDL.audio.queueNewAudioData) SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler();\n };if (!noSetTiming) {\n if (fps && fps > 0) _emscripten_set_main_loop_timing(0, 1e3 / fps);else _emscripten_set_main_loop_timing(1, 1);Browser.mainLoop.scheduler();\n }if (simulateInfiniteLoop) {\n throw \"SimulateInfiniteLoop\";\n }\n }var Browser = { mainLoop: { scheduler: null, method: \"\", currentlyRunningMainloop: 0, func: null, arg: 0, timingMode: 0, timingValue: 0, currentFrameNumber: 0, queue: [], pause: function () {\n Browser.mainLoop.scheduler = null;Browser.mainLoop.currentlyRunningMainloop++;\n }, resume: function () {\n Browser.mainLoop.currentlyRunningMainloop++;var timingMode = Browser.mainLoop.timingMode;var timingValue = Browser.mainLoop.timingValue;var func = Browser.mainLoop.func;Browser.mainLoop.func = null;_emscripten_set_main_loop(func, 0, false, Browser.mainLoop.arg, true);_emscripten_set_main_loop_timing(timingMode, timingValue);Browser.mainLoop.scheduler();\n }, updateStatus: function () {\n if (Module[\"setStatus\"]) {\n var message = Module[\"statusMessage\"] || \"Please wait...\";var remaining = Browser.mainLoop.remainingBlockers;var expected = Browser.mainLoop.expectedBlockers;if (remaining) {\n if (remaining < expected) {\n Module[\"setStatus\"](message + \" (\" + (expected - remaining) + \"/\" + expected + \")\");\n } else {\n Module[\"setStatus\"](message);\n }\n } else {\n Module[\"setStatus\"](\"\");\n }\n }\n }, runIter: function (func) {\n if (ABORT) return;if (Module[\"preMainLoop\"]) {\n var preRet = Module[\"preMainLoop\"]();if (preRet === false) {\n return;\n }\n }try {\n func();\n } catch (e) {\n if (e instanceof ExitStatus) {\n return;\n } else {\n if (e && typeof e === \"object\" && e.stack) Module.printErr(\"exception thrown: \" + [e, e.stack]);throw e;\n }\n }if (Module[\"postMainLoop\"]) Module[\"postMainLoop\"]();\n } }, isFullscreen: false, pointerLock: false, moduleContextCreatedCallbacks: [], workers: [], init: function () {\n if (!Module[\"preloadPlugins\"]) Module[\"preloadPlugins\"] = [];if (Browser.initted) return;Browser.initted = true;try {\n new Blob();Browser.hasBlobConstructor = true;\n } catch (e) {\n Browser.hasBlobConstructor = false;console.log(\"warning: no blob constructor, cannot create blobs with mimetypes\");\n }Browser.BlobBuilder = typeof MozBlobBuilder != \"undefined\" ? MozBlobBuilder : typeof WebKitBlobBuilder != \"undefined\" ? WebKitBlobBuilder : !Browser.hasBlobConstructor ? console.log(\"warning: no BlobBuilder\") : null;Browser.URLObject = typeof window != \"undefined\" ? window.URL ? window.URL : window.webkitURL : undefined;if (!Module.noImageDecoding && typeof Browser.URLObject === \"undefined\") {\n console.log(\"warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.\");Module.noImageDecoding = true;\n }var imagePlugin = {};imagePlugin[\"canHandle\"] = function imagePlugin_canHandle(name) {\n return !Module.noImageDecoding && /\\.(jpg|jpeg|png|bmp)$/i.test(name);\n };imagePlugin[\"handle\"] = function imagePlugin_handle(byteArray, name, onload, onerror) {\n var b = null;if (Browser.hasBlobConstructor) {\n try {\n b = new Blob([byteArray], { type: Browser.getMimetype(name) });if (b.size !== byteArray.length) {\n b = new Blob([new Uint8Array(byteArray).buffer], { type: Browser.getMimetype(name) });\n }\n } catch (e) {\n Runtime.warnOnce(\"Blob constructor present but fails: \" + e + \"; falling back to blob builder\");\n }\n }if (!b) {\n var bb = new Browser.BlobBuilder();bb.append(new Uint8Array(byteArray).buffer);b = bb.getBlob();\n }var url = Browser.URLObject.createObjectURL(b);var img = new Image();img.onload = function img_onload() {\n assert(img.complete, \"Image \" + name + \" could not be decoded\");var canvas = document.createElement(\"canvas\");canvas.width = img.width;canvas.height = img.height;var ctx = canvas.getContext(\"2d\");ctx.drawImage(img, 0, 0);Module[\"preloadedImages\"][name] = canvas;Browser.URLObject.revokeObjectURL(url);if (onload) onload(byteArray);\n };img.onerror = function img_onerror(event) {\n console.log(\"Image \" + url + \" could not be decoded\");if (onerror) onerror();\n };img.src = url;\n };Module[\"preloadPlugins\"].push(imagePlugin);var audioPlugin = {};audioPlugin[\"canHandle\"] = function audioPlugin_canHandle(name) {\n return !Module.noAudioDecoding && name.substr(-4) in { \".ogg\": 1, \".wav\": 1, \".mp3\": 1 };\n };audioPlugin[\"handle\"] = function audioPlugin_handle(byteArray, name, onload, onerror) {\n var done = false;function finish(audio) {\n if (done) return;done = true;Module[\"preloadedAudios\"][name] = audio;if (onload) onload(byteArray);\n }function fail() {\n if (done) return;done = true;Module[\"preloadedAudios\"][name] = new Audio();if (onerror) onerror();\n }if (Browser.hasBlobConstructor) {\n try {\n var b = new Blob([byteArray], { type: Browser.getMimetype(name) });\n } catch (e) {\n return fail();\n }var url = Browser.URLObject.createObjectURL(b);var audio = new Audio();audio.addEventListener(\"canplaythrough\", function () {\n finish(audio);\n }, false);audio.onerror = function audio_onerror(event) {\n if (done) return;console.log(\"warning: browser could not fully decode audio \" + name + \", trying slower base64 approach\");function encode64(data) {\n var BASE = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";var PAD = \"=\";var ret = \"\";var leftchar = 0;var leftbits = 0;for (var i = 0; i < data.length; i++) {\n leftchar = leftchar << 8 | data[i];leftbits += 8;while (leftbits >= 6) {\n var curr = leftchar >> leftbits - 6 & 63;leftbits -= 6;ret += BASE[curr];\n }\n }if (leftbits == 2) {\n ret += BASE[(leftchar & 3) << 4];ret += PAD + PAD;\n } else if (leftbits == 4) {\n ret += BASE[(leftchar & 15) << 2];ret += PAD;\n }return ret;\n }audio.src = \"data:audio/x-\" + name.substr(-3) + \";base64,\" + encode64(byteArray);finish(audio);\n };audio.src = url;Browser.safeSetTimeout(function () {\n finish(audio);\n }, 1e4);\n } else {\n return fail();\n }\n };Module[\"preloadPlugins\"].push(audioPlugin);function pointerLockChange() {\n Browser.pointerLock = document[\"pointerLockElement\"] === Module[\"canvas\"] || document[\"mozPointerLockElement\"] === Module[\"canvas\"] || document[\"webkitPointerLockElement\"] === Module[\"canvas\"] || document[\"msPointerLockElement\"] === Module[\"canvas\"];\n }var canvas = Module[\"canvas\"];if (canvas) {\n canvas.requestPointerLock = canvas[\"requestPointerLock\"] || canvas[\"mozRequestPointerLock\"] || canvas[\"webkitRequestPointerLock\"] || canvas[\"msRequestPointerLock\"] || function () {};canvas.exitPointerLock = document[\"exitPointerLock\"] || document[\"mozExitPointerLock\"] || document[\"webkitExitPointerLock\"] || document[\"msExitPointerLock\"] || function () {};canvas.exitPointerLock = canvas.exitPointerLock.bind(document);document.addEventListener(\"pointerlockchange\", pointerLockChange, false);document.addEventListener(\"mozpointerlockchange\", pointerLockChange, false);document.addEventListener(\"webkitpointerlockchange\", pointerLockChange, false);document.addEventListener(\"mspointerlockchange\", pointerLockChange, false);if (Module[\"elementPointerLock\"]) {\n canvas.addEventListener(\"click\", function (ev) {\n if (!Browser.pointerLock && Module[\"canvas\"].requestPointerLock) {\n Module[\"canvas\"].requestPointerLock();ev.preventDefault();\n }\n }, false);\n }\n }\n }, createContext: function (canvas, useWebGL, setInModule, webGLContextAttributes) {\n if (useWebGL && Module.ctx && canvas == Module.canvas) return Module.ctx;var ctx;var contextHandle;if (useWebGL) {\n var contextAttributes = { antialias: false, alpha: false };if (webGLContextAttributes) {\n for (var attribute in webGLContextAttributes) {\n contextAttributes[attribute] = webGLContextAttributes[attribute];\n }\n }contextHandle = GL.createContext(canvas, contextAttributes);if (contextHandle) {\n ctx = GL.getContext(contextHandle).GLctx;\n }\n } else {\n ctx = canvas.getContext(\"2d\");\n }if (!ctx) return null;if (setInModule) {\n if (!useWebGL) assert(typeof GLctx === \"undefined\", \"cannot set in module if GLctx is used, but we are a non-GL context that would replace it\");Module.ctx = ctx;if (useWebGL) GL.makeContextCurrent(contextHandle);Module.useWebGL = useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function (callback) {\n callback();\n });Browser.init();\n }return ctx;\n }, destroyContext: function (canvas, useWebGL, setInModule) {}, fullscreenHandlersInstalled: false, lockPointer: undefined, resizeCanvas: undefined, requestFullscreen: function (lockPointer, resizeCanvas, vrDevice) {\n Browser.lockPointer = lockPointer;Browser.resizeCanvas = resizeCanvas;Browser.vrDevice = vrDevice;if (typeof Browser.lockPointer === \"undefined\") Browser.lockPointer = true;if (typeof Browser.resizeCanvas === \"undefined\") Browser.resizeCanvas = false;if (typeof Browser.vrDevice === \"undefined\") Browser.vrDevice = null;var canvas = Module[\"canvas\"];function fullscreenChange() {\n Browser.isFullscreen = false;var canvasContainer = canvas.parentNode;if ((document[\"fullscreenElement\"] || document[\"mozFullScreenElement\"] || document[\"msFullscreenElement\"] || document[\"webkitFullscreenElement\"] || document[\"webkitCurrentFullScreenElement\"]) === canvasContainer) {\n canvas.exitFullscreen = document[\"exitFullscreen\"] || document[\"cancelFullScreen\"] || document[\"mozCancelFullScreen\"] || document[\"msExitFullscreen\"] || document[\"webkitCancelFullScreen\"] || function () {};canvas.exitFullscreen = canvas.exitFullscreen.bind(document);if (Browser.lockPointer) canvas.requestPointerLock();Browser.isFullscreen = true;if (Browser.resizeCanvas) Browser.setFullscreenCanvasSize();\n } else {\n canvasContainer.parentNode.insertBefore(canvas, canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();\n }if (Module[\"onFullScreen\"]) Module[\"onFullScreen\"](Browser.isFullscreen);if (Module[\"onFullscreen\"]) Module[\"onFullscreen\"](Browser.isFullscreen);Browser.updateCanvasDimensions(canvas);\n }if (!Browser.fullscreenHandlersInstalled) {\n Browser.fullscreenHandlersInstalled = true;document.addEventListener(\"fullscreenchange\", fullscreenChange, false);document.addEventListener(\"mozfullscreenchange\", fullscreenChange, false);document.addEventListener(\"webkitfullscreenchange\", fullscreenChange, false);document.addEventListener(\"MSFullscreenChange\", fullscreenChange, false);\n }var canvasContainer = document.createElement(\"div\");canvas.parentNode.insertBefore(canvasContainer, canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen = canvasContainer[\"requestFullscreen\"] || canvasContainer[\"mozRequestFullScreen\"] || canvasContainer[\"msRequestFullscreen\"] || (canvasContainer[\"webkitRequestFullscreen\"] ? function () {\n canvasContainer[\"webkitRequestFullscreen\"](Element[\"ALLOW_KEYBOARD_INPUT\"]);\n } : null) || (canvasContainer[\"webkitRequestFullScreen\"] ? function () {\n canvasContainer[\"webkitRequestFullScreen\"](Element[\"ALLOW_KEYBOARD_INPUT\"]);\n } : null);if (vrDevice) {\n canvasContainer.requestFullscreen({ vrDisplay: vrDevice });\n } else {\n canvasContainer.requestFullscreen();\n }\n }, requestFullScreen: function (lockPointer, resizeCanvas, vrDevice) {\n Module.printErr(\"Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.\");Browser.requestFullScreen = function (lockPointer, resizeCanvas, vrDevice) {\n return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice);\n };return Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice);\n }, nextRAF: 0, fakeRequestAnimationFrame: function (func) {\n var now = Date.now();if (Browser.nextRAF === 0) {\n Browser.nextRAF = now + 1e3 / 60;\n } else {\n while (now + 2 >= Browser.nextRAF) {\n Browser.nextRAF += 1e3 / 60;\n }\n }var delay = Math.max(Browser.nextRAF - now, 0);setTimeout(func, delay);\n }, requestAnimationFrame: function requestAnimationFrame(func) {\n if (typeof window === \"undefined\") {\n Browser.fakeRequestAnimationFrame(func);\n } else {\n if (!window.requestAnimationFrame) {\n window.requestAnimationFrame = window[\"requestAnimationFrame\"] || window[\"mozRequestAnimationFrame\"] || window[\"webkitRequestAnimationFrame\"] || window[\"msRequestAnimationFrame\"] || window[\"oRequestAnimationFrame\"] || Browser.fakeRequestAnimationFrame;\n }window.requestAnimationFrame(func);\n }\n }, safeCallback: function (func) {\n return function () {\n if (!ABORT) return func.apply(null, arguments);\n };\n }, allowAsyncCallbacks: true, queuedAsyncCallbacks: [], pauseAsyncCallbacks: function () {\n Browser.allowAsyncCallbacks = false;\n }, resumeAsyncCallbacks: function () {\n Browser.allowAsyncCallbacks = true;if (Browser.queuedAsyncCallbacks.length > 0) {\n var callbacks = Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks = [];callbacks.forEach(function (func) {\n func();\n });\n }\n }, safeRequestAnimationFrame: function (func) {\n return Browser.requestAnimationFrame(function () {\n if (ABORT) return;if (Browser.allowAsyncCallbacks) {\n func();\n } else {\n Browser.queuedAsyncCallbacks.push(func);\n }\n });\n }, safeSetTimeout: function (func, timeout) {\n Module[\"noExitRuntime\"] = true;return setTimeout(function () {\n if (ABORT) return;if (Browser.allowAsyncCallbacks) {\n func();\n } else {\n Browser.queuedAsyncCallbacks.push(func);\n }\n }, timeout);\n }, safeSetInterval: function (func, timeout) {\n Module[\"noExitRuntime\"] = true;return setInterval(function () {\n if (ABORT) return;if (Browser.allowAsyncCallbacks) {\n func();\n }\n }, timeout);\n }, getMimetype: function (name) {\n return { \"jpg\": \"image/jpeg\", \"jpeg\": \"image/jpeg\", \"png\": \"image/png\", \"bmp\": \"image/bmp\", \"ogg\": \"audio/ogg\", \"wav\": \"audio/wav\", \"mp3\": \"audio/mpeg\" }[name.substr(name.lastIndexOf(\".\") + 1)];\n }, getUserMedia: function (func) {\n if (!window.getUserMedia) {\n window.getUserMedia = navigator[\"getUserMedia\"] || navigator[\"mozGetUserMedia\"];\n }window.getUserMedia(func);\n }, getMovementX: function (event) {\n return event[\"movementX\"] || event[\"mozMovementX\"] || event[\"webkitMovementX\"] || 0;\n }, getMovementY: function (event) {\n return event[\"movementY\"] || event[\"mozMovementY\"] || event[\"webkitMovementY\"] || 0;\n }, getMouseWheelDelta: function (event) {\n var delta = 0;switch (event.type) {case \"DOMMouseScroll\":\n delta = event.detail;break;case \"mousewheel\":\n delta = event.wheelDelta;break;case \"wheel\":\n delta = event[\"deltaY\"];break;default:\n throw \"unrecognized mouse wheel event: \" + event.type;}return delta;\n }, mouseX: 0, mouseY: 0, mouseMovementX: 0, mouseMovementY: 0, touches: {}, lastTouches: {}, calculateMouseEvent: function (event) {\n if (Browser.pointerLock) {\n if (event.type != \"mousemove\" && \"mozMovementX\" in event) {\n Browser.mouseMovementX = Browser.mouseMovementY = 0;\n } else {\n Browser.mouseMovementX = Browser.getMovementX(event);Browser.mouseMovementY = Browser.getMovementY(event);\n }if (typeof SDL != \"undefined\") {\n Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;\n } else {\n Browser.mouseX += Browser.mouseMovementX;Browser.mouseY += Browser.mouseMovementY;\n }\n } else {\n var rect = Module[\"canvas\"].getBoundingClientRect();var cw = Module[\"canvas\"].width;var ch = Module[\"canvas\"].height;var scrollX = typeof window.scrollX !== \"undefined\" ? window.scrollX : window.pageXOffset;var scrollY = typeof window.scrollY !== \"undefined\" ? window.scrollY : window.pageYOffset;if (event.type === \"touchstart\" || event.type === \"touchend\" || event.type === \"touchmove\") {\n var touch = event.touch;if (touch === undefined) {\n return;\n }var adjustedX = touch.pageX - (scrollX + rect.left);var adjustedY = touch.pageY - (scrollY + rect.top);adjustedX = adjustedX * (cw / rect.width);adjustedY = adjustedY * (ch / rect.height);var coords = { x: adjustedX, y: adjustedY };if (event.type === \"touchstart\") {\n Browser.lastTouches[touch.identifier] = coords;Browser.touches[touch.identifier] = coords;\n } else if (event.type === \"touchend\" || event.type === \"touchmove\") {\n var last = Browser.touches[touch.identifier];if (!last) last = coords;Browser.lastTouches[touch.identifier] = last;Browser.touches[touch.identifier] = coords;\n }return;\n }var x = event.pageX - (scrollX + rect.left);var y = event.pageY - (scrollY + rect.top);x = x * (cw / rect.width);y = y * (ch / rect.height);Browser.mouseMovementX = x - Browser.mouseX;Browser.mouseMovementY = y - Browser.mouseY;Browser.mouseX = x;Browser.mouseY = y;\n }\n }, asyncLoad: function (url, onload, onerror, noRunDep) {\n var dep = !noRunDep ? getUniqueRunDependency(\"al \" + url) : \"\";Module[\"readAsync\"](url, function (arrayBuffer) {\n assert(arrayBuffer, 'Loading data file \"' + url + '\" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if (dep) removeRunDependency(dep);\n }, function (event) {\n if (onerror) {\n onerror();\n } else {\n throw 'Loading data file \"' + url + '\" failed.';\n }\n });if (dep) addRunDependency(dep);\n }, resizeListeners: [], updateResizeListeners: function () {\n var canvas = Module[\"canvas\"];Browser.resizeListeners.forEach(function (listener) {\n listener(canvas.width, canvas.height);\n });\n }, setCanvasSize: function (width, height, noUpdates) {\n var canvas = Module[\"canvas\"];Browser.updateCanvasDimensions(canvas, width, height);if (!noUpdates) Browser.updateResizeListeners();\n }, windowedWidth: 0, windowedHeight: 0, setFullscreenCanvasSize: function () {\n if (typeof SDL != \"undefined\") {\n var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2];flags = flags | 8388608;HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags;\n }Browser.updateResizeListeners();\n }, setWindowedCanvasSize: function () {\n if (typeof SDL != \"undefined\") {\n var flags = HEAPU32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2];flags = flags & ~8388608;HEAP32[SDL.screen + Runtime.QUANTUM_SIZE * 0 >> 2] = flags;\n }Browser.updateResizeListeners();\n }, updateCanvasDimensions: function (canvas, wNative, hNative) {\n if (wNative && hNative) {\n canvas.widthNative = wNative;canvas.heightNative = hNative;\n } else {\n wNative = canvas.widthNative;hNative = canvas.heightNative;\n }var w = wNative;var h = hNative;if (Module[\"forcedAspectRatio\"] && Module[\"forcedAspectRatio\"] > 0) {\n if (w / h < Module[\"forcedAspectRatio\"]) {\n w = Math.round(h * Module[\"forcedAspectRatio\"]);\n } else {\n h = Math.round(w / Module[\"forcedAspectRatio\"]);\n }\n }if ((document[\"fullscreenElement\"] || document[\"mozFullScreenElement\"] || document[\"msFullscreenElement\"] || document[\"webkitFullscreenElement\"] || document[\"webkitCurrentFullScreenElement\"]) === canvas.parentNode && typeof screen != \"undefined\") {\n var factor = Math.min(screen.width / w, screen.height / h);w = Math.round(w * factor);h = Math.round(h * factor);\n }if (Browser.resizeCanvas) {\n if (canvas.width != w) canvas.width = w;if (canvas.height != h) canvas.height = h;if (typeof canvas.style != \"undefined\") {\n canvas.style.removeProperty(\"width\");canvas.style.removeProperty(\"height\");\n }\n } else {\n if (canvas.width != wNative) canvas.width = wNative;if (canvas.height != hNative) canvas.height = hNative;if (typeof canvas.style != \"undefined\") {\n if (w != wNative || h != hNative) {\n canvas.style.setProperty(\"width\", w + \"px\", \"important\");canvas.style.setProperty(\"height\", h + \"px\", \"important\");\n } else {\n canvas.style.removeProperty(\"width\");canvas.style.removeProperty(\"height\");\n }\n }\n }\n }, wgetRequests: {}, nextWgetRequestHandle: 0, getNextWgetRequestHandle: function () {\n var handle = Browser.nextWgetRequestHandle;Browser.nextWgetRequestHandle++;return handle;\n } };var SYSCALLS = { varargs: 0, get: function (varargs) {\n SYSCALLS.varargs += 4;var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];return ret;\n }, getStr: function () {\n var ret = Pointer_stringify(SYSCALLS.get());return ret;\n }, get64: function () {\n var low = SYSCALLS.get(),\n high = SYSCALLS.get();if (low >= 0) assert(high === 0);else assert(high === -1);return low;\n }, getZero: function () {\n assert(SYSCALLS.get() === 0);\n } };function ___syscall6(which, varargs) {\n SYSCALLS.varargs = varargs;try {\n var stream = SYSCALLS.getStreamFromFD();FS.close(stream);return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);return -e.errno;\n }\n }function ___syscall54(which, varargs) {\n SYSCALLS.varargs = varargs;try {\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);return -e.errno;\n }\n }function _typeModule(self) {\n var structureList = [[0, 1, \"X\"], [1, 1, \"const X\"], [128, 1, \"X *\"], [256, 1, \"X &\"], [384, 1, \"X &&\"], [512, 1, \"std::shared_ptr\"], [640, 1, \"std::unique_ptr\"], [5120, 1, \"std::vector\"], [6144, 2, \"std::array\"], [9216, -1, \"std::function\"]];function applyStructure(outerName, outerFlags, innerName, innerFlags, param, flip) {\n if (outerFlags == 1) {\n var ref = innerFlags & 896;if (ref == 128 || ref == 256 || ref == 384) outerName = \"X const\";\n }var name;if (flip) {\n name = innerName.replace(\"X\", outerName).replace(\"Y\", param);\n } else {\n name = outerName.replace(\"X\", innerName).replace(\"Y\", param);\n }return name.replace(/([*&]) (?=[*&])/g, \"$1\");\n }function reportProblem(problem, id, kind, structureType, place) {\n throw new Error(problem + \" type \" + kind.replace(\"X\", id + \"?\") + (structureType ? \" with flag \" + structureType : \"\") + \" in \" + place);\n }function getComplexType(id, constructType, getType, queryType, place, kind, prevStructure, depth) {\n if (kind === void 0) {\n kind = \"X\";\n }if (depth === void 0) {\n depth = 1;\n }var result = getType(id);if (result) return result;var query = queryType(id);var structureType = query.placeholderFlag;var structure = structureList[structureType];if (prevStructure && structure) {\n kind = applyStructure(prevStructure[2], prevStructure[0], kind, structure[0], \"?\", true);\n }var problem;if (structureType == 0) problem = \"Unbound\";if (structureType >= 10) problem = \"Corrupt\";if (depth > 20) problem = \"Deeply nested\";if (problem) reportProblem(problem, id, kind, structureType, place || \"?\");var subId = query.paramList[0];var subType = getComplexType(subId, constructType, getType, queryType, place, kind, structure, depth + 1);var srcSpec;var spec = { flags: structure[0], id: id, name: \"\", paramList: [subType] };var argList = [];var structureParam = \"?\";switch (query.placeholderFlag) {case 1:\n srcSpec = subType.spec;break;case 2:\n if ((subType.flags & 15360) == 1024 && subType.spec.ptrSize == 1) {\n spec.flags = 7168;break;\n };case 3:case 6:case 5:\n srcSpec = subType.spec;if ((subType.flags & 15360) != 2048) {}break;case 8:\n structureParam = \"\" + query.paramList[1];spec.paramList.push(query.paramList[1]);break;case 9:\n for (var _i = 0, _a = query.paramList[1]; _i < _a.length; _i++) {\n var paramId = _a[_i];var paramType = getComplexType(paramId, constructType, getType, queryType, place, kind, structure, depth + 1);argList.push(paramType.name);spec.paramList.push(paramType);\n }structureParam = argList.join(\", \");break;default:\n break;}spec.name = applyStructure(structure[2], structure[0], subType.name, subType.flags, structureParam);if (srcSpec) {\n for (var _b = 0, _c = Object.keys(srcSpec); _b < _c.length; _b++) {\n var key = _c[_b];spec[key] = spec[key] || srcSpec[key];\n }spec.flags |= srcSpec.flags;\n }return makeType(constructType, spec);\n }function makeType(constructType, spec) {\n var flags = spec.flags;var refKind = flags & 896;var kind = flags & 15360;if (!spec.name && kind == 1024) {\n if (spec.ptrSize == 1) {\n spec.name = (flags & 16 ? \"\" : (flags & 8 ? \"un\" : \"\") + \"signed \") + \"char\";\n } else {\n spec.name = (flags & 8 ? \"u\" : \"\") + (flags & 32 ? \"float\" : \"int\") + (spec.ptrSize * 8 + \"_t\");\n }\n }if (spec.ptrSize == 8 && !(flags & 32)) kind = 64;if (kind == 2048) {\n if (refKind == 512 || refKind == 640) {\n kind = 4096;\n } else if (refKind) kind = 3072;\n }return constructType(kind, spec);\n }var Type = function () {\n function Type(spec) {\n this.id = spec.id;this.name = spec.name;this.flags = spec.flags;this.spec = spec;\n }Type.prototype.toString = function () {\n return this.name;\n };return Type;\n }();var output = { Type: Type, getComplexType: getComplexType, makeType: makeType, structureList: structureList };self.output = output;return self.output || output;\n }function __nbind_register_type(id, namePtr) {\n var name = _nbind.readAsciiString(namePtr);var spec = { flags: 10240, id: id, name: name };_nbind.makeType(_nbind.constructType, spec);\n }function __nbind_register_callback_signature(typeListPtr, typeCount) {\n var typeList = _nbind.readTypeIdList(typeListPtr, typeCount);var num = _nbind.callbackSignatureList.length;_nbind.callbackSignatureList[num] = _nbind.makeJSCaller(typeList);return num;\n }function __extends(Class, Parent) {\n for (var key in Parent) if (Parent.hasOwnProperty(key)) Class[key] = Parent[key];function Base() {\n this.constructor = Class;\n }Base.prototype = Parent.prototype;Class.prototype = new Base();\n }function __nbind_register_class(idListPtr, policyListPtr, superListPtr, upcastListPtr, superCount, destructorPtr, namePtr) {\n var name = _nbind.readAsciiString(namePtr);var policyTbl = _nbind.readPolicyList(policyListPtr);var idList = HEAPU32.subarray(idListPtr / 4, idListPtr / 4 + 2);var spec = { flags: 2048 | (policyTbl[\"Value\"] ? 2 : 0), id: idList[0], name: name };var bindClass = _nbind.makeType(_nbind.constructType, spec);bindClass.ptrType = _nbind.getComplexType(idList[1], _nbind.constructType, _nbind.getType, _nbind.queryType);bindClass.destroy = _nbind.makeMethodCaller(bindClass.ptrType, { boundID: spec.id, flags: 0, name: \"destroy\", num: 0, ptr: destructorPtr, title: bindClass.name + \".free\", typeList: [\"void\", \"uint32_t\", \"uint32_t\"] });if (superCount) {\n bindClass.superIdList = Array.prototype.slice.call(HEAPU32.subarray(superListPtr / 4, superListPtr / 4 + superCount));bindClass.upcastList = Array.prototype.slice.call(HEAPU32.subarray(upcastListPtr / 4, upcastListPtr / 4 + superCount));\n }Module[bindClass.name] = bindClass.makeBound(policyTbl);_nbind.BindClass.list.push(bindClass);\n }function _removeAccessorPrefix(name) {\n var prefixMatcher = /^[Gg]et_?([A-Z]?([A-Z]?))/;return name.replace(prefixMatcher, function (match, initial, second) {\n return second ? initial : initial.toLowerCase();\n });\n }function __nbind_register_function(boundID, policyListPtr, typeListPtr, typeCount, ptr, direct, signatureType, namePtr, num, flags) {\n var bindClass = _nbind.getType(boundID);var policyTbl = _nbind.readPolicyList(policyListPtr);var typeList = _nbind.readTypeIdList(typeListPtr, typeCount);var specList;if (signatureType == 5) {\n specList = [{ direct: ptr, name: \"__nbindConstructor\", ptr: 0, title: bindClass.name + \" constructor\", typeList: [\"uint32_t\"].concat(typeList.slice(1)) }, { direct: direct, name: \"__nbindValueConstructor\", ptr: 0, title: bindClass.name + \" value constructor\", typeList: [\"void\", \"uint32_t\"].concat(typeList.slice(1)) }];\n } else {\n var name_1 = _nbind.readAsciiString(namePtr);var title = (bindClass.name && bindClass.name + \".\") + name_1;if (signatureType == 3 || signatureType == 4) {\n name_1 = _removeAccessorPrefix(name_1);\n }specList = [{ boundID: boundID, direct: direct, name: name_1, ptr: ptr, title: title, typeList: typeList }];\n }for (var _i = 0, specList_1 = specList; _i < specList_1.length; _i++) {\n var spec = specList_1[_i];spec.signatureType = signatureType;spec.policyTbl = policyTbl;spec.num = num;spec.flags = flags;bindClass.addMethod(spec);\n }\n }function _nbind_value(name, proto) {\n if (!_nbind.typeNameTbl[name]) _nbind.throwError(\"Unknown value type \" + name);Module[\"NBind\"].bind_value(name, proto);_defineHidden(_nbind.typeNameTbl[name].proto.prototype.__nbindValueConstructor)(proto.prototype, \"__nbindValueConstructor\");\n }Module[\"_nbind_value\"] = _nbind_value;function __nbind_get_value_object(num, ptr) {\n var obj = _nbind.popValue(num);if (!obj.fromJS) {\n throw new Error(\"Object \" + obj + \" has no fromJS function\");\n }obj.fromJS(function () {\n obj.__nbindValueConstructor.apply(this, Array.prototype.concat.apply([ptr], arguments));\n });\n }function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.set(HEAPU8.subarray(src, src + num), dest);return dest;\n }function __nbind_register_primitive(id, size, flags) {\n var spec = { flags: 1024 | flags, id: id, ptrSize: size };_nbind.makeType(_nbind.constructType, spec);\n }var cttz_i8 = allocate([8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0], \"i8\", ALLOC_STATIC);function ___setErrNo(value) {\n if (Module[\"___errno_location\"]) HEAP32[Module[\"___errno_location\"]() >> 2] = value;return value;\n }function _llvm_stacksave() {\n var self = _llvm_stacksave;if (!self.LLVM_SAVEDSTACKS) {\n self.LLVM_SAVEDSTACKS = [];\n }self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length - 1;\n }function ___syscall140(which, varargs) {\n SYSCALLS.varargs = varargs;try {\n var stream = SYSCALLS.getStreamFromFD(),\n offset_high = SYSCALLS.get(),\n offset_low = SYSCALLS.get(),\n result = SYSCALLS.get(),\n whence = SYSCALLS.get();var offset = offset_low;FS.llseek(stream, offset, whence);HEAP32[result >> 2] = stream.position;if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);return -e.errno;\n }\n }function ___syscall146(which, varargs) {\n SYSCALLS.varargs = varargs;try {\n var stream = SYSCALLS.get(),\n iov = SYSCALLS.get(),\n iovcnt = SYSCALLS.get();var ret = 0;if (!___syscall146.buffer) {\n ___syscall146.buffers = [null, [], []];___syscall146.printChar = function (stream, curr) {\n var buffer = ___syscall146.buffers[stream];assert(buffer);if (curr === 0 || curr === 10) {\n (stream === 1 ? Module[\"print\"] : Module[\"printErr\"])(UTF8ArrayToString(buffer, 0));buffer.length = 0;\n } else {\n buffer.push(curr);\n }\n };\n }for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];var len = HEAP32[iov + (i * 8 + 4) >> 2];for (var j = 0; j < len; j++) {\n ___syscall146.printChar(stream, HEAPU8[ptr + j]);\n }ret += len;\n }return ret;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);return -e.errno;\n }\n }function __nbind_finish() {\n for (var _i = 0, _a = _nbind.BindClass.list; _i < _a.length; _i++) {\n var bindClass = _a[_i];bindClass.finish();\n }\n }var ___dso_handle = STATICTOP;STATICTOP += 16;(function (_nbind) {\n var typeIdTbl = {};_nbind.typeNameTbl = {};var Pool = function () {\n function Pool() {}Pool.lalloc = function (size) {\n size = size + 7 & ~7;var used = HEAPU32[Pool.usedPtr];if (size > Pool.pageSize / 2 || size > Pool.pageSize - used) {\n var NBind = _nbind.typeNameTbl[\"NBind\"].proto;return NBind.lalloc(size);\n } else {\n HEAPU32[Pool.usedPtr] = used + size;return Pool.rootPtr + used;\n }\n };Pool.lreset = function (used, page) {\n var topPage = HEAPU32[Pool.pagePtr];if (topPage) {\n var NBind = _nbind.typeNameTbl[\"NBind\"].proto;NBind.lreset(used, page);\n } else {\n HEAPU32[Pool.usedPtr] = used;\n }\n };return Pool;\n }();_nbind.Pool = Pool;function constructType(kind, spec) {\n var construct = kind == 10240 ? _nbind.makeTypeNameTbl[spec.name] || _nbind.BindType : _nbind.makeTypeKindTbl[kind];var bindType = new construct(spec);typeIdTbl[spec.id] = bindType;_nbind.typeNameTbl[spec.name] = bindType;return bindType;\n }_nbind.constructType = constructType;function getType(id) {\n return typeIdTbl[id];\n }_nbind.getType = getType;function queryType(id) {\n var placeholderFlag = HEAPU8[id];var paramCount = _nbind.structureList[placeholderFlag][1];id /= 4;if (paramCount < 0) {\n ++id;paramCount = HEAPU32[id] + 1;\n }var paramList = Array.prototype.slice.call(HEAPU32.subarray(id + 1, id + 1 + paramCount));if (placeholderFlag == 9) {\n paramList = [paramList[0], paramList.slice(1)];\n }return { paramList: paramList, placeholderFlag: placeholderFlag };\n }_nbind.queryType = queryType;function getTypes(idList, place) {\n return idList.map(function (id) {\n return typeof id == \"number\" ? _nbind.getComplexType(id, constructType, getType, queryType, place) : _nbind.typeNameTbl[id];\n });\n }_nbind.getTypes = getTypes;function readTypeIdList(typeListPtr, typeCount) {\n return Array.prototype.slice.call(HEAPU32, typeListPtr / 4, typeListPtr / 4 + typeCount);\n }_nbind.readTypeIdList = readTypeIdList;function readAsciiString(ptr) {\n var endPtr = ptr;while (HEAPU8[endPtr++]);return String.fromCharCode.apply(\"\", HEAPU8.subarray(ptr, endPtr - 1));\n }_nbind.readAsciiString = readAsciiString;function readPolicyList(policyListPtr) {\n var policyTbl = {};if (policyListPtr) {\n while (1) {\n var namePtr = HEAPU32[policyListPtr / 4];if (!namePtr) break;policyTbl[readAsciiString(namePtr)] = true;policyListPtr += 4;\n }\n }return policyTbl;\n }_nbind.readPolicyList = readPolicyList;function getDynCall(typeList, name) {\n var mangleMap = { float32_t: \"d\", float64_t: \"d\", int64_t: \"d\", uint64_t: \"d\", \"void\": \"v\" };var signature = typeList.map(function (type) {\n return mangleMap[type.name] || \"i\";\n }).join(\"\");var dynCall = Module[\"dynCall_\" + signature];if (!dynCall) {\n throw new Error(\"dynCall_\" + signature + \" not found for \" + name + \"(\" + typeList.map(function (type) {\n return type.name;\n }).join(\", \") + \")\");\n }return dynCall;\n }_nbind.getDynCall = getDynCall;function addMethod(obj, name, func, arity) {\n var overload = obj[name];if (obj.hasOwnProperty(name) && overload) {\n if (overload.arity || overload.arity === 0) {\n overload = _nbind.makeOverloader(overload, overload.arity);obj[name] = overload;\n }overload.addMethod(func, arity);\n } else {\n func.arity = arity;obj[name] = func;\n }\n }_nbind.addMethod = addMethod;function throwError(message) {\n throw new Error(message);\n }_nbind.throwError = throwError;_nbind.bigEndian = false;var _a = _typeModule(_typeModule); _nbind.Type = _a.Type, _nbind.makeType = _a.makeType, _nbind.getComplexType = _a.getComplexType, _nbind.structureList = _a.structureList;var BindType = function (_super) {\n __extends(BindType, _super);function BindType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.heap = HEAPU32;_this.ptrSize = 4;return _this;\n }BindType.prototype.needsWireRead = function (policyTbl) {\n return !!this.wireRead || !!this.makeWireRead;\n };BindType.prototype.needsWireWrite = function (policyTbl) {\n return !!this.wireWrite || !!this.makeWireWrite;\n };return BindType;\n }(_nbind.Type);_nbind.BindType = BindType;var PrimitiveType = function (_super) {\n __extends(PrimitiveType, _super);function PrimitiveType(spec) {\n var _this = _super.call(this, spec) || this;var heapTbl = spec.flags & 32 ? { 32: HEAPF32, 64: HEAPF64 } : spec.flags & 8 ? { 8: HEAPU8, 16: HEAPU16, 32: HEAPU32 } : { 8: HEAP8, 16: HEAP16, 32: HEAP32 };_this.heap = heapTbl[spec.ptrSize * 8];_this.ptrSize = spec.ptrSize;return _this;\n }PrimitiveType.prototype.needsWireWrite = function (policyTbl) {\n return !!policyTbl && !!policyTbl[\"Strict\"];\n };PrimitiveType.prototype.makeWireWrite = function (expr, policyTbl) {\n return policyTbl && policyTbl[\"Strict\"] && function (arg) {\n if (typeof arg == \"number\") return arg;throw new Error(\"Type mismatch\");\n };\n };return PrimitiveType;\n }(BindType);_nbind.PrimitiveType = PrimitiveType;function pushCString(str, policyTbl) {\n if (str === null || str === undefined) {\n if (policyTbl && policyTbl[\"Nullable\"]) {\n return 0;\n } else throw new Error(\"Type mismatch\");\n }if (policyTbl && policyTbl[\"Strict\"]) {\n if (typeof str != \"string\") throw new Error(\"Type mismatch\");\n } else str = str.toString();var length = Module.lengthBytesUTF8(str) + 1;var result = _nbind.Pool.lalloc(length);Module.stringToUTF8Array(str, HEAPU8, result, length);return result;\n }_nbind.pushCString = pushCString;function popCString(ptr) {\n if (ptr === 0) return null;return Module.Pointer_stringify(ptr);\n }_nbind.popCString = popCString;var CStringType = function (_super) {\n __extends(CStringType, _super);function CStringType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireRead = popCString;_this.wireWrite = pushCString;_this.readResources = [_nbind.resources.pool];_this.writeResources = [_nbind.resources.pool];return _this;\n }CStringType.prototype.makeWireWrite = function (expr, policyTbl) {\n return function (arg) {\n return pushCString(arg, policyTbl);\n };\n };return CStringType;\n }(BindType);_nbind.CStringType = CStringType;var BooleanType = function (_super) {\n __extends(BooleanType, _super);function BooleanType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireRead = function (arg) {\n return !!arg;\n };return _this;\n }BooleanType.prototype.needsWireWrite = function (policyTbl) {\n return !!policyTbl && !!policyTbl[\"Strict\"];\n };BooleanType.prototype.makeWireRead = function (expr) {\n return \"!!(\" + expr + \")\";\n };BooleanType.prototype.makeWireWrite = function (expr, policyTbl) {\n return policyTbl && policyTbl[\"Strict\"] && function (arg) {\n if (typeof arg == \"boolean\") return arg;throw new Error(\"Type mismatch\");\n } || expr;\n };return BooleanType;\n }(BindType);_nbind.BooleanType = BooleanType;var Wrapper = function () {\n function Wrapper() {}Wrapper.prototype.persist = function () {\n this.__nbindState |= 1;\n };return Wrapper;\n }();_nbind.Wrapper = Wrapper;function makeBound(policyTbl, bindClass) {\n var Bound = function (_super) {\n __extends(Bound, _super);function Bound(marker, flags, ptr, shared) {\n var _this = _super.call(this) || this;if (!(_this instanceof Bound)) {\n return new (Function.prototype.bind.apply(Bound, Array.prototype.concat.apply([null], arguments)))();\n }var nbindFlags = flags;var nbindPtr = ptr;var nbindShared = shared;if (marker !== _nbind.ptrMarker) {\n var wirePtr = _this.__nbindConstructor.apply(_this, arguments);nbindFlags = 4096 | 512;nbindShared = HEAPU32[wirePtr / 4];nbindPtr = HEAPU32[wirePtr / 4 + 1];\n }var spec = { configurable: true, enumerable: false, value: null, writable: false };var propTbl = { \"__nbindFlags\": nbindFlags, \"__nbindPtr\": nbindPtr };if (nbindShared) {\n propTbl[\"__nbindShared\"] = nbindShared;_nbind.mark(_this);\n }for (var _i = 0, _a = Object.keys(propTbl); _i < _a.length; _i++) {\n var key = _a[_i];spec.value = propTbl[key];Object.defineProperty(_this, key, spec);\n }_defineHidden(0)(_this, \"__nbindState\");return _this;\n }Bound.prototype.free = function () {\n bindClass.destroy.call(this, this.__nbindShared, this.__nbindFlags);this.__nbindState |= 2;disableMember(this, \"__nbindShared\");disableMember(this, \"__nbindPtr\");\n };return Bound;\n }(Wrapper);__decorate([_defineHidden()], Bound.prototype, \"__nbindConstructor\", void 0);__decorate([_defineHidden()], Bound.prototype, \"__nbindValueConstructor\", void 0);__decorate([_defineHidden(policyTbl)], Bound.prototype, \"__nbindPolicies\", void 0);return Bound;\n }_nbind.makeBound = makeBound;function disableMember(obj, name) {\n function die() {\n throw new Error(\"Accessing deleted object\");\n }Object.defineProperty(obj, name, { configurable: false, enumerable: false, get: die, set: die });\n }_nbind.ptrMarker = {};var BindClass = function (_super) {\n __extends(BindClass, _super);function BindClass(spec) {\n var _this = _super.call(this, spec) || this;_this.wireRead = function (arg) {\n return _nbind.popValue(arg, _this.ptrType);\n };_this.wireWrite = function (arg) {\n return pushPointer(arg, _this.ptrType, true);\n };_this.pendingSuperCount = 0;_this.ready = false;_this.methodTbl = {};if (spec.paramList) {\n _this.classType = spec.paramList[0].classType;_this.proto = _this.classType.proto;\n } else _this.classType = _this;return _this;\n }BindClass.prototype.makeBound = function (policyTbl) {\n var Bound = _nbind.makeBound(policyTbl, this);this.proto = Bound;this.ptrType.proto = Bound;return Bound;\n };BindClass.prototype.addMethod = function (spec) {\n var overloadList = this.methodTbl[spec.name] || [];overloadList.push(spec);this.methodTbl[spec.name] = overloadList;\n };BindClass.prototype.registerMethods = function (src, staticOnly) {\n var setter;for (var _i = 0, _a = Object.keys(src.methodTbl); _i < _a.length; _i++) {\n var name_1 = _a[_i];var overloadList = src.methodTbl[name_1];for (var _b = 0, overloadList_1 = overloadList; _b < overloadList_1.length; _b++) {\n var spec = overloadList_1[_b];var target = void 0;var caller = void 0;target = this.proto.prototype;if (staticOnly && spec.signatureType != 1) continue;switch (spec.signatureType) {case 1:\n target = this.proto;case 5:\n caller = _nbind.makeCaller(spec);_nbind.addMethod(target, spec.name, caller, spec.typeList.length - 1);break;case 4:\n setter = _nbind.makeMethodCaller(src.ptrType, spec);break;case 3:\n Object.defineProperty(target, spec.name, { configurable: true, enumerable: false, get: _nbind.makeMethodCaller(src.ptrType, spec), set: setter });break;case 2:\n caller = _nbind.makeMethodCaller(src.ptrType, spec);_nbind.addMethod(target, spec.name, caller, spec.typeList.length - 1);break;default:\n break;}\n }\n }\n };BindClass.prototype.registerSuperMethods = function (src, firstSuper, visitTbl) {\n if (visitTbl[src.name]) return;visitTbl[src.name] = true;var superNum = 0;var nextFirst;for (var _i = 0, _a = src.superIdList || []; _i < _a.length; _i++) {\n var superId = _a[_i];var superClass = _nbind.getType(superId);if (superNum++ < firstSuper || firstSuper < 0) {\n nextFirst = -1;\n } else {\n nextFirst = 0;\n }this.registerSuperMethods(superClass, nextFirst, visitTbl);\n }this.registerMethods(src, firstSuper < 0);\n };BindClass.prototype.finish = function () {\n if (this.ready) return this;this.ready = true;this.superList = (this.superIdList || []).map(function (superId) {\n return _nbind.getType(superId).finish();\n });var Bound = this.proto;if (this.superList.length) {\n var Proto = function () {\n this.constructor = Bound;\n };Proto.prototype = this.superList[0].proto.prototype;Bound.prototype = new Proto();\n }if (Bound != Module) Bound.prototype.__nbindType = this;this.registerSuperMethods(this, 1, {});return this;\n };BindClass.prototype.upcastStep = function (dst, ptr) {\n if (dst == this) return ptr;for (var i = 0; i < this.superList.length; ++i) {\n var superPtr = this.superList[i].upcastStep(dst, _nbind.callUpcast(this.upcastList[i], ptr));if (superPtr) return superPtr;\n }return 0;\n };return BindClass;\n }(_nbind.BindType);BindClass.list = [];_nbind.BindClass = BindClass;function popPointer(ptr, type) {\n return ptr ? new type.proto(_nbind.ptrMarker, type.flags, ptr) : null;\n }_nbind.popPointer = popPointer;function pushPointer(obj, type, tryValue) {\n if (!(obj instanceof _nbind.Wrapper)) {\n if (tryValue) {\n return _nbind.pushValue(obj);\n } else throw new Error(\"Type mismatch\");\n }var ptr = obj.__nbindPtr;var objType = obj.__nbindType.classType;var classType = type.classType;if (obj instanceof type.proto) {\n while (objType != classType) {\n ptr = _nbind.callUpcast(objType.upcastList[0], ptr);objType = objType.superList[0];\n }\n } else {\n ptr = objType.upcastStep(classType, ptr);if (!ptr) throw new Error(\"Type mismatch\");\n }return ptr;\n }_nbind.pushPointer = pushPointer;function pushMutablePointer(obj, type) {\n var ptr = pushPointer(obj, type);if (obj.__nbindFlags & 1) {\n throw new Error(\"Passing a const value as a non-const argument\");\n }return ptr;\n }var BindClassPtr = function (_super) {\n __extends(BindClassPtr, _super);function BindClassPtr(spec) {\n var _this = _super.call(this, spec) || this;_this.classType = spec.paramList[0].classType;_this.proto = _this.classType.proto;var isConst = spec.flags & 1;var isValue = (_this.flags & 896) == 256 && spec.flags & 2;var push = isConst ? pushPointer : pushMutablePointer;var pop = isValue ? _nbind.popValue : popPointer;_this.makeWireWrite = function (expr, policyTbl) {\n return policyTbl[\"Nullable\"] ? function (arg) {\n return arg ? push(arg, _this) : 0;\n } : function (arg) {\n return push(arg, _this);\n };\n };_this.wireRead = function (arg) {\n return pop(arg, _this);\n };_this.wireWrite = function (arg) {\n return push(arg, _this);\n };return _this;\n }return BindClassPtr;\n }(_nbind.BindType);_nbind.BindClassPtr = BindClassPtr;function popShared(ptr, type) {\n var shared = HEAPU32[ptr / 4];var unsafe = HEAPU32[ptr / 4 + 1];return unsafe ? new type.proto(_nbind.ptrMarker, type.flags, unsafe, shared) : null;\n }_nbind.popShared = popShared;function pushShared(obj, type) {\n if (!(obj instanceof type.proto)) throw new Error(\"Type mismatch\");return obj.__nbindShared;\n }function pushMutableShared(obj, type) {\n if (!(obj instanceof type.proto)) throw new Error(\"Type mismatch\");if (obj.__nbindFlags & 1) {\n throw new Error(\"Passing a const value as a non-const argument\");\n }return obj.__nbindShared;\n }var SharedClassPtr = function (_super) {\n __extends(SharedClassPtr, _super);function SharedClassPtr(spec) {\n var _this = _super.call(this, spec) || this;_this.readResources = [_nbind.resources.pool];_this.classType = spec.paramList[0].classType;_this.proto = _this.classType.proto;var isConst = spec.flags & 1;var push = isConst ? pushShared : pushMutableShared;_this.wireRead = function (arg) {\n return popShared(arg, _this);\n };_this.wireWrite = function (arg) {\n return push(arg, _this);\n };return _this;\n }return SharedClassPtr;\n }(_nbind.BindType);_nbind.SharedClassPtr = SharedClassPtr;_nbind.externalList = [0];var firstFreeExternal = 0;var External = function () {\n function External(data) {\n this.refCount = 1;this.data = data;\n }External.prototype.register = function () {\n var num = firstFreeExternal;if (num) {\n firstFreeExternal = _nbind.externalList[num];\n } else num = _nbind.externalList.length;_nbind.externalList[num] = this;return num;\n };External.prototype.reference = function () {\n ++this.refCount;\n };External.prototype.dereference = function (num) {\n if (--this.refCount == 0) {\n if (this.free) this.free();_nbind.externalList[num] = firstFreeExternal;firstFreeExternal = num;\n }\n };return External;\n }();_nbind.External = External;function popExternal(num) {\n var obj = _nbind.externalList[num];obj.dereference(num);return obj.data;\n }function pushExternal(obj) {\n var external = new External(obj);external.reference();return external.register();\n }var ExternalType = function (_super) {\n __extends(ExternalType, _super);function ExternalType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireRead = popExternal;_this.wireWrite = pushExternal;return _this;\n }return ExternalType;\n }(_nbind.BindType);_nbind.ExternalType = ExternalType;_nbind.callbackSignatureList = [];var CallbackType = function (_super) {\n __extends(CallbackType, _super);function CallbackType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireWrite = function (func) {\n if (typeof func != \"function\") _nbind.throwError(\"Type mismatch\");return new _nbind.External(func).register();\n };return _this;\n }return CallbackType;\n }(_nbind.BindType);_nbind.CallbackType = CallbackType;_nbind.valueList = [0];var firstFreeValue = 0;function pushValue(value) {\n var num = firstFreeValue;if (num) {\n firstFreeValue = _nbind.valueList[num];\n } else num = _nbind.valueList.length;_nbind.valueList[num] = value;return num * 2 + 1;\n }_nbind.pushValue = pushValue;function popValue(num, type) {\n if (!num) _nbind.throwError(\"Value type JavaScript class is missing or not registered\");if (num & 1) {\n num >>= 1;var obj = _nbind.valueList[num];_nbind.valueList[num] = firstFreeValue;firstFreeValue = num;return obj;\n } else if (type) {\n return _nbind.popShared(num, type);\n } else throw new Error(\"Invalid value slot \" + num);\n }_nbind.popValue = popValue;var valueBase = 0x10000000000000000;function push64(num) {\n if (typeof num == \"number\") return num;return pushValue(num) * 4096 + valueBase;\n }function pop64(num) {\n if (num < valueBase) return num;return popValue((num - valueBase) / 4096);\n }var CreateValueType = function (_super) {\n __extends(CreateValueType, _super);function CreateValueType() {\n return _super !== null && _super.apply(this, arguments) || this;\n }CreateValueType.prototype.makeWireWrite = function (expr) {\n return \"(_nbind.pushValue(new \" + expr + \"))\";\n };return CreateValueType;\n }(_nbind.BindType);_nbind.CreateValueType = CreateValueType;var Int64Type = function (_super) {\n __extends(Int64Type, _super);function Int64Type() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireWrite = push64;_this.wireRead = pop64;return _this;\n }return Int64Type;\n }(_nbind.BindType);_nbind.Int64Type = Int64Type;function pushArray(arr, type) {\n if (!arr) return 0;var length = arr.length;if ((type.size || type.size === 0) && length < type.size) {\n throw new Error(\"Type mismatch\");\n }var ptrSize = type.memberType.ptrSize;var result = _nbind.Pool.lalloc(4 + length * ptrSize);HEAPU32[result / 4] = length;var heap = type.memberType.heap;var ptr = (result + 4) / ptrSize;var wireWrite = type.memberType.wireWrite;var num = 0;if (wireWrite) {\n while (num < length) {\n heap[ptr++] = wireWrite(arr[num++]);\n }\n } else {\n while (num < length) {\n heap[ptr++] = arr[num++];\n }\n }return result;\n }_nbind.pushArray = pushArray;function popArray(ptr, type) {\n if (ptr === 0) return null;var length = HEAPU32[ptr / 4];var arr = new Array(length);var heap = type.memberType.heap;ptr = (ptr + 4) / type.memberType.ptrSize;var wireRead = type.memberType.wireRead;var num = 0;if (wireRead) {\n while (num < length) {\n arr[num++] = wireRead(heap[ptr++]);\n }\n } else {\n while (num < length) {\n arr[num++] = heap[ptr++];\n }\n }return arr;\n }_nbind.popArray = popArray;var ArrayType = function (_super) {\n __extends(ArrayType, _super);function ArrayType(spec) {\n var _this = _super.call(this, spec) || this;_this.wireRead = function (arg) {\n return popArray(arg, _this);\n };_this.wireWrite = function (arg) {\n return pushArray(arg, _this);\n };_this.readResources = [_nbind.resources.pool];_this.writeResources = [_nbind.resources.pool];_this.memberType = spec.paramList[0];if (spec.paramList[1]) _this.size = spec.paramList[1];return _this;\n }return ArrayType;\n }(_nbind.BindType);_nbind.ArrayType = ArrayType;function pushString(str, policyTbl) {\n if (str === null || str === undefined) {\n if (policyTbl && policyTbl[\"Nullable\"]) {\n str = \"\";\n } else throw new Error(\"Type mismatch\");\n }if (policyTbl && policyTbl[\"Strict\"]) {\n if (typeof str != \"string\") throw new Error(\"Type mismatch\");\n } else str = str.toString();var length = Module.lengthBytesUTF8(str);var result = _nbind.Pool.lalloc(4 + length + 1);HEAPU32[result / 4] = length;Module.stringToUTF8Array(str, HEAPU8, result + 4, length + 1);return result;\n }_nbind.pushString = pushString;function popString(ptr) {\n if (ptr === 0) return null;var length = HEAPU32[ptr / 4];return Module.Pointer_stringify(ptr + 4, length);\n }_nbind.popString = popString;var StringType = function (_super) {\n __extends(StringType, _super);function StringType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireRead = popString;_this.wireWrite = pushString;_this.readResources = [_nbind.resources.pool];_this.writeResources = [_nbind.resources.pool];return _this;\n }StringType.prototype.makeWireWrite = function (expr, policyTbl) {\n return function (arg) {\n return pushString(arg, policyTbl);\n };\n };return StringType;\n }(_nbind.BindType);_nbind.StringType = StringType;function makeArgList(argCount) {\n return Array.apply(null, Array(argCount)).map(function (dummy, num) {\n return \"a\" + (num + 1);\n });\n }function anyNeedsWireWrite(typeList, policyTbl) {\n return typeList.reduce(function (result, type) {\n return result || type.needsWireWrite(policyTbl);\n }, false);\n }function anyNeedsWireRead(typeList, policyTbl) {\n return typeList.reduce(function (result, type) {\n return result || !!type.needsWireRead(policyTbl);\n }, false);\n }function makeWireRead(convertParamList, policyTbl, type, expr) {\n var paramNum = convertParamList.length;if (type.makeWireRead) {\n return type.makeWireRead(expr, convertParamList, paramNum);\n } else if (type.wireRead) {\n convertParamList[paramNum] = type.wireRead;return \"(convertParamList[\" + paramNum + \"](\" + expr + \"))\";\n } else return expr;\n }function makeWireWrite(convertParamList, policyTbl, type, expr) {\n var wireWrite;var paramNum = convertParamList.length;if (type.makeWireWrite) {\n wireWrite = type.makeWireWrite(expr, policyTbl, convertParamList, paramNum);\n } else wireWrite = type.wireWrite;if (wireWrite) {\n if (typeof wireWrite == \"string\") {\n return wireWrite;\n } else {\n convertParamList[paramNum] = wireWrite;return \"(convertParamList[\" + paramNum + \"](\" + expr + \"))\";\n }\n } else return expr;\n }function buildCallerFunction(dynCall, ptrType, ptr, num, policyTbl, needsWireWrite, prefix, returnType, argTypeList, mask, err) {\n var argList = makeArgList(argTypeList.length);var convertParamList = [];var callExpression = makeWireRead(convertParamList, policyTbl, returnType, \"dynCall(\" + [prefix].concat(argList.map(function (name, index) {\n return makeWireWrite(convertParamList, policyTbl, argTypeList[index], name);\n })).join(\",\") + \")\");var resourceSet = _nbind.listResources([returnType], argTypeList);var sourceCode = \"function(\" + argList.join(\",\") + \"){\" + (mask ? \"this.__nbindFlags&mask&&err();\" : \"\") + resourceSet.makeOpen() + \"var r=\" + callExpression + \";\" + resourceSet.makeClose() + \"return r;\" + \"}\";return eval(\"(\" + sourceCode + \")\");\n }function buildJSCallerFunction(returnType, argTypeList) {\n var argList = makeArgList(argTypeList.length);var convertParamList = [];var callExpression = makeWireWrite(convertParamList, null, returnType, \"_nbind.externalList[num].data(\" + argList.map(function (name, index) {\n return makeWireRead(convertParamList, null, argTypeList[index], name);\n }).join(\",\") + \")\");var resourceSet = _nbind.listResources(argTypeList, [returnType]);resourceSet.remove(_nbind.resources.pool);var sourceCode = \"function(\" + [\"dummy\", \"num\"].concat(argList).join(\",\") + \"){\" + resourceSet.makeOpen() + \"var r=\" + callExpression + \";\" + resourceSet.makeClose() + \"return r;\" + \"}\";return eval(\"(\" + sourceCode + \")\");\n }_nbind.buildJSCallerFunction = buildJSCallerFunction;function makeJSCaller(idList) {\n var argCount = idList.length - 1;var typeList = _nbind.getTypes(idList, \"callback\");var returnType = typeList[0];var argTypeList = typeList.slice(1);var needsWireRead = anyNeedsWireRead(argTypeList, null);var needsWireWrite = returnType.needsWireWrite(null);if (!needsWireWrite && !needsWireRead) {\n switch (argCount) {case 0:\n return function (dummy, num) {\n return _nbind.externalList[num].data();\n };case 1:\n return function (dummy, num, a1) {\n return _nbind.externalList[num].data(a1);\n };case 2:\n return function (dummy, num, a1, a2) {\n return _nbind.externalList[num].data(a1, a2);\n };case 3:\n return function (dummy, num, a1, a2, a3) {\n return _nbind.externalList[num].data(a1, a2, a3);\n };default:\n break;}\n }return buildJSCallerFunction(returnType, argTypeList);\n }_nbind.makeJSCaller = makeJSCaller;function makeMethodCaller(ptrType, spec) {\n var argCount = spec.typeList.length - 1;var typeIdList = spec.typeList.slice(0);typeIdList.splice(1, 0, \"uint32_t\", spec.boundID);var typeList = _nbind.getTypes(typeIdList, spec.title);var returnType = typeList[0];var argTypeList = typeList.slice(3);var needsWireRead = returnType.needsWireRead(spec.policyTbl);var needsWireWrite = anyNeedsWireWrite(argTypeList, spec.policyTbl);var ptr = spec.ptr;var num = spec.num;var dynCall = _nbind.getDynCall(typeList, spec.title);var mask = ~spec.flags & 1;function err() {\n throw new Error(\"Calling a non-const method on a const object\");\n }if (!needsWireRead && !needsWireWrite) {\n switch (argCount) {case 0:\n return function () {\n return this.__nbindFlags & mask ? err() : dynCall(ptr, num, _nbind.pushPointer(this, ptrType));\n };case 1:\n return function (a1) {\n return this.__nbindFlags & mask ? err() : dynCall(ptr, num, _nbind.pushPointer(this, ptrType), a1);\n };case 2:\n return function (a1, a2) {\n return this.__nbindFlags & mask ? err() : dynCall(ptr, num, _nbind.pushPointer(this, ptrType), a1, a2);\n };case 3:\n return function (a1, a2, a3) {\n return this.__nbindFlags & mask ? err() : dynCall(ptr, num, _nbind.pushPointer(this, ptrType), a1, a2, a3);\n };default:\n break;}\n }return buildCallerFunction(dynCall, ptrType, ptr, num, spec.policyTbl, needsWireWrite, \"ptr,num,pushPointer(this,ptrType)\", returnType, argTypeList, mask, err);\n }_nbind.makeMethodCaller = makeMethodCaller;function makeCaller(spec) {\n var argCount = spec.typeList.length - 1;var typeList = _nbind.getTypes(spec.typeList, spec.title);var returnType = typeList[0];var argTypeList = typeList.slice(1);var needsWireRead = returnType.needsWireRead(spec.policyTbl);var needsWireWrite = anyNeedsWireWrite(argTypeList, spec.policyTbl);var direct = spec.direct;var ptr = spec.ptr;if (spec.direct && !needsWireRead && !needsWireWrite) {\n var dynCall_1 = _nbind.getDynCall(typeList, spec.title);switch (argCount) {case 0:\n return function () {\n return dynCall_1(direct);\n };case 1:\n return function (a1) {\n return dynCall_1(direct, a1);\n };case 2:\n return function (a1, a2) {\n return dynCall_1(direct, a1, a2);\n };case 3:\n return function (a1, a2, a3) {\n return dynCall_1(direct, a1, a2, a3);\n };default:\n break;}ptr = 0;\n }var prefix;if (ptr) {\n var typeIdList = spec.typeList.slice(0);typeIdList.splice(1, 0, \"uint32_t\");typeList = _nbind.getTypes(typeIdList, spec.title);prefix = \"ptr,num\";\n } else {\n ptr = direct;prefix = \"ptr\";\n }var dynCall = _nbind.getDynCall(typeList, spec.title);return buildCallerFunction(dynCall, null, ptr, spec.num, spec.policyTbl, needsWireWrite, prefix, returnType, argTypeList);\n }_nbind.makeCaller = makeCaller;function makeOverloader(func, arity) {\n var callerList = [];function call() {\n return callerList[arguments.length].apply(this, arguments);\n }call.addMethod = function (_func, _arity) {\n callerList[_arity] = _func;\n };call.addMethod(func, arity);return call;\n }_nbind.makeOverloader = makeOverloader;var Resource = function () {\n function Resource(open, close) {\n var _this = this;this.makeOpen = function () {\n return Object.keys(_this.openTbl).join(\"\");\n };this.makeClose = function () {\n return Object.keys(_this.closeTbl).join(\"\");\n };this.openTbl = {};this.closeTbl = {};if (open) this.openTbl[open] = true;if (close) this.closeTbl[close] = true;\n }Resource.prototype.add = function (other) {\n for (var _i = 0, _a = Object.keys(other.openTbl); _i < _a.length; _i++) {\n var key = _a[_i];this.openTbl[key] = true;\n }for (var _b = 0, _c = Object.keys(other.closeTbl); _b < _c.length; _b++) {\n var key = _c[_b];this.closeTbl[key] = true;\n }\n };Resource.prototype.remove = function (other) {\n for (var _i = 0, _a = Object.keys(other.openTbl); _i < _a.length; _i++) {\n var key = _a[_i];delete this.openTbl[key];\n }for (var _b = 0, _c = Object.keys(other.closeTbl); _b < _c.length; _b++) {\n var key = _c[_b];delete this.closeTbl[key];\n }\n };return Resource;\n }();_nbind.Resource = Resource;function listResources(readList, writeList) {\n var result = new Resource();for (var _i = 0, readList_1 = readList; _i < readList_1.length; _i++) {\n var bindType = readList_1[_i];for (var _a = 0, _b = bindType.readResources || []; _a < _b.length; _a++) {\n var resource = _b[_a];result.add(resource);\n }\n }for (var _c = 0, writeList_1 = writeList; _c < writeList_1.length; _c++) {\n var bindType = writeList_1[_c];for (var _d = 0, _e = bindType.writeResources || []; _d < _e.length; _d++) {\n var resource = _e[_d];result.add(resource);\n }\n }return result;\n }_nbind.listResources = listResources;_nbind.resources = { pool: new Resource(\"var used=HEAPU32[_nbind.Pool.usedPtr],page=HEAPU32[_nbind.Pool.pagePtr];\", \"_nbind.Pool.lreset(used,page);\") };var ExternalBuffer = function (_super) {\n __extends(ExternalBuffer, _super);function ExternalBuffer(buf, ptr) {\n var _this = _super.call(this, buf) || this;_this.ptr = ptr;return _this;\n }ExternalBuffer.prototype.free = function () {\n _free(this.ptr);\n };return ExternalBuffer;\n }(_nbind.External);function getBuffer(buf) {\n if (buf instanceof ArrayBuffer) {\n return new Uint8Array(buf);\n } else if (buf instanceof DataView) {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n } else return buf;\n }function pushBuffer(buf, policyTbl) {\n if (buf === null || buf === undefined) {\n if (policyTbl && policyTbl[\"Nullable\"]) buf = [];\n }if (typeof buf != \"object\") throw new Error(\"Type mismatch\");var b = buf;var length = b.byteLength || b.length;if (!length && length !== 0 && b.byteLength !== 0) throw new Error(\"Type mismatch\");var result = _nbind.Pool.lalloc(8);var data = _malloc(length);var ptr = result / 4;HEAPU32[ptr++] = length;HEAPU32[ptr++] = data;HEAPU32[ptr++] = new ExternalBuffer(buf, data).register();HEAPU8.set(getBuffer(buf), data);return result;\n }var BufferType = function (_super) {\n __extends(BufferType, _super);function BufferType() {\n var _this = _super !== null && _super.apply(this, arguments) || this;_this.wireWrite = pushBuffer;_this.readResources = [_nbind.resources.pool];_this.writeResources = [_nbind.resources.pool];return _this;\n }BufferType.prototype.makeWireWrite = function (expr, policyTbl) {\n return function (arg) {\n return pushBuffer(arg, policyTbl);\n };\n };return BufferType;\n }(_nbind.BindType);_nbind.BufferType = BufferType;function commitBuffer(num, data, length) {\n var buf = _nbind.externalList[num].data;var NodeBuffer = Buffer;if (typeof Buffer != \"function\") NodeBuffer = function () {};if (buf instanceof Array) {} else {\n var src = HEAPU8.subarray(data, data + length);if (buf instanceof NodeBuffer) {\n var srcBuf = void 0;if (typeof Buffer.from == \"function\" && Buffer.from.length >= 3) {\n srcBuf = Buffer.from(src);\n } else srcBuf = Buffer.from(src);srcBuf.copy(buf);\n } else getBuffer(buf).set(src);\n }\n }_nbind.commitBuffer = commitBuffer;var dirtyList = [];var gcTimer = 0;function sweep() {\n for (var _i = 0, dirtyList_1 = dirtyList; _i < dirtyList_1.length; _i++) {\n var obj = dirtyList_1[_i];if (!(obj.__nbindState & (1 | 2))) {\n obj.free();\n }\n }dirtyList = [];gcTimer = 0;\n }_nbind.mark = function (obj) {};function toggleLightGC(enable) {\n if (enable) {\n _nbind.mark = function (obj) {\n dirtyList.push(obj);if (!gcTimer) gcTimer = setTimeout(sweep, 0);\n };\n } else {\n _nbind.mark = function (obj) {};\n }\n }_nbind.toggleLightGC = toggleLightGC;\n })(_nbind);Module[\"requestFullScreen\"] = function Module_requestFullScreen(lockPointer, resizeCanvas, vrDevice) {\n Module.printErr(\"Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.\");Module[\"requestFullScreen\"] = Module[\"requestFullscreen\"];Browser.requestFullScreen(lockPointer, resizeCanvas, vrDevice);\n };Module[\"requestFullscreen\"] = function Module_requestFullscreen(lockPointer, resizeCanvas, vrDevice) {\n Browser.requestFullscreen(lockPointer, resizeCanvas, vrDevice);\n };Module[\"requestAnimationFrame\"] = function Module_requestAnimationFrame(func) {\n Browser.requestAnimationFrame(func);\n };Module[\"setCanvasSize\"] = function Module_setCanvasSize(width, height, noUpdates) {\n Browser.setCanvasSize(width, height, noUpdates);\n };Module[\"pauseMainLoop\"] = function Module_pauseMainLoop() {\n Browser.mainLoop.pause();\n };Module[\"resumeMainLoop\"] = function Module_resumeMainLoop() {\n Browser.mainLoop.resume();\n };Module[\"getUserMedia\"] = function Module_getUserMedia() {\n Browser.getUserMedia();\n };Module[\"createContext\"] = function Module_createContext(canvas, useWebGL, setInModule, webGLContextAttributes) {\n return Browser.createContext(canvas, useWebGL, setInModule, webGLContextAttributes);\n };if (ENVIRONMENT_IS_NODE) {\n _emscripten_get_now = function _emscripten_get_now_actual() {\n var t = process[\"hrtime\"]();return t[0] * 1e3 + t[1] / 1e6;\n };\n } else if (typeof dateNow !== \"undefined\") {\n _emscripten_get_now = dateNow;\n } else if (typeof self === \"object\" && self[\"performance\"] && typeof self[\"performance\"][\"now\"] === \"function\") {\n _emscripten_get_now = function () {\n return self[\"performance\"][\"now\"]();\n };\n } else if (typeof performance === \"object\" && typeof performance[\"now\"] === \"function\") {\n _emscripten_get_now = function () {\n return performance[\"now\"]();\n };\n } else {\n _emscripten_get_now = Date.now;\n }__ATEXIT__.push(function () {\n var fflush = Module[\"_fflush\"];if (fflush) fflush(0);var printChar = ___syscall146.printChar;if (!printChar) return;var buffers = ___syscall146.buffers;if (buffers[1].length) printChar(1, 10);if (buffers[2].length) printChar(2, 10);\n });DYNAMICTOP_PTR = allocate(1, \"i32\", ALLOC_STATIC);STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);STACK_MAX = STACK_BASE + TOTAL_STACK;DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;staticSealed = true;function invoke_viiiii(index, a1, a2, a3, a4, a5) {\n try {\n Module[\"dynCall_viiiii\"](index, a1, a2, a3, a4, a5);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_vif(index, a1, a2) {\n try {\n Module[\"dynCall_vif\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_vid(index, a1, a2) {\n try {\n Module[\"dynCall_vid\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_fiff(index, a1, a2, a3) {\n try {\n return Module[\"dynCall_fiff\"](index, a1, a2, a3);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_vi(index, a1) {\n try {\n Module[\"dynCall_vi\"](index, a1);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_vii(index, a1, a2) {\n try {\n Module[\"dynCall_vii\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_ii(index, a1) {\n try {\n return Module[\"dynCall_ii\"](index, a1);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viddi(index, a1, a2, a3, a4) {\n try {\n Module[\"dynCall_viddi\"](index, a1, a2, a3, a4);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_vidd(index, a1, a2, a3) {\n try {\n Module[\"dynCall_vidd\"](index, a1, a2, a3);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_iiii(index, a1, a2, a3) {\n try {\n return Module[\"dynCall_iiii\"](index, a1, a2, a3);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_diii(index, a1, a2, a3) {\n try {\n return Module[\"dynCall_diii\"](index, a1, a2, a3);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_di(index, a1) {\n try {\n return Module[\"dynCall_di\"](index, a1);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_iid(index, a1, a2) {\n try {\n return Module[\"dynCall_iid\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_iii(index, a1, a2) {\n try {\n return Module[\"dynCall_iii\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viiddi(index, a1, a2, a3, a4, a5) {\n try {\n Module[\"dynCall_viiddi\"](index, a1, a2, a3, a4, a5);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) {\n try {\n Module[\"dynCall_viiiiii\"](index, a1, a2, a3, a4, a5, a6);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_dii(index, a1, a2) {\n try {\n return Module[\"dynCall_dii\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_i(index) {\n try {\n return Module[\"dynCall_i\"](index);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_iiiiii(index, a1, a2, a3, a4, a5) {\n try {\n return Module[\"dynCall_iiiiii\"](index, a1, a2, a3, a4, a5);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viiid(index, a1, a2, a3, a4) {\n try {\n Module[\"dynCall_viiid\"](index, a1, a2, a3, a4);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viififi(index, a1, a2, a3, a4, a5, a6) {\n try {\n Module[\"dynCall_viififi\"](index, a1, a2, a3, a4, a5, a6);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viii(index, a1, a2, a3) {\n try {\n Module[\"dynCall_viii\"](index, a1, a2, a3);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_v(index) {\n try {\n Module[\"dynCall_v\"](index);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viid(index, a1, a2, a3) {\n try {\n Module[\"dynCall_viid\"](index, a1, a2, a3);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_idd(index, a1, a2) {\n try {\n return Module[\"dynCall_idd\"](index, a1, a2);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }function invoke_viiii(index, a1, a2, a3, a4) {\n try {\n Module[\"dynCall_viiii\"](index, a1, a2, a3, a4);\n } catch (e) {\n if (typeof e !== \"number\" && e !== \"longjmp\") throw e;Module[\"setThrew\"](1, 0);\n }\n }Module.asmGlobalArg = { \"Math\": Math, \"Int8Array\": Int8Array, \"Int16Array\": Int16Array, \"Int32Array\": Int32Array, \"Uint8Array\": Uint8Array, \"Uint16Array\": Uint16Array, \"Uint32Array\": Uint32Array, \"Float32Array\": Float32Array, \"Float64Array\": Float64Array, \"NaN\": NaN, \"Infinity\": Infinity };Module.asmLibraryArg = { \"abort\": abort, \"assert\": assert, \"enlargeMemory\": enlargeMemory, \"getTotalMemory\": getTotalMemory, \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory, \"invoke_viiiii\": invoke_viiiii, \"invoke_vif\": invoke_vif, \"invoke_vid\": invoke_vid, \"invoke_fiff\": invoke_fiff, \"invoke_vi\": invoke_vi, \"invoke_vii\": invoke_vii, \"invoke_ii\": invoke_ii, \"invoke_viddi\": invoke_viddi, \"invoke_vidd\": invoke_vidd, \"invoke_iiii\": invoke_iiii, \"invoke_diii\": invoke_diii, \"invoke_di\": invoke_di, \"invoke_iid\": invoke_iid, \"invoke_iii\": invoke_iii, \"invoke_viiddi\": invoke_viiddi, \"invoke_viiiiii\": invoke_viiiiii, \"invoke_dii\": invoke_dii, \"invoke_i\": invoke_i, \"invoke_iiiiii\": invoke_iiiiii, \"invoke_viiid\": invoke_viiid, \"invoke_viififi\": invoke_viififi, \"invoke_viii\": invoke_viii, \"invoke_v\": invoke_v, \"invoke_viid\": invoke_viid, \"invoke_idd\": invoke_idd, \"invoke_viiii\": invoke_viiii, \"_emscripten_asm_const_iiiii\": _emscripten_asm_const_iiiii, \"_emscripten_asm_const_iiidddddd\": _emscripten_asm_const_iiidddddd, \"_emscripten_asm_const_iiiid\": _emscripten_asm_const_iiiid, \"__nbind_reference_external\": __nbind_reference_external, \"_emscripten_asm_const_iiiiiiii\": _emscripten_asm_const_iiiiiiii, \"_removeAccessorPrefix\": _removeAccessorPrefix, \"_typeModule\": _typeModule, \"__nbind_register_pool\": __nbind_register_pool, \"__decorate\": __decorate, \"_llvm_stackrestore\": _llvm_stackrestore, \"___cxa_atexit\": ___cxa_atexit, \"__extends\": __extends, \"__nbind_get_value_object\": __nbind_get_value_object, \"__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj\": __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj, \"_emscripten_set_main_loop_timing\": _emscripten_set_main_loop_timing, \"__nbind_register_primitive\": __nbind_register_primitive, \"__nbind_register_type\": __nbind_register_type, \"_emscripten_memcpy_big\": _emscripten_memcpy_big, \"__nbind_register_function\": __nbind_register_function, \"___setErrNo\": ___setErrNo, \"__nbind_register_class\": __nbind_register_class, \"__nbind_finish\": __nbind_finish, \"_abort\": _abort, \"_nbind_value\": _nbind_value, \"_llvm_stacksave\": _llvm_stacksave, \"___syscall54\": ___syscall54, \"_defineHidden\": _defineHidden, \"_emscripten_set_main_loop\": _emscripten_set_main_loop, \"_emscripten_get_now\": _emscripten_get_now, \"__nbind_register_callback_signature\": __nbind_register_callback_signature, \"_emscripten_asm_const_iiiiii\": _emscripten_asm_const_iiiiii, \"__nbind_free_external\": __nbind_free_external, \"_emscripten_asm_const_iiii\": _emscripten_asm_const_iiii, \"_emscripten_asm_const_iiididi\": _emscripten_asm_const_iiididi, \"___syscall6\": ___syscall6, \"_atexit\": _atexit, \"___syscall140\": ___syscall140, \"___syscall146\": ___syscall146, \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR, \"tempDoublePtr\": tempDoublePtr, \"ABORT\": ABORT, \"STACKTOP\": STACKTOP, \"STACK_MAX\": STACK_MAX, \"cttz_i8\": cttz_i8, \"___dso_handle\": ___dso_handle }; // EMSCRIPTEN_START_ASM\n var asm = function (global, env, buffer) {\n \"use asm\";\n var a = new global.Int8Array(buffer);var b = new global.Int16Array(buffer);var c = new global.Int32Array(buffer);var d = new global.Uint8Array(buffer);var e = new global.Uint16Array(buffer);var f = new global.Uint32Array(buffer);var g = new global.Float32Array(buffer);var h = new global.Float64Array(buffer);var i = env.DYNAMICTOP_PTR | 0;var j = env.tempDoublePtr | 0;var k = env.ABORT | 0;var l = env.STACKTOP | 0;var m = env.STACK_MAX | 0;var n = env.cttz_i8 | 0;var o = env.___dso_handle | 0;var p = 0;var q = 0;var r = 0;var s = 0;var t = global.NaN,\n u = global.Infinity;var v = 0,\n w = 0,\n x = 0,\n y = 0,\n z = 0.0;var A = 0;var B = global.Math.floor;var C = global.Math.abs;var D = global.Math.sqrt;var E = global.Math.pow;var F = global.Math.cos;var G = global.Math.sin;var H = global.Math.tan;var I = global.Math.acos;var J = global.Math.asin;var K = global.Math.atan;var L = global.Math.atan2;var M = global.Math.exp;var N = global.Math.log;var O = global.Math.ceil;var P = global.Math.imul;var Q = global.Math.min;var R = global.Math.max;var S = global.Math.clz32;var T = global.Math.fround;var U = env.abort;var V = env.assert;var W = env.enlargeMemory;var X = env.getTotalMemory;var Y = env.abortOnCannotGrowMemory;var Z = env.invoke_viiiii;var _ = env.invoke_vif;var $ = env.invoke_vid;var aa = env.invoke_fiff;var ba = env.invoke_vi;var ca = env.invoke_vii;var da = env.invoke_ii;var ea = env.invoke_viddi;var fa = env.invoke_vidd;var ga = env.invoke_iiii;var ha = env.invoke_diii;var ia = env.invoke_di;var ja = env.invoke_iid;var ka = env.invoke_iii;var la = env.invoke_viiddi;var ma = env.invoke_viiiiii;var na = env.invoke_dii;var oa = env.invoke_i;var pa = env.invoke_iiiiii;var qa = env.invoke_viiid;var ra = env.invoke_viififi;var sa = env.invoke_viii;var ta = env.invoke_v;var ua = env.invoke_viid;var va = env.invoke_idd;var wa = env.invoke_viiii;var xa = env._emscripten_asm_const_iiiii;var ya = env._emscripten_asm_const_iiidddddd;var za = env._emscripten_asm_const_iiiid;var Aa = env.__nbind_reference_external;var Ba = env._emscripten_asm_const_iiiiiiii;var Ca = env._removeAccessorPrefix;var Da = env._typeModule;var Ea = env.__nbind_register_pool;var Fa = env.__decorate;var Ga = env._llvm_stackrestore;var Ha = env.___cxa_atexit;var Ia = env.__extends;var Ja = env.__nbind_get_value_object;var Ka = env.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj;var La = env._emscripten_set_main_loop_timing;var Ma = env.__nbind_register_primitive;var Na = env.__nbind_register_type;var Oa = env._emscripten_memcpy_big;var Pa = env.__nbind_register_function;var Qa = env.___setErrNo;var Ra = env.__nbind_register_class;var Sa = env.__nbind_finish;var Ta = env._abort;var Ua = env._nbind_value;var Va = env._llvm_stacksave;var Wa = env.___syscall54;var Xa = env._defineHidden;var Ya = env._emscripten_set_main_loop;var Za = env._emscripten_get_now;var _a = env.__nbind_register_callback_signature;var $a = env._emscripten_asm_const_iiiiii;var ab = env.__nbind_free_external;var bb = env._emscripten_asm_const_iiii;var cb = env._emscripten_asm_const_iiididi;var db = env.___syscall6;var eb = env._atexit;var fb = env.___syscall140;var gb = env.___syscall146;var hb = T(0);const ib = T(0);\n // EMSCRIPTEN_START_FUNCS\n function Jb(a) {\n a = a | 0;var b = 0;b = l;l = l + a | 0;l = l + 15 & -16;return b | 0;\n }function Kb() {\n return l | 0;\n }function Lb(a) {\n a = a | 0;l = a;\n }function Mb(a, b) {\n a = a | 0;b = b | 0;l = a;m = b;\n }function Nb(a, b) {\n a = a | 0;b = b | 0;if (!p) {\n p = a;q = b;\n }\n }function Ob(a) {\n a = a | 0;A = a;\n }function Pb() {\n return A | 0;\n }function Qb() {\n var b = 0,\n d = 0;BC(8104, 8, 400) | 0;BC(8504, 408, 540) | 0;b = 9044;d = b + 44 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));a[9088] = 0;a[9089] = 1;c[2273] = 0;c[2274] = 948;c[2275] = 948;Ha(17, 8104, o | 0) | 0;return;\n }function Rb(a) {\n a = a | 0;oc(a + 948 | 0);return;\n }function Sb(a) {\n a = T(a);return ((af(a) | 0) & 2147483647) >>> 0 > 2139095040 | 0;\n }function Tb(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;a: do if (!(c[a + (b << 3) + 4 >> 2] | 0)) {\n if ((b | 2 | 0) == 3 ? c[a + 60 >> 2] | 0 : 0) {\n a = a + 56 | 0;break;\n }switch (b | 0) {case 0:case 2:case 4:case 5:\n {\n if (c[a + 52 >> 2] | 0) {\n a = a + 48 | 0;break a;\n }break;\n }default:\n {}}if (!(c[a + 68 >> 2] | 0)) {\n a = (b | 1 | 0) == 5 ? 948 : d;break;\n } else {\n a = a + 64 | 0;break;\n }\n } else a = a + (b << 3) | 0; while (0);return a | 0;\n }function Ub(b) {\n b = b | 0;var d = 0;d = oB(1e3) | 0;Vb(b, (d | 0) != 0, 2456);c[2276] = (c[2276] | 0) + 1;BC(d | 0, 8104, 1e3) | 0;if (a[b + 2 >> 0] | 0) {\n c[d + 4 >> 2] = 2;c[d + 12 >> 2] = 4;\n }c[d + 976 >> 2] = b;return d | 0;\n }function Vb(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0;f = l;l = l + 16 | 0;e = f;if (!b) {\n c[e >> 2] = d;fe(a, 5, 3197, e);\n }l = f;return;\n }function Wb() {\n return Ub(956) | 0;\n }function Xb(a) {\n a = a | 0;var b = 0;b = qC(1e3) | 0;Yb(b, a);Vb(c[a + 976 >> 2] | 0, 1, 2456);c[2276] = (c[2276] | 0) + 1;c[b + 944 >> 2] = 0;return b | 0;\n }function Yb(a, b) {\n a = a | 0;b = b | 0;var d = 0;BC(a | 0, b | 0, 948) | 0;ie(a + 948 | 0, b + 948 | 0);d = a + 960 | 0;a = b + 960 | 0;b = d + 40 | 0;do {\n c[d >> 2] = c[a >> 2];d = d + 4 | 0;a = a + 4 | 0;\n } while ((d | 0) < (b | 0));return;\n }function Zb(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0;b = a + 944 | 0;d = c[b >> 2] | 0;if (d | 0) {\n _b(d + 948 | 0, a) | 0;c[b >> 2] = 0;\n }d = $b(a) | 0;if (d | 0) {\n b = 0;do {\n c[(ac(a, b) | 0) + 944 >> 2] = 0;b = b + 1 | 0;\n } while ((b | 0) != (d | 0));\n }d = a + 948 | 0;e = c[d >> 2] | 0;f = a + 952 | 0;b = c[f >> 2] | 0;if ((b | 0) != (e | 0)) c[f >> 2] = b + (~((b + -4 - e | 0) >>> 2) << 2);bc(d);pB(a);c[2276] = (c[2276] | 0) + -1;return;\n }function _b(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = c[a >> 2] | 0;i = a + 4 | 0;d = c[i >> 2] | 0;g = d;a: do if ((e | 0) == (d | 0)) {\n f = e;h = 4;\n } else {\n a = e;while (1) {\n if ((c[a >> 2] | 0) == (b | 0)) {\n f = a;h = 4;break a;\n }a = a + 4 | 0;if ((a | 0) == (d | 0)) {\n a = 0;break;\n }\n }\n } while (0);if ((h | 0) == 4) if ((f | 0) != (d | 0)) {\n e = f + 4 | 0;a = g - e | 0;b = a >> 2;if (b) {\n GC(f | 0, e | 0, a | 0) | 0;d = c[i >> 2] | 0;\n }a = f + (b << 2) | 0;if ((d | 0) == (a | 0)) a = 1;else {\n c[i >> 2] = d + (~((d + -4 - a | 0) >>> 2) << 2);a = 1;\n }\n } else a = 0;return a | 0;\n }function $b(a) {\n a = a | 0;return (c[a + 952 >> 2] | 0) - (c[a + 948 >> 2] | 0) >> 2 | 0;\n }function ac(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[a + 948 >> 2] | 0;if ((c[a + 952 >> 2] | 0) - d >> 2 >>> 0 > b >>> 0) a = c[d + (b << 2) >> 2] | 0;else a = 0;return a | 0;\n }function bc(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0;e = l;l = l + 32 | 0;b = e;f = c[a >> 2] | 0;d = (c[a + 4 >> 2] | 0) - f | 0;if (((c[a + 8 >> 2] | 0) - f | 0) >>> 0 > d >>> 0) {\n f = d >> 2;bf(b, f, f, a + 8 | 0);cf(a, b);df(b);\n }l = e;return;\n }function cc(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0;k = $b(a) | 0;do if (k | 0) {\n if ((c[(ac(a, 0) | 0) + 944 >> 2] | 0) == (a | 0)) {\n if (!(_b(a + 948 | 0, b) | 0)) break;BC(b + 400 | 0, 8504, 540) | 0;c[b + 944 >> 2] = 0;nc(a);break;\n }h = c[(c[a + 976 >> 2] | 0) + 12 >> 2] | 0;i = a + 948 | 0;j = (h | 0) == 0;d = 0;g = 0;do {\n e = c[(c[i >> 2] | 0) + (g << 2) >> 2] | 0;if ((e | 0) == (b | 0)) nc(a);else {\n f = Xb(e) | 0;c[(c[i >> 2] | 0) + (d << 2) >> 2] = f;c[f + 944 >> 2] = a;if (!j) Ib[h & 15](e, f, a, d);d = d + 1 | 0;\n }g = g + 1 | 0;\n } while ((g | 0) != (k | 0));if (d >>> 0 < k >>> 0) {\n j = a + 948 | 0;i = a + 952 | 0;h = d;d = c[i >> 2] | 0;do {\n g = (c[j >> 2] | 0) + (h << 2) | 0;e = g + 4 | 0;f = d - e | 0;b = f >> 2;if (!b) f = d;else {\n GC(g | 0, e | 0, f | 0) | 0;d = c[i >> 2] | 0;f = d;\n }e = g + (b << 2) | 0;if ((f | 0) != (e | 0)) {\n d = f + (~((f + -4 - e | 0) >>> 2) << 2) | 0;c[i >> 2] = d;\n }h = h + 1 | 0;\n } while ((h | 0) != (k | 0));\n }\n } while (0);return;\n }function dc(b) {\n b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;ec(b, ($b(b) | 0) == 0, 2491);ec(b, (c[b + 944 >> 2] | 0) == 0, 2545);d = b + 948 | 0;e = c[d >> 2] | 0;f = b + 952 | 0;g = c[f >> 2] | 0;if ((g | 0) != (e | 0)) c[f >> 2] = g + (~((g + -4 - e | 0) >>> 2) << 2);bc(d);d = b + 976 | 0;e = c[d >> 2] | 0;BC(b | 0, 8104, 1e3) | 0;if (a[e + 2 >> 0] | 0) {\n c[b + 4 >> 2] = 2;c[b + 12 >> 2] = 4;\n }c[d >> 2] = e;return;\n }function ec(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0;f = l;l = l + 16 | 0;e = f;if (!b) {\n c[e >> 2] = d;Vd(a, 5, 3197, e);\n }l = f;return;\n }function fc() {\n return c[2276] | 0;\n }function gc() {\n var a = 0;a = oB(20) | 0;hc((a | 0) != 0, 2592);c[2277] = (c[2277] | 0) + 1;c[a >> 2] = c[239];c[a + 4 >> 2] = c[240];c[a + 8 >> 2] = c[241];c[a + 12 >> 2] = c[242];c[a + 16 >> 2] = c[243];return a | 0;\n }function hc(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = l;l = l + 16 | 0;d = e;if (!a) {\n c[d >> 2] = b;Vd(0, 5, 3197, d);\n }l = e;return;\n }function ic(a) {\n a = a | 0;pB(a);c[2277] = (c[2277] | 0) + -1;return;\n }function jc(a, b) {\n a = a | 0;b = b | 0;var d = 0;if (!b) {\n d = 0;b = 0;\n } else {\n ec(a, ($b(a) | 0) == 0, 2629);d = 1;\n }c[a + 964 >> 2] = b;c[a + 988 >> 2] = d;return;\n }function kc(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;g = e + 8 | 0;f = e + 4 | 0;h = e;c[f >> 2] = b;ec(a, (c[b + 944 >> 2] | 0) == 0, 2709);ec(a, (c[a + 964 >> 2] | 0) == 0, 2763);lc(a);b = a + 948 | 0;c[h >> 2] = (c[b >> 2] | 0) + (d << 2);c[g >> 2] = c[h >> 2];mc(b, g, f) | 0;c[(c[f >> 2] | 0) + 944 >> 2] = a;nc(a);l = e;return;\n }function lc(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;d = $b(a) | 0;if (d | 0 ? (c[(ac(a, 0) | 0) + 944 >> 2] | 0) != (a | 0) : 0) {\n e = c[(c[a + 976 >> 2] | 0) + 12 >> 2] | 0;f = a + 948 | 0;g = (e | 0) == 0;b = 0;do {\n h = c[(c[f >> 2] | 0) + (b << 2) >> 2] | 0;i = Xb(h) | 0;c[(c[f >> 2] | 0) + (b << 2) >> 2] = i;c[i + 944 >> 2] = a;if (!g) Ib[e & 15](h, i, a, b);b = b + 1 | 0;\n } while ((b | 0) != (d | 0));\n }return;\n }function mc(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0,\n t = 0;s = l;l = l + 64 | 0;n = s + 52 | 0;i = s + 48 | 0;o = s + 28 | 0;p = s + 24 | 0;q = s + 20 | 0;r = s;e = c[a >> 2] | 0;g = e;b = e + ((c[b >> 2] | 0) - g >> 2 << 2) | 0;e = a + 4 | 0;f = c[e >> 2] | 0;h = a + 8 | 0;do if (f >>> 0 < (c[h >> 2] | 0) >>> 0) {\n if ((b | 0) == (f | 0)) {\n c[b >> 2] = c[d >> 2];c[e >> 2] = (c[e >> 2] | 0) + 4;break;\n }ef(a, b, f, b + 4 | 0);if (b >>> 0 <= d >>> 0) d = (c[e >> 2] | 0) >>> 0 > d >>> 0 ? d + 4 | 0 : d;c[b >> 2] = c[d >> 2];\n } else {\n e = (f - g >> 2) + 1 | 0;f = le(a) | 0;if (f >>> 0 < e >>> 0) jC(a);m = c[a >> 2] | 0;k = (c[h >> 2] | 0) - m | 0;g = k >> 1;bf(r, k >> 2 >>> 0 < f >>> 1 >>> 0 ? g >>> 0 < e >>> 0 ? e : g : f, b - m >> 2, a + 8 | 0);m = r + 8 | 0;e = c[m >> 2] | 0;g = r + 12 | 0;k = c[g >> 2] | 0;h = k;j = e;do if ((e | 0) == (k | 0)) {\n k = r + 4 | 0;e = c[k >> 2] | 0;t = c[r >> 2] | 0;f = t;if (e >>> 0 <= t >>> 0) {\n e = h - f >> 1;e = (e | 0) == 0 ? 1 : e;bf(o, e, e >>> 2, c[r + 16 >> 2] | 0);c[p >> 2] = c[k >> 2];c[q >> 2] = c[m >> 2];c[i >> 2] = c[p >> 2];c[n >> 2] = c[q >> 2];gf(o, i, n);e = c[r >> 2] | 0;c[r >> 2] = c[o >> 2];c[o >> 2] = e;e = o + 4 | 0;t = c[k >> 2] | 0;c[k >> 2] = c[e >> 2];c[e >> 2] = t;e = o + 8 | 0;t = c[m >> 2] | 0;c[m >> 2] = c[e >> 2];c[e >> 2] = t;e = o + 12 | 0;t = c[g >> 2] | 0;c[g >> 2] = c[e >> 2];c[e >> 2] = t;df(o);e = c[m >> 2] | 0;break;\n }g = e;h = ((g - f >> 2) + 1 | 0) / -2 | 0;i = e + (h << 2) | 0;f = j - g | 0;g = f >> 2;if (g) {\n GC(i | 0, e | 0, f | 0) | 0;e = c[k >> 2] | 0;\n }t = i + (g << 2) | 0;c[m >> 2] = t;c[k >> 2] = e + (h << 2);e = t;\n } while (0);c[e >> 2] = c[d >> 2];c[m >> 2] = (c[m >> 2] | 0) + 4;b = ff(a, r, b) | 0;df(r);\n } while (0);l = s;return b | 0;\n }function nc(b) {\n b = b | 0;var d = 0;do {\n d = b + 984 | 0;if (a[d >> 0] | 0) break;a[d >> 0] = 1;g[b + 504 >> 2] = T(t);b = c[b + 944 >> 2] | 0;\n } while ((b | 0) != 0);return;\n }function oc(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -4 - e | 0) >>> 2) << 2);sC(d);\n }return;\n }function pc(a) {\n a = a | 0;return c[a + 944 >> 2] | 0;\n }function qc(a) {\n a = a | 0;ec(a, (c[a + 964 >> 2] | 0) != 0, 2832);nc(a);return;\n }function rc(b) {\n b = b | 0;return (a[b + 984 >> 0] | 0) != 0 | 0;\n }function sc(a, b) {\n a = a | 0;b = b | 0;if (BB(a, b, 400) | 0) {\n BC(a | 0, b | 0, 400) | 0;nc(a);\n }return;\n }function tc(a) {\n a = a | 0;var b = ib;b = T(g[a + 44 >> 2]);a = Sb(b) | 0;return T(a ? T(0.0) : b);\n }function uc(b) {\n b = b | 0;var d = ib;d = T(g[b + 48 >> 2]);if (Sb(d) | 0) d = a[(c[b + 976 >> 2] | 0) + 2 >> 0] | 0 ? T(1.0) : T(0.0);return T(d);\n }function vc(a, b) {\n a = a | 0;b = b | 0;c[a + 980 >> 2] = b;return;\n }function wc(a) {\n a = a | 0;return c[a + 980 >> 2] | 0;\n }function xc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 4 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function yc(a) {\n a = a | 0;return c[a + 4 >> 2] | 0;\n }function zc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 8 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Ac(a) {\n a = a | 0;return c[a + 8 >> 2] | 0;\n }function Bc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 12 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Cc(a) {\n a = a | 0;return c[a + 12 >> 2] | 0;\n }function Dc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 16 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Ec(a) {\n a = a | 0;return c[a + 16 >> 2] | 0;\n }function Fc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 20 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Gc(a) {\n a = a | 0;return c[a + 20 >> 2] | 0;\n }function Hc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 24 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Ic(a) {\n a = a | 0;return c[a + 24 >> 2] | 0;\n }function Jc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 28 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Kc(a) {\n a = a | 0;return c[a + 28 >> 2] | 0;\n }function Lc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 32 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Mc(a) {\n a = a | 0;return c[a + 32 >> 2] | 0;\n }function Nc(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 36 | 0;if ((c[d >> 2] | 0) != (b | 0)) {\n c[d >> 2] = b;nc(a);\n }return;\n }function Oc(a) {\n a = a | 0;return c[a + 36 >> 2] | 0;\n }function Pc(a, b) {\n a = a | 0;b = T(b);var c = 0;c = a + 40 | 0;if (T(g[c >> 2]) != b) {\n g[c >> 2] = b;nc(a);\n }return;\n }function Qc(a, b) {\n a = a | 0;b = T(b);var c = 0;c = a + 44 | 0;if (T(g[c >> 2]) != b) {\n g[c >> 2] = b;nc(a);\n }return;\n }function Rc(a, b) {\n a = a | 0;b = T(b);var c = 0;c = a + 48 | 0;if (T(g[c >> 2]) != b) {\n g[c >> 2] = b;nc(a);\n }return;\n }function Sc(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 52 | 0;f = a + 56 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function Tc(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0;e = a + 52 | 0;d = a + 56 | 0;if (!(!(T(g[e >> 2]) != b) ? (c[d >> 2] | 0) == 2 : 0)) {\n g[e >> 2] = b;e = Sb(b) | 0;c[d >> 2] = e ? 3 : 2;nc(a);\n }return;\n }function Uc(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 52 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function Vc(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = (h ^ 1) & 1;f = a + 132 + (b << 3) | 0;b = a + 132 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function Wc(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = h ? 0 : 2;f = a + 132 + (b << 3) | 0;b = a + 132 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function Xc(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = b + 132 + (d << 3) | 0;b = c[e + 4 >> 2] | 0;d = a;c[d >> 2] = c[e >> 2];c[d + 4 >> 2] = b;return;\n }function Yc(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = (h ^ 1) & 1;f = a + 60 + (b << 3) | 0;b = a + 60 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function Zc(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = h ? 0 : 2;f = a + 60 + (b << 3) | 0;b = a + 60 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function _c(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = b + 60 + (d << 3) | 0;b = c[e + 4 >> 2] | 0;d = a;c[d >> 2] = c[e >> 2];c[d + 4 >> 2] = b;return;\n }function $c(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = a + 60 + (b << 3) + 4 | 0;if ((c[d >> 2] | 0) != 3) {\n g[a + 60 + (b << 3) >> 2] = T(t);c[d >> 2] = 3;nc(a);\n }return;\n }function ad(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = (h ^ 1) & 1;f = a + 204 + (b << 3) | 0;b = a + 204 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function bd(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = h ? 0 : 2;f = a + 204 + (b << 3) | 0;b = a + 204 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function cd(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = b + 204 + (d << 3) | 0;b = c[e + 4 >> 2] | 0;d = a;c[d >> 2] = c[e >> 2];c[d + 4 >> 2] = b;return;\n }function dd(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0,\n h = 0;h = Sb(d) | 0;e = (h ^ 1) & 1;f = a + 276 + (b << 3) | 0;b = a + 276 + (b << 3) + 4 | 0;if (!(h | T(g[f >> 2]) == d ? (c[b >> 2] | 0) == (e | 0) : 0)) {\n g[f >> 2] = d;c[b >> 2] = e;nc(a);\n }return;\n }function ed(a, b) {\n a = a | 0;b = b | 0;return T(g[a + 276 + (b << 3) >> 2]);\n }function fd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 348 | 0;f = a + 352 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function gd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0;e = a + 348 | 0;d = a + 352 | 0;if (!(!(T(g[e >> 2]) != b) ? (c[d >> 2] | 0) == 2 : 0)) {\n g[e >> 2] = b;e = Sb(b) | 0;c[d >> 2] = e ? 3 : 2;nc(a);\n }return;\n }function hd(a) {\n a = a | 0;var b = 0;b = a + 352 | 0;if ((c[b >> 2] | 0) != 3) {\n g[a + 348 >> 2] = T(t);c[b >> 2] = 3;nc(a);\n }return;\n }function id(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 348 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function jd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 356 | 0;f = a + 360 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function kd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0;e = a + 356 | 0;d = a + 360 | 0;if (!(!(T(g[e >> 2]) != b) ? (c[d >> 2] | 0) == 2 : 0)) {\n g[e >> 2] = b;e = Sb(b) | 0;c[d >> 2] = e ? 3 : 2;nc(a);\n }return;\n }function ld(a) {\n a = a | 0;var b = 0;b = a + 360 | 0;if ((c[b >> 2] | 0) != 3) {\n g[a + 356 >> 2] = T(t);c[b >> 2] = 3;nc(a);\n }return;\n }function md(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 356 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function nd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 364 | 0;f = a + 368 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function od(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = h ? 0 : 2;e = a + 364 | 0;f = a + 368 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function pd(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 364 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function qd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 372 | 0;f = a + 376 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function rd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = h ? 0 : 2;e = a + 372 | 0;f = a + 376 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function sd(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 372 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function td(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 380 | 0;f = a + 384 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function ud(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = h ? 0 : 2;e = a + 380 | 0;f = a + 384 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function vd(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 380 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function wd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = (h ^ 1) & 1;e = a + 388 | 0;f = a + 392 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function xd(a, b) {\n a = a | 0;b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0;h = Sb(b) | 0;d = h ? 0 : 2;e = a + 388 | 0;f = a + 392 | 0;if (!(h | T(g[e >> 2]) == b ? (c[f >> 2] | 0) == (d | 0) : 0)) {\n g[e >> 2] = b;c[f >> 2] = d;nc(a);\n }return;\n }function yd(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = b + 388 | 0;d = c[e + 4 >> 2] | 0;b = a;c[b >> 2] = c[e >> 2];c[b + 4 >> 2] = d;return;\n }function zd(a, b) {\n a = a | 0;b = T(b);var c = 0;c = a + 396 | 0;if (T(g[c >> 2]) != b) {\n g[c >> 2] = b;nc(a);\n }return;\n }function Ad(a) {\n a = a | 0;return T(g[a + 396 >> 2]);\n }function Bd(a) {\n a = a | 0;return T(g[a + 400 >> 2]);\n }function Cd(a) {\n a = a | 0;return T(g[a + 404 >> 2]);\n }function Dd(a) {\n a = a | 0;return T(g[a + 408 >> 2]);\n }function Ed(a) {\n a = a | 0;return T(g[a + 412 >> 2]);\n }function Fd(a) {\n a = a | 0;return T(g[a + 416 >> 2]);\n }function Gd(a) {\n a = a | 0;return T(g[a + 420 >> 2]);\n }function Hd(a, b) {\n a = a | 0;b = b | 0;ec(a, (b | 0) < 6, 2918);switch (b | 0) {case 0:\n {\n b = (c[a + 496 >> 2] | 0) == 2 ? 5 : 4;break;\n }case 2:\n {\n b = (c[a + 496 >> 2] | 0) == 2 ? 4 : 5;break;\n }default:\n {}}return T(g[a + 424 + (b << 2) >> 2]);\n }function Id(a, b) {\n a = a | 0;b = b | 0;ec(a, (b | 0) < 6, 2918);switch (b | 0) {case 0:\n {\n b = (c[a + 496 >> 2] | 0) == 2 ? 5 : 4;break;\n }case 2:\n {\n b = (c[a + 496 >> 2] | 0) == 2 ? 4 : 5;break;\n }default:\n {}}return T(g[a + 448 + (b << 2) >> 2]);\n }function Jd(a, b) {\n a = a | 0;b = b | 0;ec(a, (b | 0) < 6, 2918);switch (b | 0) {case 0:\n {\n b = (c[a + 496 >> 2] | 0) == 2 ? 5 : 4;break;\n }case 2:\n {\n b = (c[a + 496 >> 2] | 0) == 2 ? 4 : 5;break;\n }default:\n {}}return T(g[a + 472 + (b << 2) >> 2]);\n }function Kd(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = ib;d = c[a + 4 >> 2] | 0;if ((d | 0) == (c[b + 4 >> 2] | 0)) {\n if (!d) a = 1;else {\n e = T(g[a >> 2]);a = T(C(T(e - T(g[b >> 2])))) < T(.0000999999974);\n }\n } else a = 0;return a | 0;\n }function Ld(a, b) {\n a = T(a);b = T(b);var c = 0;if (Sb(a) | 0) c = Sb(b) | 0;else c = T(C(T(a - b))) < T(.0000999999974);return c | 0;\n }function Md(a, b) {\n a = a | 0;b = b | 0;Nd(a, b);return;\n }function Nd(b, d) {\n b = b | 0;d = d | 0;var e = 0,\n f = 0;e = l;l = l + 16 | 0;f = e + 4 | 0;c[f >> 2] = 0;c[f + 4 >> 2] = 0;c[f + 8 >> 2] = 0;Ka(f | 0, b | 0, d | 0, 0);Vd(b, 3, (a[f + 11 >> 0] | 0) < 0 ? c[f >> 2] | 0 : f, e);tC(f);l = e;return;\n }function Od(a, b, c, d) {\n a = T(a);b = T(b);c = c | 0;d = d | 0;var e = ib;a = T(a * b);e = T(gC(a, T(1.0)));do if (!(Ld(e, T(0.0)) | 0)) {\n a = T(a - e);if (Ld(e, T(1.0)) | 0) {\n a = T(a + T(1.0));break;\n }if (c) {\n a = T(a + T(1.0));break;\n }if (!d) {\n if (e > T(.5)) e = T(1.0);else {\n d = Ld(e, T(.5)) | 0;e = d ? T(1.0) : T(0.0);\n }a = T(a + e);\n }\n } else a = T(a - e); while (0);return T(a / b);\n }function Pd(a, b, c, d, e, f, h, i, j, k, l, m, n) {\n a = a | 0;b = T(b);c = c | 0;d = T(d);e = e | 0;f = T(f);h = h | 0;i = T(i);j = T(j);k = T(k);l = T(l);m = T(m);n = n | 0;var o = 0,\n p = ib,\n q = ib,\n r = ib,\n s = ib,\n t = ib,\n u = ib;if (j < T(0.0) | k < T(0.0)) n = 0;else {\n if ((n | 0) != 0 ? (p = T(g[n + 4 >> 2]), p != T(0.0)) : 0) {\n r = T(Od(b, p, 0, 0));s = T(Od(d, p, 0, 0));q = T(Od(f, p, 0, 0));p = T(Od(i, p, 0, 0));\n } else {\n q = f;r = b;p = i;s = d;\n }if ((e | 0) == (a | 0)) o = Ld(q, r) | 0;else o = 0;if ((h | 0) == (c | 0)) n = Ld(p, s) | 0;else n = 0;if ((!o ? (t = T(b - l), !(Qd(a, t, j) | 0)) : 0) ? !(Rd(a, t, e, j) | 0) : 0) o = Sd(a, t, e, f, j) | 0;else o = 1;if ((!n ? (u = T(d - m), !(Qd(c, u, k) | 0)) : 0) ? !(Rd(c, u, h, k) | 0) : 0) n = Sd(c, u, h, i, k) | 0;else n = 1;n = o & n;\n }return n | 0;\n }function Qd(a, b, c) {\n a = a | 0;b = T(b);c = T(c);if ((a | 0) == 1) a = Ld(b, c) | 0;else a = 0;return a | 0;\n }function Rd(a, b, c, d) {\n a = a | 0;b = T(b);c = c | 0;d = T(d);if ((a | 0) == 2 & (c | 0) == 0) {\n if (!(b >= d)) a = Ld(b, d) | 0;else a = 1;\n } else a = 0;return a | 0;\n }function Sd(a, b, c, d, e) {\n a = a | 0;b = T(b);c = c | 0;d = T(d);e = T(e);if ((a | 0) == 2 & (c | 0) == 2 & d > b) {\n if (!(e <= b)) a = Ld(b, e) | 0;else a = 1;\n } else a = 0;return a | 0;\n }function Td(b, d, e, f, i, j, k, m, n, o, p) {\n b = b | 0;d = T(d);e = T(e);f = f | 0;i = i | 0;j = j | 0;k = T(k);m = T(m);n = n | 0;o = o | 0;p = p | 0;var q = 0,\n r = 0,\n s = 0,\n t = 0,\n u = ib,\n v = ib,\n w = 0,\n x = 0,\n y = 0,\n z = 0,\n A = 0,\n B = 0,\n C = 0,\n D = 0,\n E = 0,\n F = 0,\n G = 0,\n H = ib,\n I = ib,\n J = ib,\n K = 0.0,\n L = 0.0;G = l;l = l + 160 | 0;D = G + 152 | 0;C = G + 120 | 0;B = G + 104 | 0;y = G + 72 | 0;t = G + 56 | 0;A = G + 8 | 0;x = G;z = (c[2279] | 0) + 1 | 0;c[2279] = z;E = b + 984 | 0;if ((a[E >> 0] | 0) != 0 ? (c[b + 512 >> 2] | 0) != (c[2278] | 0) : 0) w = 4;else if ((c[b + 516 >> 2] | 0) == (f | 0)) F = 0;else w = 4;if ((w | 0) == 4) {\n c[b + 520 >> 2] = 0;c[b + 924 >> 2] = -1;c[b + 928 >> 2] = -1;g[b + 932 >> 2] = T(-1.0);g[b + 936 >> 2] = T(-1.0);F = 1;\n }a: do if (!(c[b + 964 >> 2] | 0)) {\n if (n) {\n q = b + 916 | 0;if (!(Ld(T(g[q >> 2]), d) | 0)) {\n w = 21;break;\n }if (!(Ld(T(g[b + 920 >> 2]), e) | 0)) {\n w = 21;break;\n }if ((c[b + 924 >> 2] | 0) != (i | 0)) {\n w = 21;break;\n }q = (c[b + 928 >> 2] | 0) == (j | 0) ? q : 0;w = 22;break;\n }s = c[b + 520 >> 2] | 0;if (!s) w = 21;else {\n r = 0;while (1) {\n q = b + 524 + (r * 24 | 0) | 0;if (((Ld(T(g[q >> 2]), d) | 0 ? Ld(T(g[b + 524 + (r * 24 | 0) + 4 >> 2]), e) | 0 : 0) ? (c[b + 524 + (r * 24 | 0) + 8 >> 2] | 0) == (i | 0) : 0) ? (c[b + 524 + (r * 24 | 0) + 12 >> 2] | 0) == (j | 0) : 0) {\n w = 22;break a;\n }r = r + 1 | 0;if (r >>> 0 >= s >>> 0) {\n w = 21;break;\n }\n }\n }\n } else {\n u = T(Ud(b, 2, k));v = T(Ud(b, 0, k));q = b + 916 | 0;J = T(g[q >> 2]);I = T(g[b + 920 >> 2]);H = T(g[b + 932 >> 2]);if (!(Pd(i, d, j, e, c[b + 924 >> 2] | 0, J, c[b + 928 >> 2] | 0, I, H, T(g[b + 936 >> 2]), u, v, p) | 0)) {\n s = c[b + 520 >> 2] | 0;if (!s) w = 21;else {\n r = 0;while (1) {\n q = b + 524 + (r * 24 | 0) | 0;H = T(g[q >> 2]);I = T(g[b + 524 + (r * 24 | 0) + 4 >> 2]);J = T(g[b + 524 + (r * 24 | 0) + 16 >> 2]);if (Pd(i, d, j, e, c[b + 524 + (r * 24 | 0) + 8 >> 2] | 0, H, c[b + 524 + (r * 24 | 0) + 12 >> 2] | 0, I, J, T(g[b + 524 + (r * 24 | 0) + 20 >> 2]), u, v, p) | 0) {\n w = 22;break a;\n }r = r + 1 | 0;if (r >>> 0 >= s >>> 0) {\n w = 21;break;\n }\n }\n }\n } else w = 22;\n } while (0);do if ((w | 0) == 21) {\n if (!(a[11697] | 0)) {\n q = 0;w = 31;\n } else {\n q = 0;w = 28;\n }\n } else if ((w | 0) == 22) {\n r = (a[11697] | 0) != 0;if (!((q | 0) != 0 & (F ^ 1))) if (r) {\n w = 28;break;\n } else {\n w = 31;break;\n }t = q + 16 | 0;c[b + 908 >> 2] = c[t >> 2];s = q + 20 | 0;c[b + 912 >> 2] = c[s >> 2];if (!((a[11698] | 0) == 0 | r ^ 1)) {\n c[x >> 2] = Wd(z) | 0;c[x + 4 >> 2] = z;Vd(b, 4, 2972, x);r = c[b + 972 >> 2] | 0;if (r | 0) nb[r & 127](b);i = Xd(i, n) | 0;j = Xd(j, n) | 0;L = +T(g[t >> 2]);K = +T(g[s >> 2]);c[A >> 2] = i;c[A + 4 >> 2] = j;h[A + 8 >> 3] = +d;h[A + 16 >> 3] = +e;h[A + 24 >> 3] = L;h[A + 32 >> 3] = K;c[A + 40 >> 2] = o;Vd(b, 4, 2989, A);\n }\n } while (0);if ((w | 0) == 28) {\n r = Wd(z) | 0;c[t >> 2] = r;c[t + 4 >> 2] = z;c[t + 8 >> 2] = F ? 3047 : 11699;Vd(b, 4, 3038, t);r = c[b + 972 >> 2] | 0;if (r | 0) nb[r & 127](b);A = Xd(i, n) | 0;w = Xd(j, n) | 0;c[y >> 2] = A;c[y + 4 >> 2] = w;h[y + 8 >> 3] = +d;h[y + 16 >> 3] = +e;c[y + 24 >> 2] = o;Vd(b, 4, 3049, y);w = 31;\n }if ((w | 0) == 31) {\n Yd(b, d, e, f, i, j, k, m, n, p);if (a[11697] | 0) {\n r = c[2279] | 0;A = Wd(r) | 0;c[B >> 2] = A;c[B + 4 >> 2] = r;c[B + 8 >> 2] = F ? 3047 : 11699;Vd(b, 4, 3083, B);r = c[b + 972 >> 2] | 0;if (r | 0) nb[r & 127](b);A = Xd(i, n) | 0;B = Xd(j, n) | 0;K = +T(g[b + 908 >> 2]);L = +T(g[b + 912 >> 2]);c[C >> 2] = A;c[C + 4 >> 2] = B;h[C + 8 >> 3] = K;h[C + 16 >> 3] = L;c[C + 24 >> 2] = o;Vd(b, 4, 3092, C);\n }c[b + 516 >> 2] = f;if (!q) {\n r = b + 520 | 0;q = c[r >> 2] | 0;if ((q | 0) == 16) {\n if (a[11697] | 0) Vd(b, 4, 3124, D);c[r >> 2] = 0;q = 0;\n }if (n) q = b + 916 | 0;else {\n c[r >> 2] = q + 1;q = b + 524 + (q * 24 | 0) | 0;\n }g[q >> 2] = d;g[q + 4 >> 2] = e;c[q + 8 >> 2] = i;c[q + 12 >> 2] = j;c[q + 16 >> 2] = c[b + 908 >> 2];c[q + 20 >> 2] = c[b + 912 >> 2];q = 0;\n }\n }if (n) {\n c[b + 416 >> 2] = c[b + 908 >> 2];c[b + 420 >> 2] = c[b + 912 >> 2];a[b + 985 >> 0] = 1;a[E >> 0] = 0;\n }c[2279] = (c[2279] | 0) + -1;c[b + 512 >> 2] = c[2278];l = G;return F | (q | 0) == 0 | 0;\n }function Ud(a, b, c) {\n a = a | 0;b = b | 0;c = T(c);var d = ib;d = T(me(a, b, c));return T(d + T(ne(a, b, c)));\n }function Vd(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;c[f >> 2] = e;if (!a) e = 0;else e = c[a + 976 >> 2] | 0;ge(e, a, b, d, f);l = g;return;\n }function Wd(a) {\n a = a | 0;return (a >>> 0 > 60 ? 3201 : 3201 + (60 - a) | 0) | 0;\n }function Xd(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;f = l;l = l + 32 | 0;d = f + 12 | 0;e = f;c[d >> 2] = c[254];c[d + 4 >> 2] = c[255];c[d + 8 >> 2] = c[256];c[e >> 2] = c[257];c[e + 4 >> 2] = c[258];c[e + 8 >> 2] = c[259];if ((a | 0) > 2) a = 11699;else a = c[(b ? e : d) + (a << 2) >> 2] | 0;l = f;return a | 0;\n }function Yd(b, e, f, h, i, k, m, n, o, p) {\n b = b | 0;e = T(e);f = T(f);h = h | 0;i = i | 0;k = k | 0;m = T(m);n = T(n);o = o | 0;p = p | 0;var q = 0,\n r = 0,\n s = 0,\n t = 0,\n u = ib,\n v = ib,\n w = ib,\n x = ib,\n y = ib,\n z = ib,\n A = ib,\n B = 0,\n C = 0,\n D = 0,\n E = ib,\n F = ib,\n G = 0,\n H = ib,\n I = 0,\n J = 0,\n K = 0,\n L = 0,\n M = 0,\n N = 0,\n O = 0,\n P = 0,\n Q = 0,\n R = 0,\n S = 0,\n U = 0,\n V = 0,\n W = 0,\n X = 0,\n Y = 0,\n Z = 0,\n _ = 0,\n $ = ib,\n aa = ib,\n ba = ib,\n ca = ib,\n da = ib,\n ea = 0,\n fa = 0,\n ga = 0,\n ha = 0,\n ia = 0,\n ja = ib,\n ka = ib,\n la = ib,\n ma = ib,\n na = ib,\n oa = ib,\n pa = 0,\n qa = ib,\n ra = ib,\n sa = ib,\n ta = ib,\n ua = ib,\n va = ib,\n wa = 0,\n xa = 0,\n ya = ib,\n za = ib,\n Aa = 0,\n Ba = 0,\n Ca = 0,\n Da = 0,\n Ea = ib,\n Fa = 0,\n Ga = 0,\n Ha = 0,\n Ia = 0,\n Ja = 0,\n Ka = 0,\n La = 0,\n Ma = ib,\n Na = 0,\n Oa = 0;La = l;l = l + 16 | 0;ea = La + 12 | 0;fa = La + 8 | 0;ga = La + 4 | 0;ha = La;ec(b, (i | 0) == 0 | (Sb(e) | 0) ^ 1, 3326);ec(b, (k | 0) == 0 | (Sb(f) | 0) ^ 1, 3406);Ga = qe(b, h) | 0;c[b + 496 >> 2] = Ga;Ja = re(2, Ga) | 0;Ka = re(0, Ga) | 0;g[b + 440 >> 2] = T(me(b, Ja, m));g[b + 444 >> 2] = T(ne(b, Ja, m));g[b + 428 >> 2] = T(me(b, Ka, m));g[b + 436 >> 2] = T(ne(b, Ka, m));g[b + 464 >> 2] = T(se(b, Ja));g[b + 468 >> 2] = T(te(b, Ja));g[b + 452 >> 2] = T(se(b, Ka));g[b + 460 >> 2] = T(te(b, Ka));g[b + 488 >> 2] = T(ue(b, Ja, m));g[b + 492 >> 2] = T(ve(b, Ja, m));g[b + 476 >> 2] = T(ue(b, Ka, m));g[b + 484 >> 2] = T(ve(b, Ka, m));do if (!(c[b + 964 >> 2] | 0)) {\n Ha = b + 948 | 0;Ia = (c[b + 952 >> 2] | 0) - (c[Ha >> 2] | 0) >> 2;if (!Ia) {\n xe(b, e, f, i, k, m, n);break;\n }if (!o ? ye(b, e, f, i, k, m, n) | 0 : 0) break;lc(b);Y = b + 508 | 0;a[Y >> 0] = 0;Ja = re(c[b + 4 >> 2] | 0, Ga) | 0;Ka = ze(Ja, Ga) | 0;Fa = oe(Ja) | 0;Z = c[b + 8 >> 2] | 0;Ba = b + 28 | 0;_ = (c[Ba >> 2] | 0) != 0;ua = Fa ? m : n;ya = Fa ? n : m;$ = T(Ae(b, Ja, m));aa = T(Be(b, Ja, m));u = T(Ae(b, Ka, m));va = T(Ce(b, Ja, m));za = T(Ce(b, Ka, m));D = Fa ? i : k;Aa = Fa ? k : i;Ea = Fa ? va : za;y = Fa ? za : va;ta = T(Ud(b, 2, m));x = T(Ud(b, 0, m));v = T(T(be(b + 364 | 0, m)) - Ea);w = T(T(be(b + 380 | 0, m)) - Ea);z = T(T(be(b + 372 | 0, n)) - y);A = T(T(be(b + 388 | 0, n)) - y);ba = Fa ? v : z;ca = Fa ? w : A;ta = T(e - ta);e = T(ta - Ea);if (Sb(e) | 0) Ea = e;else Ea = T(cC(T(eC(e, w)), v));ra = T(f - x);e = T(ra - y);if (Sb(e) | 0) sa = e;else sa = T(cC(T(eC(e, A)), z));v = Fa ? Ea : sa;qa = Fa ? sa : Ea;a: do if ((D | 0) == 1) {\n h = 0;r = 0;while (1) {\n q = ac(b, r) | 0;if (!h) {\n if (T(Ee(q)) > T(0.0) ? T(Fe(q)) > T(0.0) : 0) h = q;else h = 0;\n } else if (De(q) | 0) {\n t = 0;break a;\n }r = r + 1 | 0;if (r >>> 0 >= Ia >>> 0) {\n t = h;break;\n }\n }\n } else t = 0; while (0);B = t + 500 | 0;C = t + 504 | 0;h = 0;q = 0;e = T(0.0);s = 0;do {\n r = c[(c[Ha >> 2] | 0) + (s << 2) >> 2] | 0;if ((c[r + 36 >> 2] | 0) == 1) {\n Ge(r);a[r + 985 >> 0] = 1;a[r + 984 >> 0] = 0;\n } else {\n $d(r);if (o) ce(r, qe(r, Ga) | 0, v, qa, Ea);do if ((c[r + 24 >> 2] | 0) != 1) {\n if ((r | 0) == (t | 0)) {\n c[B >> 2] = c[2278];g[C >> 2] = T(0.0);break;\n } else {\n He(b, r, Ea, i, sa, Ea, sa, k, Ga, p);break;\n }\n } else {\n if (q | 0) c[q + 960 >> 2] = r;c[r + 960 >> 2] = 0;q = r;h = (h | 0) == 0 ? r : h;\n } while (0);oa = T(g[r + 504 >> 2]);e = T(e + T(oa + T(Ud(r, Ja, Ea))));\n }s = s + 1 | 0;\n } while ((s | 0) != (Ia | 0));K = e > v;pa = _ & ((D | 0) == 2 & K) ? 1 : D;I = (Aa | 0) == 1;M = I & (o ^ 1);N = (pa | 0) == 1;O = (pa | 0) == 2;P = 976 + (Ja << 2) | 0;Q = (Aa | 2 | 0) == 2;W = I & (_ ^ 1);R = 1040 + (Ka << 2) | 0;S = 1040 + (Ja << 2) | 0;U = 976 + (Ka << 2) | 0;V = (Aa | 0) != 1;K = _ & ((D | 0) != 0 & K);J = b + 976 | 0;I = I ^ 1;e = v;G = 0;L = 0;oa = T(0.0);da = T(0.0);while (1) {\n b: do if (G >>> 0 < Ia >>> 0) {\n C = c[Ha >> 2] | 0;s = 0;A = T(0.0);z = T(0.0);w = T(0.0);v = T(0.0);r = 0;q = 0;t = G;while (1) {\n B = c[C + (t << 2) >> 2] | 0;if ((c[B + 36 >> 2] | 0) != 1 ? (c[B + 940 >> 2] = L, (c[B + 24 >> 2] | 0) != 1) : 0) {\n x = T(Ud(B, Ja, Ea));X = c[P >> 2] | 0;f = T(be(B + 380 + (X << 3) | 0, ua));y = T(g[B + 504 >> 2]);f = T(eC(f, y));f = T(cC(T(be(B + 364 + (X << 3) | 0, ua)), f));if (_ & (s | 0) != 0 & T(x + T(z + f)) > e) {\n k = s;x = A;D = t;break b;\n }x = T(x + f);f = T(z + x);x = T(A + x);if (De(B) | 0) {\n w = T(w + T(Ee(B)));v = T(v - T(y * T(Fe(B))));\n }if (q | 0) c[q + 960 >> 2] = B;c[B + 960 >> 2] = 0;s = s + 1 | 0;q = B;r = (r | 0) == 0 ? B : r;\n } else {\n x = A;f = z;\n }t = t + 1 | 0;if (t >>> 0 < Ia >>> 0) {\n A = x;z = f;\n } else {\n k = s;D = t;break;\n }\n }\n } else {\n k = 0;x = T(0.0);w = T(0.0);v = T(0.0);r = 0;D = G;\n } while (0);X = w > T(0.0) & w < T(1.0);E = X ? T(1.0) : w;X = v > T(0.0) & v < T(1.0);A = X ? T(1.0) : v;do if (!N) {\n if (!(x < ba & ((Sb(ba) | 0) ^ 1))) {\n if (!(x > ca & ((Sb(ca) | 0) ^ 1))) {\n if (!(a[(c[J >> 2] | 0) + 3 >> 0] | 0)) {\n if (!(E == T(0.0)) ? !(T(Ee(b)) == T(0.0)) : 0) {\n X = 53;break;\n }e = x;X = 53;\n } else X = 51;\n } else {\n e = ca;X = 51;\n }\n } else {\n e = ba;X = 51;\n }\n } else X = 51; while (0);if ((X | 0) == 51) {\n X = 0;if (Sb(e) | 0) X = 53;else {\n F = T(e - x);H = e;\n }\n }if ((X | 0) == 53) {\n X = 0;if (x < T(0.0)) {\n F = T(-x);H = e;\n } else {\n F = T(0.0);H = e;\n }\n }if (!M ? (ia = (r | 0) == 0, !ia) : 0) {\n s = c[P >> 2] | 0;t = F < T(0.0);y = T(F / A);B = F > T(0.0);z = T(F / E);w = T(0.0);x = T(0.0);e = T(0.0);q = r;do {\n f = T(be(q + 380 + (s << 3) | 0, ua));v = T(be(q + 364 + (s << 3) | 0, ua));v = T(eC(f, T(cC(v, T(g[q + 504 >> 2])))));if (t) {\n f = T(v * T(Fe(q)));if (f != T(-0.0) ? (Ma = T(v - T(y * f)), ja = T(Ie(q, Ja, Ma, H, Ea)), Ma != ja) : 0) {\n w = T(w - T(ja - v));e = T(e + f);\n }\n } else if ((B ? (ka = T(Ee(q)), ka != T(0.0)) : 0) ? (Ma = T(v + T(z * ka)), la = T(Ie(q, Ja, Ma, H, Ea)), Ma != la) : 0) {\n w = T(w - T(la - v));x = T(x - ka);\n }q = c[q + 960 >> 2] | 0;\n } while ((q | 0) != 0);e = T(A + e);v = T(F + w);if (!ia) {\n y = T(E + x);t = c[P >> 2] | 0;B = v < T(0.0);C = e == T(0.0);z = T(v / e);s = v > T(0.0);y = T(v / y);e = T(0.0);do {\n Ma = T(be(r + 380 + (t << 3) | 0, ua));w = T(be(r + 364 + (t << 3) | 0, ua));w = T(eC(Ma, T(cC(w, T(g[r + 504 >> 2])))));if (B) {\n Ma = T(w * T(Fe(r)));v = T(-Ma);if (Ma != T(-0.0)) {\n Ma = T(z * v);v = T(Ie(r, Ja, T(w + (C ? v : Ma)), H, Ea));\n } else v = w;\n } else if (s ? (ma = T(Ee(r)), ma != T(0.0)) : 0) v = T(Ie(r, Ja, T(w + T(y * ma)), H, Ea));else v = w;e = T(e - T(v - w));x = T(Ud(r, Ja, Ea));f = T(Ud(r, Ka, Ea));v = T(v + x);g[fa >> 2] = v;c[ha >> 2] = 1;w = T(g[r + 396 >> 2]);c: do if (Sb(w) | 0) {\n q = Sb(qa) | 0;do if (!q) {\n if (K | (ae(r, Ka, qa) | 0 | I)) break;if ((Je(b, r) | 0) != 4) break;if ((c[(Ke(r, Ka) | 0) + 4 >> 2] | 0) == 3) break;if ((c[(Le(r, Ka) | 0) + 4 >> 2] | 0) == 3) break;g[ea >> 2] = qa;c[ga >> 2] = 1;break c;\n } while (0);if (ae(r, Ka, qa) | 0) {\n q = c[r + 992 + (c[U >> 2] << 2) >> 2] | 0;Ma = T(f + T(be(q, qa)));g[ea >> 2] = Ma;q = V & (c[q + 4 >> 2] | 0) == 2;c[ga >> 2] = ((Sb(Ma) | 0 | q) ^ 1) & 1;break;\n } else {\n g[ea >> 2] = qa;c[ga >> 2] = q ? 0 : 2;break;\n }\n } else {\n Ma = T(v - x);E = T(Ma / w);Ma = T(w * Ma);c[ga >> 2] = 1;g[ea >> 2] = T(f + (Fa ? E : Ma));\n } while (0);Me(r, Ja, H, Ea, ha, fa);Me(r, Ka, qa, Ea, ga, ea);do if (!(ae(r, Ka, qa) | 0) ? (Je(b, r) | 0) == 4 : 0) {\n if ((c[(Ke(r, Ka) | 0) + 4 >> 2] | 0) == 3) {\n q = 0;break;\n }q = (c[(Le(r, Ka) | 0) + 4 >> 2] | 0) != 3;\n } else q = 0; while (0);Ma = T(g[fa >> 2]);E = T(g[ea >> 2]);Na = c[ha >> 2] | 0;Oa = c[ga >> 2] | 0;Td(r, Fa ? Ma : E, Fa ? E : Ma, Ga, Fa ? Na : Oa, Fa ? Oa : Na, Ea, sa, o & (q ^ 1), 3488, p) | 0;a[Y >> 0] = a[Y >> 0] | a[r + 508 >> 0];r = c[r + 960 >> 2] | 0;\n } while ((r | 0) != 0);\n } else e = T(0.0);\n } else e = T(0.0);e = T(F + e);Oa = e < T(0.0) & 1;a[Y >> 0] = Oa | d[Y >> 0];if (O & e > T(0.0)) {\n q = c[P >> 2] | 0;if ((c[b + 364 + (q << 3) + 4 >> 2] | 0) != 0 ? (na = T(be(b + 364 + (q << 3) | 0, ua)), na >= T(0.0)) : 0) v = T(cC(T(0.0), T(na - T(H - e))));else v = T(0.0);\n } else v = e;B = G >>> 0 < D >>> 0;if (B) {\n t = c[Ha >> 2] | 0;s = G;q = 0;do {\n r = c[t + (s << 2) >> 2] | 0;if (!(c[r + 24 >> 2] | 0)) {\n q = ((c[(Ke(r, Ja) | 0) + 4 >> 2] | 0) == 3 & 1) + q | 0;q = q + ((c[(Le(r, Ja) | 0) + 4 >> 2] | 0) == 3 & 1) | 0;\n }s = s + 1 | 0;\n } while ((s | 0) != (D | 0));if (q) {\n x = T(0.0);f = T(0.0);\n } else X = 101;\n } else X = 101;d: do if ((X | 0) == 101) {\n X = 0;switch (Z | 0) {case 1:\n {\n q = 0;x = T(v * T(.5));f = T(0.0);break d;\n }case 2:\n {\n q = 0;x = v;f = T(0.0);break d;\n }case 3:\n {\n if (k >>> 0 <= 1) {\n q = 0;x = T(0.0);f = T(0.0);break d;\n }f = T((k + -1 | 0) >>> 0);q = 0;x = T(0.0);f = T(T(cC(v, T(0.0))) / f);break d;\n }case 5:\n {\n f = T(v / T((k + 1 | 0) >>> 0));q = 0;x = f;break d;\n }case 4:\n {\n f = T(v / T(k >>> 0));q = 0;x = T(f * T(.5));break d;\n }default:\n {\n q = 0;x = T(0.0);f = T(0.0);break d;\n }}\n } while (0);e = T($ + x);if (B) {\n w = T(v / T(q | 0));s = c[Ha >> 2] | 0;r = G;v = T(0.0);do {\n q = c[s + (r << 2) >> 2] | 0;e: do if ((c[q + 36 >> 2] | 0) != 1) {\n switch (c[q + 24 >> 2] | 0) {case 1:\n {\n if (Ne(q, Ja) | 0) {\n if (!o) break e;Ma = T(Oe(q, Ja, H));Ma = T(Ma + T(se(b, Ja)));Ma = T(Ma + T(me(q, Ja, Ea)));g[q + 400 + (c[S >> 2] << 2) >> 2] = Ma;break e;\n }break;\n }case 0:\n {\n Oa = (c[(Ke(q, Ja) | 0) + 4 >> 2] | 0) == 3;Ma = T(w + e);e = Oa ? Ma : e;if (o) {\n Oa = q + 400 + (c[S >> 2] << 2) | 0;g[Oa >> 2] = T(e + T(g[Oa >> 2]));\n }Oa = (c[(Le(q, Ja) | 0) + 4 >> 2] | 0) == 3;Ma = T(w + e);e = Oa ? Ma : e;if (M) {\n Ma = T(f + T(Ud(q, Ja, Ea)));v = qa;e = T(e + T(Ma + T(g[q + 504 >> 2])));break e;\n } else {\n e = T(e + T(f + T(Pe(q, Ja, Ea))));v = T(cC(v, T(Pe(q, Ka, Ea))));break e;\n }\n }default:\n {}}if (o) {\n Ma = T(x + T(se(b, Ja)));Oa = q + 400 + (c[S >> 2] << 2) | 0;g[Oa >> 2] = T(Ma + T(g[Oa >> 2]));\n }\n } while (0);r = r + 1 | 0;\n } while ((r | 0) != (D | 0));\n } else v = T(0.0);f = T(aa + e);if (Q) x = T(T(Ie(b, Ka, T(za + v), ya, m)) - za);else x = qa;w = T(T(Ie(b, Ka, T(za + (W ? qa : v)), ya, m)) - za);if (B & o) {\n r = G;do {\n s = c[(c[Ha >> 2] | 0) + (r << 2) >> 2] | 0;do if ((c[s + 36 >> 2] | 0) != 1) {\n if ((c[s + 24 >> 2] | 0) == 1) {\n if (Ne(s, Ka) | 0) {\n Ma = T(Oe(s, Ka, qa));Ma = T(Ma + T(se(b, Ka)));Ma = T(Ma + T(me(s, Ka, Ea)));q = c[R >> 2] | 0;g[s + 400 + (q << 2) >> 2] = Ma;if (!(Sb(Ma) | 0)) break;\n } else q = c[R >> 2] | 0;Ma = T(se(b, Ka));g[s + 400 + (q << 2) >> 2] = T(Ma + T(me(s, Ka, Ea)));break;\n }q = Je(b, s) | 0;do if ((q | 0) == 4) {\n if ((c[(Ke(s, Ka) | 0) + 4 >> 2] | 0) == 3) {\n X = 139;break;\n }if ((c[(Le(s, Ka) | 0) + 4 >> 2] | 0) == 3) {\n X = 139;break;\n }if (ae(s, Ka, qa) | 0) {\n e = u;break;\n }Na = c[s + 908 + (c[P >> 2] << 2) >> 2] | 0;c[ea >> 2] = Na;e = T(g[s + 396 >> 2]);Oa = Sb(e) | 0;v = (c[j >> 2] = Na, T(g[j >> 2]));if (Oa) e = w;else {\n F = T(Ud(s, Ka, Ea));Ma = T(v / e);e = T(e * v);e = T(F + (Fa ? Ma : e));\n }g[fa >> 2] = e;g[ea >> 2] = T(T(Ud(s, Ja, Ea)) + v);c[ga >> 2] = 1;c[ha >> 2] = 1;Me(s, Ja, H, Ea, ga, ea);Me(s, Ka, qa, Ea, ha, fa);e = T(g[ea >> 2]);F = T(g[fa >> 2]);Ma = Fa ? e : F;e = Fa ? F : e;Oa = ((Sb(Ma) | 0) ^ 1) & 1;Td(s, Ma, e, Ga, Oa, ((Sb(e) | 0) ^ 1) & 1, Ea, sa, 1, 3493, p) | 0;e = u;\n } else X = 139; while (0);f: do if ((X | 0) == 139) {\n X = 0;e = T(x - T(Pe(s, Ka, Ea)));do if ((c[(Ke(s, Ka) | 0) + 4 >> 2] | 0) == 3) {\n if ((c[(Le(s, Ka) | 0) + 4 >> 2] | 0) != 3) break;e = T(u + T(cC(T(0.0), T(e * T(.5)))));break f;\n } while (0);if ((c[(Le(s, Ka) | 0) + 4 >> 2] | 0) == 3) {\n e = u;break;\n }if ((c[(Ke(s, Ka) | 0) + 4 >> 2] | 0) == 3) {\n e = T(u + T(cC(T(0.0), e)));break;\n }switch (q | 0) {case 1:\n {\n e = u;break f;\n }case 2:\n {\n e = T(u + T(e * T(.5)));break f;\n }default:\n {\n e = T(u + e);break f;\n }}\n } while (0);Ma = T(oa + e);Oa = s + 400 + (c[R >> 2] << 2) | 0;g[Oa >> 2] = T(Ma + T(g[Oa >> 2]));\n } while (0);r = r + 1 | 0;\n } while ((r | 0) != (D | 0));\n }oa = T(oa + w);da = T(cC(da, f));k = L + 1 | 0;if (D >>> 0 >= Ia >>> 0) break;else {\n e = H;G = D;L = k;\n }\n }do if (o) {\n q = k >>> 0 > 1;if (!q ? !(Qe(b) | 0) : 0) break;if (!(Sb(qa) | 0)) {\n e = T(qa - oa);g: do switch (c[b + 12 >> 2] | 0) {case 3:\n {\n u = T(u + e);z = T(0.0);break;\n }case 2:\n {\n u = T(u + T(e * T(.5)));z = T(0.0);break;\n }case 4:\n {\n if (qa > oa) z = T(e / T(k >>> 0));else z = T(0.0);break;\n }case 7:\n if (qa > oa) {\n u = T(u + T(e / T(k << 1 >>> 0)));z = T(e / T(k >>> 0));z = q ? z : T(0.0);break g;\n } else {\n u = T(u + T(e * T(.5)));z = T(0.0);break g;\n }case 6:\n {\n z = T(e / T(L >>> 0));z = qa > oa & q ? z : T(0.0);break;\n }default:\n z = T(0.0);} while (0);if (k | 0) {\n B = 1040 + (Ka << 2) | 0;C = 976 + (Ka << 2) | 0;t = 0;r = 0;while (1) {\n h: do if (r >>> 0 < Ia >>> 0) {\n v = T(0.0);w = T(0.0);e = T(0.0);s = r;while (1) {\n q = c[(c[Ha >> 2] | 0) + (s << 2) >> 2] | 0;do if ((c[q + 36 >> 2] | 0) != 1 ? (c[q + 24 >> 2] | 0) == 0 : 0) {\n if ((c[q + 940 >> 2] | 0) != (t | 0)) break h;if (Re(q, Ka) | 0) {\n Ma = T(g[q + 908 + (c[C >> 2] << 2) >> 2]);e = T(cC(e, T(Ma + T(Ud(q, Ka, Ea)))));\n }if ((Je(b, q) | 0) != 5) break;na = T(Se(q));na = T(na + T(me(q, 0, Ea)));Ma = T(g[q + 912 >> 2]);Ma = T(T(Ma + T(Ud(q, 0, Ea))) - na);na = T(cC(w, na));Ma = T(cC(v, Ma));v = Ma;w = na;e = T(cC(e, T(na + Ma)));\n } while (0);q = s + 1 | 0;if (q >>> 0 < Ia >>> 0) s = q;else {\n s = q;break;\n }\n }\n } else {\n w = T(0.0);e = T(0.0);s = r;\n } while (0);y = T(z + e);f = u;u = T(u + y);if (r >>> 0 < s >>> 0) {\n x = T(f + w);q = r;do {\n r = c[(c[Ha >> 2] | 0) + (q << 2) >> 2] | 0;i: do if ((c[r + 36 >> 2] | 0) != 1 ? (c[r + 24 >> 2] | 0) == 0 : 0) switch (Je(b, r) | 0) {case 1:\n {\n Ma = T(f + T(me(r, Ka, Ea)));g[r + 400 + (c[B >> 2] << 2) >> 2] = Ma;break i;\n }case 3:\n {\n Ma = T(T(u - T(ne(r, Ka, Ea))) - T(g[r + 908 + (c[C >> 2] << 2) >> 2]));g[r + 400 + (c[B >> 2] << 2) >> 2] = Ma;break i;\n }case 2:\n {\n Ma = T(f + T(T(y - T(g[r + 908 + (c[C >> 2] << 2) >> 2])) * T(.5)));g[r + 400 + (c[B >> 2] << 2) >> 2] = Ma;break i;\n }case 4:\n {\n Ma = T(f + T(me(r, Ka, Ea)));g[r + 400 + (c[B >> 2] << 2) >> 2] = Ma;if (ae(r, Ka, qa) | 0) break i;if (Fa) {\n v = T(g[r + 908 >> 2]);e = T(v + T(Ud(r, Ja, Ea)));w = y;\n } else {\n w = T(g[r + 912 >> 2]);w = T(w + T(Ud(r, Ka, Ea)));e = y;v = T(g[r + 908 >> 2]);\n }if (Ld(e, v) | 0 ? Ld(w, T(g[r + 912 >> 2])) | 0 : 0) break i;Td(r, e, w, Ga, 1, 1, Ea, sa, 1, 3501, p) | 0;break i;\n }case 5:\n {\n g[r + 404 >> 2] = T(T(x - T(Se(r))) + T(Oe(r, 0, qa)));break i;\n }default:\n break i;} while (0);q = q + 1 | 0;\n } while ((q | 0) != (s | 0));\n }t = t + 1 | 0;if ((t | 0) == (k | 0)) break;else r = s;\n }\n }\n }\n } while (0);g[b + 908 >> 2] = T(Ie(b, 2, ta, m, m));g[b + 912 >> 2] = T(Ie(b, 0, ra, n, m));if ((pa | 0) != 0 ? (wa = c[b + 32 >> 2] | 0, xa = (pa | 0) == 2, !(xa & (wa | 0) != 2)) : 0) {\n if (xa & (wa | 0) == 2) {\n e = T(va + H);e = T(cC(T(eC(e, T(Te(b, Ja, da, ua)))), va));X = 198;\n }\n } else {\n e = T(Ie(b, Ja, da, ua, m));X = 198;\n }if ((X | 0) == 198) g[b + 908 + (c[976 + (Ja << 2) >> 2] << 2) >> 2] = e;if ((Aa | 0) != 0 ? (Ca = c[b + 32 >> 2] | 0, Da = (Aa | 0) == 2, !(Da & (Ca | 0) != 2)) : 0) {\n if (Da & (Ca | 0) == 2) {\n e = T(za + qa);e = T(cC(T(eC(e, T(Te(b, Ka, T(za + oa), ya)))), za));X = 204;\n }\n } else {\n e = T(Ie(b, Ka, T(za + oa), ya, m));X = 204;\n }if ((X | 0) == 204) g[b + 908 + (c[976 + (Ka << 2) >> 2] << 2) >> 2] = e;if (o) {\n if ((c[Ba >> 2] | 0) == 2) {\n r = 976 + (Ka << 2) | 0;s = 1040 + (Ka << 2) | 0;q = 0;do {\n t = ac(b, q) | 0;if (!(c[t + 24 >> 2] | 0)) {\n Na = c[r >> 2] | 0;Ma = T(g[b + 908 + (Na << 2) >> 2]);Oa = t + 400 + (c[s >> 2] << 2) | 0;Ma = T(Ma - T(g[Oa >> 2]));g[Oa >> 2] = T(Ma - T(g[t + 908 + (Na << 2) >> 2]));\n }q = q + 1 | 0;\n } while ((q | 0) != (Ia | 0));\n }if (h | 0) {\n q = Fa ? pa : i;do {\n Ue(b, h, Ea, q, sa, Ga, p);h = c[h + 960 >> 2] | 0;\n } while ((h | 0) != 0);\n }q = (Ja | 2 | 0) == 3;r = (Ka | 2 | 0) == 3;if (q | r) {\n h = 0;do {\n s = c[(c[Ha >> 2] | 0) + (h << 2) >> 2] | 0;if ((c[s + 36 >> 2] | 0) != 1) {\n if (q) Ve(b, s, Ja);if (r) Ve(b, s, Ka);\n }h = h + 1 | 0;\n } while ((h | 0) != (Ia | 0));\n }\n }\n } else we(b, e, f, i, k, m, n); while (0);l = La;return;\n }function Zd(a, b) {\n a = a | 0;b = T(b);var c = 0;Vb(a, b >= T(0.0), 3147);c = b == T(0.0);g[a + 4 >> 2] = c ? T(0.0) : b;return;\n }function _d(b, d, e, f) {\n b = b | 0;d = T(d);e = T(e);f = f | 0;var h = ib,\n i = ib,\n j = 0,\n k = 0,\n l = 0;c[2278] = (c[2278] | 0) + 1;$d(b);if (!(ae(b, 2, d) | 0)) {\n h = T(be(b + 380 | 0, d));if (!(h >= T(0.0))) {\n l = ((Sb(d) | 0) ^ 1) & 1;h = d;\n } else l = 2;\n } else {\n h = T(be(c[b + 992 >> 2] | 0, d));l = 1;h = T(h + T(Ud(b, 2, d)));\n }if (!(ae(b, 0, e) | 0)) {\n i = T(be(b + 388 | 0, e));if (!(i >= T(0.0))) {\n k = ((Sb(e) | 0) ^ 1) & 1;i = e;\n } else k = 2;\n } else {\n i = T(be(c[b + 996 >> 2] | 0, e));k = 1;i = T(i + T(Ud(b, 0, d)));\n }j = b + 976 | 0;if (Td(b, h, i, f, l, k, d, e, 1, 3189, c[j >> 2] | 0) | 0 ? (ce(b, c[b + 496 >> 2] | 0, d, e, d), de(b, T(g[(c[j >> 2] | 0) + 4 >> 2]), T(0.0), T(0.0)), a[11696] | 0) : 0) Md(b, 7);return;\n }function $d(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;h = i + 24 | 0;g = i + 16 | 0;e = i + 8 | 0;f = i;d = 0;do {\n b = a + 380 + (d << 3) | 0;if (!((c[a + 380 + (d << 3) + 4 >> 2] | 0) != 0 ? (j = b, k = c[j + 4 >> 2] | 0, m = e, c[m >> 2] = c[j >> 2], c[m + 4 >> 2] = k, m = a + 364 + (d << 3) | 0, k = c[m + 4 >> 2] | 0, j = f, c[j >> 2] = c[m >> 2], c[j + 4 >> 2] = k, c[g >> 2] = c[e >> 2], c[g + 4 >> 2] = c[e + 4 >> 2], c[h >> 2] = c[f >> 2], c[h + 4 >> 2] = c[f + 4 >> 2], Kd(g, h) | 0) : 0)) b = a + 348 + (d << 3) | 0;c[a + 992 + (d << 2) >> 2] = b;d = d + 1 | 0;\n } while ((d | 0) != 2);l = i;return;\n }function ae(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0;a = c[a + 992 + (c[976 + (b << 2) >> 2] << 2) >> 2] | 0;switch (c[a + 4 >> 2] | 0) {case 0:case 3:\n {\n a = 0;break;\n }case 1:\n {\n if (T(g[a >> 2]) < T(0.0)) a = 0;else e = 5;break;\n }case 2:\n {\n if (T(g[a >> 2]) < T(0.0)) a = 0;else a = (Sb(d) | 0) ^ 1;break;\n }default:\n e = 5;}if ((e | 0) == 5) a = 1;return a | 0;\n }function be(a, b) {\n a = a | 0;b = T(b);switch (c[a + 4 >> 2] | 0) {case 2:\n {\n b = T(T(T(g[a >> 2]) * b) / T(100.0));break;\n }case 1:\n {\n b = T(g[a >> 2]);break;\n }default:\n b = T(t);}return T(b);\n }function ce(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = T(d);e = T(e);f = T(f);var h = 0,\n i = ib;b = c[a + 944 >> 2] | 0 ? b : 1;h = re(c[a + 4 >> 2] | 0, b) | 0;b = ze(h, b) | 0;d = T($e(a, h, d));e = T($e(a, b, e));i = T(d + T(me(a, h, f)));g[a + 400 + (c[1040 + (h << 2) >> 2] << 2) >> 2] = i;d = T(d + T(ne(a, h, f)));g[a + 400 + (c[1e3 + (h << 2) >> 2] << 2) >> 2] = d;d = T(e + T(me(a, b, f)));g[a + 400 + (c[1040 + (b << 2) >> 2] << 2) >> 2] = d;f = T(e + T(ne(a, b, f)));g[a + 400 + (c[1e3 + (b << 2) >> 2] << 2) >> 2] = f;return;\n }function de(a, b, d, e) {\n a = a | 0;b = T(b);d = T(d);e = T(e);var f = 0,\n h = 0,\n i = ib,\n j = ib,\n k = 0,\n l = 0,\n m = ib,\n n = 0,\n o = ib,\n p = ib,\n q = ib,\n r = ib;if (!(b == T(0.0))) {\n f = a + 400 | 0;r = T(g[f >> 2]);h = a + 404 | 0;q = T(g[h >> 2]);n = a + 416 | 0;p = T(g[n >> 2]);l = a + 420 | 0;i = T(g[l >> 2]);o = T(r + d);m = T(q + e);e = T(o + p);j = T(m + i);k = (c[a + 988 >> 2] | 0) == 1;g[f >> 2] = T(Od(r, b, 0, k));g[h >> 2] = T(Od(q, b, 0, k));d = T(gC(T(p * b), T(1.0)));if (Ld(d, T(0.0)) | 0) h = 0;else h = (Ld(d, T(1.0)) | 0) ^ 1;d = T(gC(T(i * b), T(1.0)));if (Ld(d, T(0.0)) | 0) f = 0;else f = (Ld(d, T(1.0)) | 0) ^ 1;r = T(Od(e, b, k & h, k & (h ^ 1)));g[n >> 2] = T(r - T(Od(o, b, 0, k)));r = T(Od(j, b, k & f, k & (f ^ 1)));g[l >> 2] = T(r - T(Od(m, b, 0, k)));h = (c[a + 952 >> 2] | 0) - (c[a + 948 >> 2] | 0) >> 2;if (h | 0) {\n f = 0;do {\n de(ac(a, f) | 0, b, o, m);f = f + 1 | 0;\n } while ((f | 0) != (h | 0));\n }\n }return;\n }function ee(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;switch (d | 0) {case 5:case 0:\n {\n a = CB(c[489] | 0, e, f) | 0;break;\n }default:\n a = iC(e, f) | 0;}return a | 0;\n }function fe(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;f = l;l = l + 16 | 0;g = f;c[g >> 2] = e;ge(a, 0, b, d, g);l = f;return;\n }function ge(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;a = a | 0 ? a : 956;Bb[c[a + 8 >> 2] & 1](a, b, d, e, f) | 0;if ((d | 0) == 5) Ta();else return;\n }function he(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;a[b + c >> 0] = d & 1;return;\n }function ie(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;c[a >> 2] = 0;c[a + 4 >> 2] = 0;c[a + 8 >> 2] = 0;d = b + 4 | 0;e = (c[d >> 2] | 0) - (c[b >> 2] | 0) >> 2;if (e | 0) {\n je(a, e);ke(a, c[b >> 2] | 0, c[d >> 2] | 0, e);\n }return;\n }function je(a, b) {\n a = a | 0;b = b | 0;var d = 0;if ((le(a) | 0) >>> 0 < b >>> 0) jC(a);if (b >>> 0 > 1073741823) Ta();else {\n d = qC(b << 2) | 0;c[a + 4 >> 2] = d;c[a >> 2] = d;c[a + 8 >> 2] = d + (b << 2);return;\n }\n }function ke(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;e = a + 4 | 0;a = d - b | 0;if ((a | 0) > 0) {\n BC(c[e >> 2] | 0, b | 0, a | 0) | 0;c[e >> 2] = (c[e >> 2] | 0) + (a >>> 2 << 2);\n }return;\n }function le(a) {\n a = a | 0;return 1073741823;\n }function me(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);if (oe(b) | 0 ? (c[a + 96 >> 2] | 0) != 0 : 0) a = a + 92 | 0;else a = Tb(a + 60 | 0, c[1040 + (b << 2) >> 2] | 0, 992) | 0;return T(pe(a, d));\n }function ne(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);if (oe(b) | 0 ? (c[a + 104 >> 2] | 0) != 0 : 0) a = a + 100 | 0;else a = Tb(a + 60 | 0, c[1e3 + (b << 2) >> 2] | 0, 992) | 0;return T(pe(a, d));\n }function oe(a) {\n a = a | 0;return (a | 1 | 0) == 3 | 0;\n }function pe(a, b) {\n a = a | 0;b = T(b);if ((c[a + 4 >> 2] | 0) == 3) b = T(0.0);else b = T(be(a, b));return T(b);\n }function qe(a, b) {\n a = a | 0;b = b | 0;a = c[a >> 2] | 0;return ((a | 0) == 0 ? (b | 0) > 1 ? b : 1 : a) | 0;\n }function re(a, b) {\n a = a | 0;b = b | 0;var c = 0;a: do if ((b | 0) == 2) {\n switch (a | 0) {case 2:\n {\n a = 3;break a;\n }case 3:\n break;default:\n {\n c = 4;break a;\n }}a = 2;\n } else c = 4; while (0);return a | 0;\n }function se(a, b) {\n a = a | 0;b = b | 0;var d = ib;if (!((oe(b) | 0 ? (c[a + 312 >> 2] | 0) != 0 : 0) ? (d = T(g[a + 308 >> 2]), d >= T(0.0)) : 0)) d = T(cC(T(g[(Tb(a + 276 | 0, c[1040 + (b << 2) >> 2] | 0, 992) | 0) >> 2]), T(0.0)));return T(d);\n }function te(a, b) {\n a = a | 0;b = b | 0;var d = ib;if (!((oe(b) | 0 ? (c[a + 320 >> 2] | 0) != 0 : 0) ? (d = T(g[a + 316 >> 2]), d >= T(0.0)) : 0)) d = T(cC(T(g[(Tb(a + 276 | 0, c[1e3 + (b << 2) >> 2] | 0, 992) | 0) >> 2]), T(0.0)));return T(d);\n }function ue(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = ib;if (!((oe(b) | 0 ? (c[a + 240 >> 2] | 0) != 0 : 0) ? (e = T(be(a + 236 | 0, d)), e >= T(0.0)) : 0)) e = T(cC(T(be(Tb(a + 204 | 0, c[1040 + (b << 2) >> 2] | 0, 992) | 0, d)), T(0.0)));return T(e);\n }function ve(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = ib;if (!((oe(b) | 0 ? (c[a + 248 >> 2] | 0) != 0 : 0) ? (e = T(be(a + 244 | 0, d)), e >= T(0.0)) : 0)) e = T(cC(T(be(Tb(a + 204 | 0, c[1e3 + (b << 2) >> 2] | 0, 992) | 0, d)), T(0.0)));return T(e);\n }function we(a, b, d, e, f, h, i) {\n a = a | 0;b = T(b);d = T(d);e = e | 0;f = f | 0;h = T(h);i = T(i);var j = ib,\n k = ib,\n m = ib,\n n = ib,\n o = ib,\n p = ib,\n q = 0,\n r = 0,\n s = 0;s = l;l = l + 16 | 0;q = s;r = a + 964 | 0;ec(a, (c[r >> 2] | 0) != 0, 3519);j = T(Ce(a, 2, b));k = T(Ce(a, 0, b));m = T(Ud(a, 2, b));n = T(Ud(a, 0, b));if (Sb(b) | 0) o = b;else o = T(cC(T(0.0), T(T(b - m) - j)));if (Sb(d) | 0) p = d;else p = T(cC(T(0.0), T(T(d - n) - k)));if ((e | 0) == 1 & (f | 0) == 1) {\n g[a + 908 >> 2] = T(Ie(a, 2, T(b - m), h, h));b = T(Ie(a, 0, T(d - n), i, h));\n } else {\n Db[c[r >> 2] & 1](q, a, o, e, p, f);o = T(j + T(g[q >> 2]));p = T(b - m);g[a + 908 >> 2] = T(Ie(a, 2, (e | 2 | 0) == 2 ? o : p, h, h));p = T(k + T(g[q + 4 >> 2]));b = T(d - n);b = T(Ie(a, 0, (f | 2 | 0) == 2 ? p : b, i, h));\n }g[a + 912 >> 2] = b;l = s;return;\n }function xe(a, b, c, d, e, f, h) {\n a = a | 0;b = T(b);c = T(c);d = d | 0;e = e | 0;f = T(f);h = T(h);var i = ib,\n j = ib,\n k = ib,\n l = ib;k = T(Ce(a, 2, f));i = T(Ce(a, 0, f));l = T(Ud(a, 2, f));j = T(Ud(a, 0, f));b = T(b - l);g[a + 908 >> 2] = T(Ie(a, 2, (d | 2 | 0) == 2 ? k : b, f, f));c = T(c - j);g[a + 912 >> 2] = T(Ie(a, 0, (e | 2 | 0) == 2 ? i : c, h, f));return;\n }function ye(a, b, c, d, e, f, h) {\n a = a | 0;b = T(b);c = T(c);d = d | 0;e = e | 0;f = T(f);h = T(h);var i = 0,\n j = ib,\n k = ib;i = (d | 0) == 2;if ((!(b <= T(0.0) & i) ? !(c <= T(0.0) & (e | 0) == 2) : 0) ? !((d | 0) == 1 & (e | 0) == 1) : 0) a = 0;else {\n j = T(Ud(a, 0, f));k = T(Ud(a, 2, f));i = b < T(0.0) & i | (Sb(b) | 0);b = T(b - k);g[a + 908 >> 2] = T(Ie(a, 2, i ? T(0.0) : b, f, f));b = T(c - j);i = c < T(0.0) & (e | 0) == 2 | (Sb(c) | 0);g[a + 912 >> 2] = T(Ie(a, 0, i ? T(0.0) : b, h, f));a = 1;\n }return a | 0;\n }function ze(a, b) {\n a = a | 0;b = b | 0;if (We(a) | 0) a = re(2, b) | 0;else a = 0;return a | 0;\n }function Ae(a, b, c) {\n a = a | 0;b = b | 0;c = T(c);c = T(ue(a, b, c));return T(c + T(se(a, b)));\n }function Be(a, b, c) {\n a = a | 0;b = b | 0;c = T(c);c = T(ve(a, b, c));return T(c + T(te(a, b)));\n }function Ce(a, b, c) {\n a = a | 0;b = b | 0;c = T(c);var d = ib;d = T(Ae(a, b, c));return T(d + T(Be(a, b, c)));\n }function De(a) {\n a = a | 0;if (!(c[a + 24 >> 2] | 0)) {\n if (T(Ee(a)) != T(0.0)) a = 1;else a = T(Fe(a)) != T(0.0);\n } else a = 0;return a | 0;\n }function Ee(a) {\n a = a | 0;var b = ib;if (c[a + 944 >> 2] | 0) {\n b = T(g[a + 44 >> 2]);if (Sb(b) | 0) {\n b = T(g[a + 40 >> 2]);a = b > T(0.0) & ((Sb(b) | 0) ^ 1);return T(a ? b : T(0.0));\n }\n } else b = T(0.0);return T(b);\n }function Fe(b) {\n b = b | 0;var d = ib,\n e = 0,\n f = ib;do if (c[b + 944 >> 2] | 0) {\n d = T(g[b + 48 >> 2]);if (Sb(d) | 0) {\n e = a[(c[b + 976 >> 2] | 0) + 2 >> 0] | 0;if (e << 24 >> 24 == 0 ? (f = T(g[b + 40 >> 2]), f < T(0.0) & ((Sb(f) | 0) ^ 1)) : 0) {\n d = T(-f);break;\n }d = e << 24 >> 24 ? T(1.0) : T(0.0);\n }\n } else d = T(0.0); while (0);return T(d);\n }function Ge(b) {\n b = b | 0;var d = 0,\n e = 0;yC(b + 400 | 0, 0, 540) | 0;a[b + 985 >> 0] = 1;lc(b);e = $b(b) | 0;if (e | 0) {\n d = b + 948 | 0;b = 0;do {\n Ge(c[(c[d >> 2] | 0) + (b << 2) >> 2] | 0);b = b + 1 | 0;\n } while ((b | 0) != (e | 0));\n }return;\n }function He(a, b, d, e, f, h, i, j, k, m) {\n a = a | 0;b = b | 0;d = T(d);e = e | 0;f = T(f);h = T(h);i = T(i);j = j | 0;k = k | 0;m = m | 0;var n = 0,\n o = ib,\n p = 0,\n q = 0,\n r = ib,\n s = ib,\n u = 0,\n v = ib,\n w = 0,\n x = ib,\n y = 0,\n z = 0,\n A = 0,\n B = 0,\n C = 0,\n D = 0,\n E = 0,\n F = 0,\n G = 0,\n H = 0;G = l;l = l + 16 | 0;A = G + 12 | 0;B = G + 8 | 0;C = G + 4 | 0;D = G;F = re(c[a + 4 >> 2] | 0, k) | 0;y = oe(F) | 0;o = T(be(Xe(b) | 0, y ? h : i));z = ae(b, 2, h) | 0;E = ae(b, 0, i) | 0;do if (!(Sb(o) | 0) ? !(Sb(y ? d : f) | 0) : 0) {\n n = b + 504 | 0;if (!(Sb(T(g[n >> 2])) | 0)) {\n if (!(Ye(c[b + 976 >> 2] | 0, 0) | 0)) break;if ((c[b + 500 >> 2] | 0) == (c[2278] | 0)) break;\n }g[n >> 2] = T(cC(o, T(Ce(b, F, h))));\n } else p = 7; while (0);do if ((p | 0) == 7) {\n w = y ^ 1;if (!(w | z ^ 1)) {\n i = T(be(c[b + 992 >> 2] | 0, h));g[b + 504 >> 2] = T(cC(i, T(Ce(b, 2, h))));break;\n }if (!(y | E ^ 1)) {\n i = T(be(c[b + 996 >> 2] | 0, i));g[b + 504 >> 2] = T(cC(i, T(Ce(b, 0, h))));break;\n }g[A >> 2] = T(t);g[B >> 2] = T(t);c[C >> 2] = 0;c[D >> 2] = 0;v = T(Ud(b, 2, h));x = T(Ud(b, 0, h));if (z) {\n r = T(v + T(be(c[b + 992 >> 2] | 0, h)));g[A >> 2] = r;c[C >> 2] = 1;q = 1;\n } else {\n q = 0;r = T(t);\n }if (E) {\n o = T(x + T(be(c[b + 996 >> 2] | 0, i)));g[B >> 2] = o;c[D >> 2] = 1;n = 1;\n } else {\n n = 0;o = T(t);\n }p = c[a + 32 >> 2] | 0;if (!(y & (p | 0) == 2)) {\n if (Sb(r) | 0 ? !(Sb(d) | 0) : 0) {\n g[A >> 2] = d;c[C >> 2] = 2;q = 2;r = d;\n }\n } else p = 2;if ((!((p | 0) == 2 & w) ? Sb(o) | 0 : 0) ? !(Sb(f) | 0) : 0) {\n g[B >> 2] = f;c[D >> 2] = 2;n = 2;o = f;\n }s = T(g[b + 396 >> 2]);u = Sb(s) | 0;do if (!u) {\n if ((q | 0) == 1 & w) {\n g[B >> 2] = T(T(r - v) / s);c[D >> 2] = 1;n = 1;p = 1;break;\n }if (y & (n | 0) == 1) {\n g[A >> 2] = T(s * T(o - x));c[C >> 2] = 1;n = 1;p = 1;\n } else p = q;\n } else p = q; while (0);H = Sb(d) | 0;q = (Je(a, b) | 0) != 4;if (!(y | z | ((e | 0) != 1 | H) | (q | (p | 0) == 1)) ? (g[A >> 2] = d, c[C >> 2] = 1, !u) : 0) {\n g[B >> 2] = T(T(d - v) / s);c[D >> 2] = 1;n = 1;\n }if (!(E | w | ((j | 0) != 1 | (Sb(f) | 0)) | (q | (n | 0) == 1)) ? (g[B >> 2] = f, c[D >> 2] = 1, !u) : 0) {\n g[A >> 2] = T(s * T(f - x));c[C >> 2] = 1;\n }Me(b, 2, h, h, C, A);Me(b, 0, i, h, D, B);d = T(g[A >> 2]);f = T(g[B >> 2]);Td(b, d, f, k, c[C >> 2] | 0, c[D >> 2] | 0, h, i, 0, 3565, m) | 0;i = T(g[b + 908 + (c[976 + (F << 2) >> 2] << 2) >> 2]);g[b + 504 >> 2] = T(cC(i, T(Ce(b, F, h))));\n } while (0);c[b + 500 >> 2] = c[2278];l = G;return;\n }function Ie(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = T(c);d = T(d);e = T(e);d = T(Te(a, b, c, d));return T(cC(d, T(Ce(a, b, e))));\n }function Je(a, b) {\n a = a | 0;b = b | 0;b = b + 20 | 0;b = c[((c[b >> 2] | 0) == 0 ? a + 16 | 0 : b) >> 2] | 0;if ((b | 0) == 5 ? We(c[a + 4 >> 2] | 0) | 0 : 0) b = 1;return b | 0;\n }function Ke(a, b) {\n a = a | 0;b = b | 0;if (oe(b) | 0 ? (c[a + 96 >> 2] | 0) != 0 : 0) b = 4;else b = c[1040 + (b << 2) >> 2] | 0;return a + 60 + (b << 3) | 0;\n }function Le(a, b) {\n a = a | 0;b = b | 0;if (oe(b) | 0 ? (c[a + 104 >> 2] | 0) != 0 : 0) b = 5;else b = c[1e3 + (b << 2) >> 2] | 0;return a + 60 + (b << 3) | 0;\n }function Me(a, b, d, e, f, h) {\n a = a | 0;b = b | 0;d = T(d);e = T(e);f = f | 0;h = h | 0;d = T(be(a + 380 + (c[976 + (b << 2) >> 2] << 3) | 0, d));d = T(d + T(Ud(a, b, e)));switch (c[f >> 2] | 0) {case 2:case 1:\n {\n f = Sb(d) | 0;e = T(g[h >> 2]);g[h >> 2] = f | e < d ? e : d;break;\n }case 0:\n {\n if (!(Sb(d) | 0)) {\n c[f >> 2] = 2;g[h >> 2] = d;\n }break;\n }default:\n {}}return;\n }function Ne(a, b) {\n a = a | 0;b = b | 0;a = a + 132 | 0;if (oe(b) | 0 ? (c[(Tb(a, 4, 948) | 0) + 4 >> 2] | 0) != 0 : 0) a = 1;else a = (c[(Tb(a, c[1040 + (b << 2) >> 2] | 0, 948) | 0) + 4 >> 2] | 0) != 0;return a | 0;\n }function Oe(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0;a = a + 132 | 0;if (oe(b) | 0 ? (e = Tb(a, 4, 948) | 0, (c[e + 4 >> 2] | 0) != 0) : 0) f = 4;else {\n e = Tb(a, c[1040 + (b << 2) >> 2] | 0, 948) | 0;if (!(c[e + 4 >> 2] | 0)) d = T(0.0);else f = 4;\n }if ((f | 0) == 4) d = T(be(e, d));return T(d);\n }function Pe(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = ib;e = T(g[a + 908 + (c[976 + (b << 2) >> 2] << 2) >> 2]);e = T(e + T(me(a, b, d)));return T(e + T(ne(a, b, d)));\n }function Qe(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;a: do if (!(We(c[a + 4 >> 2] | 0) | 0)) {\n if ((c[a + 16 >> 2] | 0) != 5) {\n d = $b(a) | 0;if (!d) b = 0;else {\n b = 0;while (1) {\n e = ac(a, b) | 0;if ((c[e + 24 >> 2] | 0) == 0 ? (c[e + 20 >> 2] | 0) == 5 : 0) {\n b = 1;break a;\n }b = b + 1 | 0;if (b >>> 0 >= d >>> 0) {\n b = 0;break;\n }\n }\n }\n } else b = 1;\n } else b = 0; while (0);return b | 0;\n }function Re(a, b) {\n a = a | 0;b = b | 0;var d = ib;d = T(g[a + 908 + (c[976 + (b << 2) >> 2] << 2) >> 2]);return d >= T(0.0) & ((Sb(d) | 0) ^ 1) | 0;\n }function Se(a) {\n a = a | 0;var b = ib,\n d = 0,\n e = 0,\n f = 0,\n h = 0,\n i = 0,\n j = 0,\n k = ib;d = c[a + 968 >> 2] | 0;if (!d) {\n h = $b(a) | 0;do if (h | 0) {\n d = 0;f = 0;while (1) {\n e = ac(a, f) | 0;if (c[e + 940 >> 2] | 0) {\n i = 8;break;\n }if ((c[e + 24 >> 2] | 0) != 1) {\n j = (Je(a, e) | 0) == 5;if (j) {\n d = e;break;\n } else d = (d | 0) == 0 ? e : d;\n }f = f + 1 | 0;if (f >>> 0 >= h >>> 0) {\n i = 8;break;\n }\n }if ((i | 0) == 8) if (!d) break;b = T(Se(d));return T(b + T(g[d + 404 >> 2]));\n } while (0);b = T(g[a + 912 >> 2]);\n } else {\n k = T(g[a + 908 >> 2]);b = T(g[a + 912 >> 2]);b = T(mb[d & 0](a, k, b));ec(a, (Sb(b) | 0) ^ 1, 3573);\n }return T(b);\n }function Te(a, b, c, d) {\n a = a | 0;b = b | 0;c = T(c);d = T(d);var e = ib,\n f = 0;if (!(We(b) | 0)) {\n if (oe(b) | 0) {\n b = 0;f = 3;\n } else {\n d = T(t);e = T(t);\n }\n } else {\n b = 1;f = 3;\n }if ((f | 0) == 3) {\n e = T(be(a + 364 + (b << 3) | 0, d));d = T(be(a + 380 + (b << 3) | 0, d));\n }f = d < c & (d >= T(0.0) & ((Sb(d) | 0) ^ 1));c = f ? d : c;f = e >= T(0.0) & ((Sb(e) | 0) ^ 1) & c < e;return T(f ? e : c);\n }function Ue(a, b, d, e, f, h, i) {\n a = a | 0;b = b | 0;d = T(d);e = e | 0;f = T(f);h = h | 0;i = i | 0;var j = ib,\n k = ib,\n l = 0,\n m = 0,\n n = ib,\n o = ib,\n p = ib,\n q = 0,\n r = 0,\n s = 0,\n u = 0,\n v = ib,\n w = 0;s = re(c[a + 4 >> 2] | 0, h) | 0;q = ze(s, h) | 0;r = oe(s) | 0;n = T(Ud(b, 2, d));o = T(Ud(b, 0, d));if (!(ae(b, 2, d) | 0)) {\n if (Ne(b, 2) | 0 ? Ze(b, 2) | 0 : 0) {\n j = T(g[a + 908 >> 2]);k = T(se(a, 2));k = T(j - T(k + T(te(a, 2))));j = T(Oe(b, 2, d));j = T(Ie(b, 2, T(k - T(j + T(_e(b, 2, d)))), d, d));\n } else j = T(t);\n } else j = T(n + T(be(c[b + 992 >> 2] | 0, d)));if (!(ae(b, 0, f) | 0)) {\n if (Ne(b, 0) | 0 ? Ze(b, 0) | 0 : 0) {\n k = T(g[a + 912 >> 2]);v = T(se(a, 0));v = T(k - T(v + T(te(a, 0))));k = T(Oe(b, 0, f));k = T(Ie(b, 0, T(v - T(k + T(_e(b, 0, f)))), f, d));\n } else k = T(t);\n } else k = T(o + T(be(c[b + 996 >> 2] | 0, f)));l = Sb(j) | 0;m = Sb(k) | 0;do if (l ^ m ? (p = T(g[b + 396 >> 2]), !(Sb(p) | 0)) : 0) if (l) {\n j = T(n + T(T(k - o) * p));break;\n } else {\n v = T(o + T(T(j - n) / p));k = m ? v : k;break;\n } while (0);m = Sb(j) | 0;l = Sb(k) | 0;if (m | l) {\n w = (m ^ 1) & 1;e = d > T(0.0) & ((e | 0) != 0 & m);j = r ? j : e ? d : j;Td(b, j, k, h, r ? w : e ? 2 : w, m & (l ^ 1) & 1, j, k, 0, 3623, i) | 0;j = T(g[b + 908 >> 2]);j = T(j + T(Ud(b, 2, d)));k = T(g[b + 912 >> 2]);k = T(k + T(Ud(b, 0, d)));\n }Td(b, j, k, h, 1, 1, j, k, 1, 3635, i) | 0;if (Ze(b, s) | 0 ? !(Ne(b, s) | 0) : 0) {\n w = c[976 + (s << 2) >> 2] | 0;v = T(g[a + 908 + (w << 2) >> 2]);v = T(v - T(g[b + 908 + (w << 2) >> 2]));v = T(v - T(te(a, s)));v = T(v - T(ne(b, s, d)));v = T(v - T(_e(b, s, r ? d : f)));g[b + 400 + (c[1040 + (s << 2) >> 2] << 2) >> 2] = v;\n } else u = 21;do if ((u | 0) == 21) {\n if (!(Ne(b, s) | 0) ? (c[a + 8 >> 2] | 0) == 1 : 0) {\n w = c[976 + (s << 2) >> 2] | 0;v = T(g[a + 908 + (w << 2) >> 2]);v = T(T(v - T(g[b + 908 + (w << 2) >> 2])) * T(.5));g[b + 400 + (c[1040 + (s << 2) >> 2] << 2) >> 2] = v;break;\n }if (!(Ne(b, s) | 0) ? (c[a + 8 >> 2] | 0) == 2 : 0) {\n w = c[976 + (s << 2) >> 2] | 0;v = T(g[a + 908 + (w << 2) >> 2]);v = T(v - T(g[b + 908 + (w << 2) >> 2]));g[b + 400 + (c[1040 + (s << 2) >> 2] << 2) >> 2] = v;\n }\n } while (0);if (Ze(b, q) | 0 ? !(Ne(b, q) | 0) : 0) {\n w = c[976 + (q << 2) >> 2] | 0;v = T(g[a + 908 + (w << 2) >> 2]);v = T(v - T(g[b + 908 + (w << 2) >> 2]));v = T(v - T(te(a, q)));v = T(v - T(ne(b, q, d)));v = T(v - T(_e(b, q, r ? f : d)));g[b + 400 + (c[1040 + (q << 2) >> 2] << 2) >> 2] = v;\n } else u = 30;do if ((u | 0) == 30 ? !(Ne(b, q) | 0) : 0) {\n if ((Je(a, b) | 0) == 2) {\n w = c[976 + (q << 2) >> 2] | 0;v = T(g[a + 908 + (w << 2) >> 2]);v = T(T(v - T(g[b + 908 + (w << 2) >> 2])) * T(.5));g[b + 400 + (c[1040 + (q << 2) >> 2] << 2) >> 2] = v;break;\n }w = (Je(a, b) | 0) == 3;if (w ^ (c[a + 28 >> 2] | 0) == 2) {\n w = c[976 + (q << 2) >> 2] | 0;v = T(g[a + 908 + (w << 2) >> 2]);v = T(v - T(g[b + 908 + (w << 2) >> 2]));g[b + 400 + (c[1040 + (q << 2) >> 2] << 2) >> 2] = v;\n }\n } while (0);return;\n }function Ve(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = ib,\n f = 0;f = c[976 + (d << 2) >> 2] | 0;e = T(g[b + 908 + (f << 2) >> 2]);e = T(T(g[a + 908 + (f << 2) >> 2]) - e);e = T(e - T(g[b + 400 + (c[1040 + (d << 2) >> 2] << 2) >> 2]));g[b + 400 + (c[1e3 + (d << 2) >> 2] << 2) >> 2] = e;return;\n }function We(a) {\n a = a | 0;return (a | 1 | 0) == 1 | 0;\n }function Xe(b) {\n b = b | 0;var d = ib;switch (c[b + 56 >> 2] | 0) {case 0:case 3:\n {\n d = T(g[b + 40 >> 2]);if (d > T(0.0) & ((Sb(d) | 0) ^ 1)) b = a[(c[b + 976 >> 2] | 0) + 2 >> 0] | 0 ? 1056 : 992;else b = 1056;break;\n }default:\n b = b + 52 | 0;}return b | 0;\n }function Ye(b, c) {\n b = b | 0;c = c | 0;return (a[b + c >> 0] | 0) != 0 | 0;\n }function Ze(a, b) {\n a = a | 0;b = b | 0;a = a + 132 | 0;if (oe(b) | 0 ? (c[(Tb(a, 5, 948) | 0) + 4 >> 2] | 0) != 0 : 0) a = 1;else a = (c[(Tb(a, c[1e3 + (b << 2) >> 2] | 0, 948) | 0) + 4 >> 2] | 0) != 0;return a | 0;\n }function _e(a, b, d) {\n a = a | 0;b = b | 0;d = T(d);var e = 0,\n f = 0;a = a + 132 | 0;if (oe(b) | 0 ? (e = Tb(a, 5, 948) | 0, (c[e + 4 >> 2] | 0) != 0) : 0) f = 4;else {\n e = Tb(a, c[1e3 + (b << 2) >> 2] | 0, 948) | 0;if (!(c[e + 4 >> 2] | 0)) d = T(0.0);else f = 4;\n }if ((f | 0) == 4) d = T(be(e, d));return T(d);\n }function $e(a, b, c) {\n a = a | 0;b = b | 0;c = T(c);if (Ne(a, b) | 0) c = T(Oe(a, b, c));else c = T(-T(_e(a, b, c)));return T(c);\n }function af(a) {\n a = T(a);return (g[j >> 2] = a, c[j >> 2] | 0) | 0;\n }function bf(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 1073741823) Ta();else {\n f = qC(b << 2) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 2) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 2);return;\n }function cf(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 2) << 2) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function df(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -4 - b | 0) >>> 2) << 2);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function ef(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;h = a + 4 | 0;i = c[h >> 2] | 0;f = i - e | 0;g = f >> 2;a = b + (g << 2) | 0;if (a >>> 0 < d >>> 0) {\n e = i;do {\n c[e >> 2] = c[a >> 2];a = a + 4 | 0;e = (c[h >> 2] | 0) + 4 | 0;c[h >> 2] = e;\n } while (a >>> 0 < d >>> 0);\n }if (g | 0) GC(i + (0 - g << 2) | 0, b | 0, f | 0) | 0;return;\n }function ff(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = b + 4 | 0;j = c[i >> 2] | 0;f = c[a >> 2] | 0;h = d;g = h - f | 0;e = j + (0 - (g >> 2) << 2) | 0;c[i >> 2] = e;if ((g | 0) > 0) BC(e | 0, f | 0, g | 0) | 0;f = a + 4 | 0;g = b + 8 | 0;e = (c[f >> 2] | 0) - h | 0;if ((e | 0) > 0) {\n BC(c[g >> 2] | 0, d | 0, e | 0) | 0;c[g >> 2] = (c[g >> 2] | 0) + (e >>> 2 << 2);\n }h = c[a >> 2] | 0;c[a >> 2] = c[i >> 2];c[i >> 2] = h;h = c[f >> 2] | 0;c[f >> 2] = c[g >> 2];c[g >> 2] = h;h = a + 8 | 0;d = b + 12 | 0;a = c[h >> 2] | 0;c[h >> 2] = c[d >> 2];c[d >> 2] = a;c[b >> 2] = c[i >> 2];return j | 0;\n }function gf(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;h = c[b >> 2] | 0;g = c[d >> 2] | 0;if ((h | 0) != (g | 0)) {\n f = a + 8 | 0;d = ((g + -4 - h | 0) >>> 2) + 1 | 0;a = h;e = c[f >> 2] | 0;do {\n c[e >> 2] = c[a >> 2];e = (c[f >> 2] | 0) + 4 | 0;c[f >> 2] = e;a = a + 4 | 0;\n } while ((a | 0) != (g | 0));c[b >> 2] = h + (d << 2);\n }return;\n }function hf() {\n Qb();return;\n }function jf() {\n var a = 0;a = qC(4) | 0;kf(a);return a | 0;\n }function kf(a) {\n a = a | 0;c[a >> 2] = gc() | 0;return;\n }function lf(a) {\n a = a | 0;if (a | 0) {\n mf(a);sC(a);\n }return;\n }function mf(a) {\n a = a | 0;ic(c[a >> 2] | 0);return;\n }function nf(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;he(c[a >> 2] | 0, b, d);return;\n }function of(a, b) {\n a = a | 0;b = T(b);Zd(c[a >> 2] | 0, b);return;\n }function pf(a, b) {\n a = a | 0;b = b | 0;return Ye(c[a >> 2] | 0, b) | 0;\n }function qf() {\n var a = 0;a = qC(8) | 0;rf(a, 0);return a | 0;\n }function rf(a, b) {\n a = a | 0;b = b | 0;if (!b) b = Wb() | 0;else b = Ub(c[b >> 2] | 0) | 0;c[a >> 2] = b;c[a + 4 >> 2] = 0;vc(b, a);return;\n }function sf(a) {\n a = a | 0;var b = 0;b = qC(8) | 0;rf(b, a);return b | 0;\n }function tf(a) {\n a = a | 0;if (a | 0) {\n uf(a);sC(a);\n }return;\n }function uf(a) {\n a = a | 0;var b = 0;Zb(c[a >> 2] | 0);b = a + 4 | 0;a = c[b >> 2] | 0;c[b >> 2] = 0;if (a | 0) {\n vf(a);sC(a);\n }return;\n }function vf(a) {\n a = a | 0;wf(a);return;\n }function wf(a) {\n a = a | 0;a = c[a >> 2] | 0;if (a | 0) ab(a | 0);return;\n }function xf(a) {\n a = a | 0;return wc(a) | 0;\n }function yf(a) {\n a = a | 0;var b = 0,\n d = 0;d = a + 4 | 0;b = c[d >> 2] | 0;c[d >> 2] = 0;if (b | 0) {\n vf(b);sC(b);\n }dc(c[a >> 2] | 0);return;\n }function zf(a, b) {\n a = a | 0;b = b | 0;sc(c[a >> 2] | 0, c[b >> 2] | 0);return;\n }function Af(a, b) {\n a = a | 0;b = b | 0;Hc(c[a >> 2] | 0, b);return;\n }function Bf(a, b, d) {\n a = a | 0;b = b | 0;d = +d;Vc(c[a >> 2] | 0, b, T(d));return;\n }function Cf(a, b, d) {\n a = a | 0;b = b | 0;d = +d;Wc(c[a >> 2] | 0, b, T(d));return;\n }function Df(a, b) {\n a = a | 0;b = b | 0;Bc(c[a >> 2] | 0, b);return;\n }function Ef(a, b) {\n a = a | 0;b = b | 0;Dc(c[a >> 2] | 0, b);return;\n }function Ff(a, b) {\n a = a | 0;b = b | 0;Fc(c[a >> 2] | 0, b);return;\n }function Gf(a, b) {\n a = a | 0;b = b | 0;xc(c[a >> 2] | 0, b);return;\n }function Hf(a, b) {\n a = a | 0;b = b | 0;Jc(c[a >> 2] | 0, b);return;\n }function If(a, b) {\n a = a | 0;b = b | 0;zc(c[a >> 2] | 0, b);return;\n }function Jf(a, b, d) {\n a = a | 0;b = b | 0;d = +d;Yc(c[a >> 2] | 0, b, T(d));return;\n }function Kf(a, b, d) {\n a = a | 0;b = b | 0;d = +d;Zc(c[a >> 2] | 0, b, T(d));return;\n }function Lf(a, b) {\n a = a | 0;b = b | 0;$c(c[a >> 2] | 0, b);return;\n }function Mf(a, b) {\n a = a | 0;b = b | 0;Lc(c[a >> 2] | 0, b);return;\n }function Nf(a, b) {\n a = a | 0;b = b | 0;Nc(c[a >> 2] | 0, b);return;\n }function Of(a, b) {\n a = a | 0;b = +b;Pc(c[a >> 2] | 0, T(b));return;\n }function Pf(a, b) {\n a = a | 0;b = +b;Sc(c[a >> 2] | 0, T(b));return;\n }function Qf(a, b) {\n a = a | 0;b = +b;Tc(c[a >> 2] | 0, T(b));return;\n }function Rf(a, b) {\n a = a | 0;b = +b;Qc(c[a >> 2] | 0, T(b));return;\n }function Sf(a, b) {\n a = a | 0;b = +b;Rc(c[a >> 2] | 0, T(b));return;\n }function Tf(a, b) {\n a = a | 0;b = +b;fd(c[a >> 2] | 0, T(b));return;\n }function Uf(a, b) {\n a = a | 0;b = +b;gd(c[a >> 2] | 0, T(b));return;\n }function Vf(a) {\n a = a | 0;hd(c[a >> 2] | 0);return;\n }function Wf(a, b) {\n a = a | 0;b = +b;jd(c[a >> 2] | 0, T(b));return;\n }function Xf(a, b) {\n a = a | 0;b = +b;kd(c[a >> 2] | 0, T(b));return;\n }function Yf(a) {\n a = a | 0;ld(c[a >> 2] | 0);return;\n }function Zf(a, b) {\n a = a | 0;b = +b;nd(c[a >> 2] | 0, T(b));return;\n }function _f(a, b) {\n a = a | 0;b = +b;od(c[a >> 2] | 0, T(b));return;\n }function $f(a, b) {\n a = a | 0;b = +b;qd(c[a >> 2] | 0, T(b));return;\n }function ag(a, b) {\n a = a | 0;b = +b;rd(c[a >> 2] | 0, T(b));return;\n }function bg(a, b) {\n a = a | 0;b = +b;td(c[a >> 2] | 0, T(b));return;\n }function cg(a, b) {\n a = a | 0;b = +b;ud(c[a >> 2] | 0, T(b));return;\n }function dg(a, b) {\n a = a | 0;b = +b;wd(c[a >> 2] | 0, T(b));return;\n }function eg(a, b) {\n a = a | 0;b = +b;xd(c[a >> 2] | 0, T(b));return;\n }function fg(a, b) {\n a = a | 0;b = +b;zd(c[a >> 2] | 0, T(b));return;\n }function gg(a, b, d) {\n a = a | 0;b = b | 0;d = +d;dd(c[a >> 2] | 0, b, T(d));return;\n }function hg(a, b, d) {\n a = a | 0;b = b | 0;d = +d;ad(c[a >> 2] | 0, b, T(d));return;\n }function ig(a, b, d) {\n a = a | 0;b = b | 0;d = +d;bd(c[a >> 2] | 0, b, T(d));return;\n }function jg(a) {\n a = a | 0;return Ic(c[a >> 2] | 0) | 0;\n }function kg(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0;e = l;l = l + 16 | 0;f = e;Xc(f, c[b >> 2] | 0, d);lg(a, f);l = e;return;\n }function lg(a, b) {\n a = a | 0;b = b | 0;mg(a, c[b + 4 >> 2] | 0, +T(g[b >> 2]));return;\n }function mg(a, b, d) {\n a = a | 0;b = b | 0;d = +d;c[a >> 2] = b;h[a + 8 >> 3] = d;return;\n }function ng(a) {\n a = a | 0;return Cc(c[a >> 2] | 0) | 0;\n }function og(a) {\n a = a | 0;return Ec(c[a >> 2] | 0) | 0;\n }function pg(a) {\n a = a | 0;return Gc(c[a >> 2] | 0) | 0;\n }function qg(a) {\n a = a | 0;return yc(c[a >> 2] | 0) | 0;\n }function rg(a) {\n a = a | 0;return Kc(c[a >> 2] | 0) | 0;\n }function sg(a) {\n a = a | 0;return Ac(c[a >> 2] | 0) | 0;\n }function tg(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0;e = l;l = l + 16 | 0;f = e;_c(f, c[b >> 2] | 0, d);lg(a, f);l = e;return;\n }function ug(a) {\n a = a | 0;return Mc(c[a >> 2] | 0) | 0;\n }function vg(a) {\n a = a | 0;return Oc(c[a >> 2] | 0) | 0;\n }function wg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;Uc(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function xg(a) {\n a = a | 0;return + +T(tc(c[a >> 2] | 0));\n }function yg(a) {\n a = a | 0;return + +T(uc(c[a >> 2] | 0));\n }function zg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;id(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function Ag(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;md(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function Bg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;pd(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function Cg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;sd(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function Dg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;vd(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function Eg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;yd(e, c[b >> 2] | 0);lg(a, e);l = d;return;\n }function Fg(a) {\n a = a | 0;return + +T(Ad(c[a >> 2] | 0));\n }function Gg(a, b) {\n a = a | 0;b = b | 0;return + +T(ed(c[a >> 2] | 0, b));\n }function Hg(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0;e = l;l = l + 16 | 0;f = e;cd(f, c[b >> 2] | 0, d);lg(a, f);l = e;return;\n }function Ig(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;kc(c[a >> 2] | 0, c[b >> 2] | 0, d);return;\n }function Jg(a, b) {\n a = a | 0;b = b | 0;cc(c[a >> 2] | 0, c[b >> 2] | 0);return;\n }function Kg(a) {\n a = a | 0;return $b(c[a >> 2] | 0) | 0;\n }function Lg(a) {\n a = a | 0;a = pc(c[a >> 2] | 0) | 0;if (!a) a = 0;else a = xf(a) | 0;return a | 0;\n }function Mg(a, b) {\n a = a | 0;b = b | 0;a = ac(c[a >> 2] | 0, b) | 0;if (!a) a = 0;else a = xf(a) | 0;return a | 0;\n }function Ng(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;e = qC(4) | 0;Og(e, b);d = a + 4 | 0;b = c[d >> 2] | 0;c[d >> 2] = e;if (b | 0) {\n vf(b);sC(b);\n }jc(c[a >> 2] | 0, 1);return;\n }function Og(a, b) {\n a = a | 0;b = b | 0;gh(a, b);return;\n }function Pg(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = T(c);d = d | 0;e = T(e);f = f | 0;var i = 0,\n j = 0;i = l;l = l + 16 | 0;j = i;Qg(j, wc(b) | 0, +c, d, +e, f);g[a >> 2] = T(+h[j >> 3]);g[a + 4 >> 2] = T(+h[j + 8 >> 3]);l = i;return;\n }function Qg(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = +d;e = e | 0;f = +f;g = g | 0;var i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;i = l;l = l + 32 | 0;n = i + 8 | 0;m = i + 20 | 0;k = i;j = i + 16 | 0;h[n >> 3] = d;c[m >> 2] = e;h[k >> 3] = f;c[j >> 2] = g;Rg(a, c[b + 4 >> 2] | 0, n, m, k, j);l = i;return;\n }function Rg(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var i = 0,\n j = 0;i = l;l = l + 16 | 0;j = i;UA(j);b = Sg(b) | 0;Tg(a, b, +h[d >> 3], c[e >> 2] | 0, +h[f >> 3], c[g >> 2] | 0);WA(j);l = i;return;\n }function Sg(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function Tg(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = +c;d = d | 0;e = +e;f = f | 0;var g = 0;g = Vg(Ug() | 0) | 0;c = +Wg(c);d = Xg(d) | 0;e = +Wg(e);Yg(a, cb(0, g | 0, b | 0, +c, d | 0, +e, Xg(f) | 0) | 0);return;\n }function Ug() {\n var b = 0;if (!(a[7608] | 0)) {\n dh(9120);b = 7608;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 9120;\n }function Vg(a) {\n a = a | 0;return c[a + 8 >> 2] | 0;\n }function Wg(a) {\n a = +a;return + +ch(a);\n }function Xg(a) {\n a = a | 0;return bh(a) | 0;\n }function Yg(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;f = l;l = l + 32 | 0;d = f;e = b;if (!(e & 1)) {\n c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = c[b + 4 >> 2];c[a + 8 >> 2] = c[b + 8 >> 2];c[a + 12 >> 2] = c[b + 12 >> 2];\n } else {\n Zg(d, 0);Ja(e | 0, d | 0) | 0;_g(a, d);$g(d);\n }l = f;return;\n }function Zg(b, d) {\n b = b | 0;d = d | 0;ah(b, d);c[b + 8 >> 2] = 0;a[b + 24 >> 0] = 0;return;\n }function _g(a, b) {\n a = a | 0;b = b | 0;b = b + 8 | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = c[b + 4 >> 2];c[a + 8 >> 2] = c[b + 8 >> 2];c[a + 12 >> 2] = c[b + 12 >> 2];return;\n }function $g(b) {\n b = b | 0;a[b + 24 >> 0] = 0;return;\n }function ah(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = b;return;\n }function bh(a) {\n a = a | 0;return a | 0;\n }function ch(a) {\n a = +a;return +a;\n }function dh(a) {\n a = a | 0;fh(a, eh() | 0, 4);return;\n }function eh() {\n return 1064;\n }function fh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;c[a + 8 >> 2] = _a(b | 0, d + 1 | 0) | 0;return;\n }function gh(a, b) {\n a = a | 0;b = b | 0;b = c[b >> 2] | 0;c[a >> 2] = b;Aa(b | 0);return;\n }function hh(a) {\n a = a | 0;var b = 0,\n d = 0;d = a + 4 | 0;b = c[d >> 2] | 0;c[d >> 2] = 0;if (b | 0) {\n vf(b);sC(b);\n }jc(c[a >> 2] | 0, 0);return;\n }function ih(a) {\n a = a | 0;qc(c[a >> 2] | 0);return;\n }function jh(a) {\n a = a | 0;return rc(c[a >> 2] | 0) | 0;\n }function kh(a, b, d, e) {\n a = a | 0;b = +b;d = +d;e = e | 0;_d(c[a >> 2] | 0, T(b), T(d), e);return;\n }function lh(a) {\n a = a | 0;return + +T(Bd(c[a >> 2] | 0));\n }function mh(a) {\n a = a | 0;return + +T(Dd(c[a >> 2] | 0));\n }function nh(a) {\n a = a | 0;return + +T(Cd(c[a >> 2] | 0));\n }function oh(a) {\n a = a | 0;return + +T(Ed(c[a >> 2] | 0));\n }function ph(a) {\n a = a | 0;return + +T(Fd(c[a >> 2] | 0));\n }function qh(a) {\n a = a | 0;return + +T(Gd(c[a >> 2] | 0));\n }function rh(a, b) {\n a = a | 0;b = b | 0;h[a >> 3] = +T(Bd(c[b >> 2] | 0));h[a + 8 >> 3] = +T(Dd(c[b >> 2] | 0));h[a + 16 >> 3] = +T(Cd(c[b >> 2] | 0));h[a + 24 >> 3] = +T(Ed(c[b >> 2] | 0));h[a + 32 >> 3] = +T(Fd(c[b >> 2] | 0));h[a + 40 >> 3] = +T(Gd(c[b >> 2] | 0));return;\n }function sh(a, b) {\n a = a | 0;b = b | 0;return + +T(Hd(c[a >> 2] | 0, b));\n }function th(a, b) {\n a = a | 0;b = b | 0;return + +T(Id(c[a >> 2] | 0, b));\n }function uh(a, b) {\n a = a | 0;b = b | 0;return + +T(Jd(c[a >> 2] | 0, b));\n }function vh() {\n return fc() | 0;\n }function wh() {\n xh();yh();zh();Ah();Bh();Ch();return;\n }function xh() {\n kv(11713, 4938, 1);return;\n }function yh() {\n yu(10448);return;\n }function zh() {\n eu(10408);return;\n }function Ah() {\n vt(10324);return;\n }function Bh() {\n or(10096);return;\n }function Ch() {\n Dh(9132);return;\n }function Dh(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0,\n t = 0,\n u = 0,\n v = 0,\n w = 0,\n x = 0,\n y = 0,\n z = 0,\n A = 0,\n B = 0,\n C = 0,\n D = 0,\n E = 0,\n F = 0,\n G = 0,\n H = 0,\n I = 0,\n J = 0,\n K = 0,\n L = 0,\n M = 0,\n N = 0,\n O = 0,\n P = 0,\n Q = 0,\n R = 0,\n S = 0,\n T = 0,\n U = 0,\n V = 0,\n W = 0,\n X = 0,\n Y = 0,\n Z = 0,\n _ = 0,\n $ = 0,\n aa = 0,\n ba = 0,\n ca = 0,\n da = 0,\n ea = 0,\n fa = 0,\n ga = 0,\n ha = 0,\n ia = 0,\n ja = 0,\n ka = 0,\n la = 0,\n ma = 0,\n na = 0,\n oa = 0,\n pa = 0,\n qa = 0,\n ra = 0,\n sa = 0,\n ta = 0,\n ua = 0,\n va = 0,\n wa = 0,\n xa = 0,\n ya = 0,\n za = 0,\n Aa = 0,\n Ba = 0,\n Ca = 0,\n Da = 0,\n Ea = 0,\n Fa = 0,\n Ga = 0;b = l;l = l + 672 | 0;d = b + 656 | 0;Ga = b + 648 | 0;Fa = b + 640 | 0;Ea = b + 632 | 0;Da = b + 624 | 0;Ca = b + 616 | 0;Ba = b + 608 | 0;Aa = b + 600 | 0;za = b + 592 | 0;ya = b + 584 | 0;xa = b + 576 | 0;wa = b + 568 | 0;va = b + 560 | 0;ua = b + 552 | 0;ta = b + 544 | 0;sa = b + 536 | 0;ra = b + 528 | 0;qa = b + 520 | 0;pa = b + 512 | 0;oa = b + 504 | 0;na = b + 496 | 0;ma = b + 488 | 0;la = b + 480 | 0;ka = b + 472 | 0;ja = b + 464 | 0;ia = b + 456 | 0;ha = b + 448 | 0;ga = b + 440 | 0;fa = b + 432 | 0;ea = b + 424 | 0;da = b + 416 | 0;ca = b + 408 | 0;ba = b + 400 | 0;aa = b + 392 | 0;$ = b + 384 | 0;_ = b + 376 | 0;Z = b + 368 | 0;Y = b + 360 | 0;X = b + 352 | 0;W = b + 344 | 0;V = b + 336 | 0;U = b + 328 | 0;T = b + 320 | 0;S = b + 312 | 0;R = b + 304 | 0;Q = b + 296 | 0;P = b + 288 | 0;O = b + 280 | 0;N = b + 272 | 0;M = b + 264 | 0;L = b + 256 | 0;K = b + 248 | 0;J = b + 240 | 0;I = b + 232 | 0;H = b + 224 | 0;G = b + 216 | 0;F = b + 208 | 0;E = b + 200 | 0;D = b + 192 | 0;C = b + 184 | 0;B = b + 176 | 0;A = b + 168 | 0;z = b + 160 | 0;y = b + 152 | 0;x = b + 144 | 0;w = b + 136 | 0;v = b + 128 | 0;u = b + 120 | 0;t = b + 112 | 0;s = b + 104 | 0;r = b + 96 | 0;q = b + 88 | 0;p = b + 80 | 0;o = b + 72 | 0;n = b + 64 | 0;m = b + 56 | 0;k = b + 48 | 0;j = b + 40 | 0;i = b + 32 | 0;h = b + 24 | 0;g = b + 16 | 0;f = b + 8 | 0;e = b;Eh(a, 3646);Fh(a, 3651, 2) | 0;Gh(a, 3665, 2) | 0;Hh(a, 3682, 18) | 0;c[Ga >> 2] = 19;c[Ga + 4 >> 2] = 0;c[d >> 2] = c[Ga >> 2];c[d + 4 >> 2] = c[Ga + 4 >> 2];Ih(a, 3690, d) | 0;c[Fa >> 2] = 1;c[Fa + 4 >> 2] = 0;c[d >> 2] = c[Fa >> 2];c[d + 4 >> 2] = c[Fa + 4 >> 2];Jh(a, 3696, d) | 0;c[Ea >> 2] = 2;c[Ea + 4 >> 2] = 0;c[d >> 2] = c[Ea >> 2];c[d + 4 >> 2] = c[Ea + 4 >> 2];Kh(a, 3706, d) | 0;c[Da >> 2] = 1;c[Da + 4 >> 2] = 0;c[d >> 2] = c[Da >> 2];c[d + 4 >> 2] = c[Da + 4 >> 2];Lh(a, 3722, d) | 0;c[Ca >> 2] = 2;c[Ca + 4 >> 2] = 0;c[d >> 2] = c[Ca >> 2];c[d + 4 >> 2] = c[Ca + 4 >> 2];Lh(a, 3734, d) | 0;c[Ba >> 2] = 3;c[Ba + 4 >> 2] = 0;c[d >> 2] = c[Ba >> 2];c[d + 4 >> 2] = c[Ba + 4 >> 2];Kh(a, 3753, d) | 0;c[Aa >> 2] = 4;c[Aa + 4 >> 2] = 0;c[d >> 2] = c[Aa >> 2];c[d + 4 >> 2] = c[Aa + 4 >> 2];Kh(a, 3769, d) | 0;c[za >> 2] = 5;c[za + 4 >> 2] = 0;c[d >> 2] = c[za >> 2];c[d + 4 >> 2] = c[za + 4 >> 2];Kh(a, 3783, d) | 0;c[ya >> 2] = 6;c[ya + 4 >> 2] = 0;c[d >> 2] = c[ya >> 2];c[d + 4 >> 2] = c[ya + 4 >> 2];Kh(a, 3796, d) | 0;c[xa >> 2] = 7;c[xa + 4 >> 2] = 0;c[d >> 2] = c[xa >> 2];c[d + 4 >> 2] = c[xa + 4 >> 2];Kh(a, 3813, d) | 0;c[wa >> 2] = 8;c[wa + 4 >> 2] = 0;c[d >> 2] = c[wa >> 2];c[d + 4 >> 2] = c[wa + 4 >> 2];Kh(a, 3825, d) | 0;c[va >> 2] = 3;c[va + 4 >> 2] = 0;c[d >> 2] = c[va >> 2];c[d + 4 >> 2] = c[va + 4 >> 2];Lh(a, 3843, d) | 0;c[ua >> 2] = 4;c[ua + 4 >> 2] = 0;c[d >> 2] = c[ua >> 2];c[d + 4 >> 2] = c[ua + 4 >> 2];Lh(a, 3853, d) | 0;c[ta >> 2] = 9;c[ta + 4 >> 2] = 0;c[d >> 2] = c[ta >> 2];c[d + 4 >> 2] = c[ta + 4 >> 2];Kh(a, 3870, d) | 0;c[sa >> 2] = 10;c[sa + 4 >> 2] = 0;c[d >> 2] = c[sa >> 2];c[d + 4 >> 2] = c[sa + 4 >> 2];Kh(a, 3884, d) | 0;c[ra >> 2] = 11;c[ra + 4 >> 2] = 0;c[d >> 2] = c[ra >> 2];c[d + 4 >> 2] = c[ra + 4 >> 2];Kh(a, 3896, d) | 0;c[qa >> 2] = 1;c[qa + 4 >> 2] = 0;c[d >> 2] = c[qa >> 2];c[d + 4 >> 2] = c[qa + 4 >> 2];Mh(a, 3907, d) | 0;c[pa >> 2] = 2;c[pa + 4 >> 2] = 0;c[d >> 2] = c[pa >> 2];c[d + 4 >> 2] = c[pa + 4 >> 2];Mh(a, 3915, d) | 0;c[oa >> 2] = 3;c[oa + 4 >> 2] = 0;c[d >> 2] = c[oa >> 2];c[d + 4 >> 2] = c[oa + 4 >> 2];Mh(a, 3928, d) | 0;c[na >> 2] = 4;c[na + 4 >> 2] = 0;c[d >> 2] = c[na >> 2];c[d + 4 >> 2] = c[na + 4 >> 2];Mh(a, 3948, d) | 0;c[ma >> 2] = 5;c[ma + 4 >> 2] = 0;c[d >> 2] = c[ma >> 2];c[d + 4 >> 2] = c[ma + 4 >> 2];Mh(a, 3960, d) | 0;c[la >> 2] = 6;c[la + 4 >> 2] = 0;c[d >> 2] = c[la >> 2];c[d + 4 >> 2] = c[la + 4 >> 2];Mh(a, 3974, d) | 0;c[ka >> 2] = 7;c[ka + 4 >> 2] = 0;c[d >> 2] = c[ka >> 2];c[d + 4 >> 2] = c[ka + 4 >> 2];Mh(a, 3983, d) | 0;c[ja >> 2] = 20;c[ja + 4 >> 2] = 0;c[d >> 2] = c[ja >> 2];c[d + 4 >> 2] = c[ja + 4 >> 2];Ih(a, 3999, d) | 0;c[ia >> 2] = 8;c[ia + 4 >> 2] = 0;c[d >> 2] = c[ia >> 2];c[d + 4 >> 2] = c[ia + 4 >> 2];Mh(a, 4012, d) | 0;c[ha >> 2] = 9;c[ha + 4 >> 2] = 0;c[d >> 2] = c[ha >> 2];c[d + 4 >> 2] = c[ha + 4 >> 2];Mh(a, 4022, d) | 0;c[ga >> 2] = 21;c[ga + 4 >> 2] = 0;c[d >> 2] = c[ga >> 2];c[d + 4 >> 2] = c[ga + 4 >> 2];Ih(a, 4039, d) | 0;c[fa >> 2] = 10;c[fa + 4 >> 2] = 0;c[d >> 2] = c[fa >> 2];c[d + 4 >> 2] = c[fa + 4 >> 2];Mh(a, 4053, d) | 0;c[ea >> 2] = 11;c[ea + 4 >> 2] = 0;c[d >> 2] = c[ea >> 2];c[d + 4 >> 2] = c[ea + 4 >> 2];Mh(a, 4065, d) | 0;c[da >> 2] = 12;c[da + 4 >> 2] = 0;c[d >> 2] = c[da >> 2];c[d + 4 >> 2] = c[da + 4 >> 2];Mh(a, 4084, d) | 0;c[ca >> 2] = 13;c[ca + 4 >> 2] = 0;c[d >> 2] = c[ca >> 2];c[d + 4 >> 2] = c[ca + 4 >> 2];Mh(a, 4097, d) | 0;c[ba >> 2] = 14;c[ba + 4 >> 2] = 0;c[d >> 2] = c[ba >> 2];c[d + 4 >> 2] = c[ba + 4 >> 2];Mh(a, 4117, d) | 0;c[aa >> 2] = 15;c[aa + 4 >> 2] = 0;c[d >> 2] = c[aa >> 2];c[d + 4 >> 2] = c[aa + 4 >> 2];Mh(a, 4129, d) | 0;c[$ >> 2] = 16;c[$ + 4 >> 2] = 0;c[d >> 2] = c[$ >> 2];c[d + 4 >> 2] = c[$ + 4 >> 2];Mh(a, 4148, d) | 0;c[_ >> 2] = 17;c[_ + 4 >> 2] = 0;c[d >> 2] = c[_ >> 2];c[d + 4 >> 2] = c[_ + 4 >> 2];Mh(a, 4161, d) | 0;c[Z >> 2] = 18;c[Z + 4 >> 2] = 0;c[d >> 2] = c[Z >> 2];c[d + 4 >> 2] = c[Z + 4 >> 2];Mh(a, 4181, d) | 0;c[Y >> 2] = 5;c[Y + 4 >> 2] = 0;c[d >> 2] = c[Y >> 2];c[d + 4 >> 2] = c[Y + 4 >> 2];Lh(a, 4196, d) | 0;c[X >> 2] = 6;c[X + 4 >> 2] = 0;c[d >> 2] = c[X >> 2];c[d + 4 >> 2] = c[X + 4 >> 2];Lh(a, 4206, d) | 0;c[W >> 2] = 7;c[W + 4 >> 2] = 0;c[d >> 2] = c[W >> 2];c[d + 4 >> 2] = c[W + 4 >> 2];Lh(a, 4217, d) | 0;c[V >> 2] = 3;c[V + 4 >> 2] = 0;c[d >> 2] = c[V >> 2];c[d + 4 >> 2] = c[V + 4 >> 2];Nh(a, 4235, d) | 0;c[U >> 2] = 1;c[U + 4 >> 2] = 0;c[d >> 2] = c[U >> 2];c[d + 4 >> 2] = c[U + 4 >> 2];Oh(a, 4251, d) | 0;c[T >> 2] = 4;c[T + 4 >> 2] = 0;c[d >> 2] = c[T >> 2];c[d + 4 >> 2] = c[T + 4 >> 2];Nh(a, 4263, d) | 0;c[S >> 2] = 5;c[S + 4 >> 2] = 0;c[d >> 2] = c[S >> 2];c[d + 4 >> 2] = c[S + 4 >> 2];Nh(a, 4279, d) | 0;c[R >> 2] = 6;c[R + 4 >> 2] = 0;c[d >> 2] = c[R >> 2];c[d + 4 >> 2] = c[R + 4 >> 2];Nh(a, 4293, d) | 0;c[Q >> 2] = 7;c[Q + 4 >> 2] = 0;c[d >> 2] = c[Q >> 2];c[d + 4 >> 2] = c[Q + 4 >> 2];Nh(a, 4306, d) | 0;c[P >> 2] = 8;c[P + 4 >> 2] = 0;c[d >> 2] = c[P >> 2];c[d + 4 >> 2] = c[P + 4 >> 2];Nh(a, 4323, d) | 0;c[O >> 2] = 9;c[O + 4 >> 2] = 0;c[d >> 2] = c[O >> 2];c[d + 4 >> 2] = c[O + 4 >> 2];Nh(a, 4335, d) | 0;c[N >> 2] = 2;c[N + 4 >> 2] = 0;c[d >> 2] = c[N >> 2];c[d + 4 >> 2] = c[N + 4 >> 2];Oh(a, 4353, d) | 0;c[M >> 2] = 12;c[M + 4 >> 2] = 0;c[d >> 2] = c[M >> 2];c[d + 4 >> 2] = c[M + 4 >> 2];Ph(a, 4363, d) | 0;c[L >> 2] = 1;c[L + 4 >> 2] = 0;c[d >> 2] = c[L >> 2];c[d + 4 >> 2] = c[L + 4 >> 2];Qh(a, 4376, d) | 0;c[K >> 2] = 2;c[K + 4 >> 2] = 0;c[d >> 2] = c[K >> 2];c[d + 4 >> 2] = c[K + 4 >> 2];Qh(a, 4388, d) | 0;c[J >> 2] = 13;c[J + 4 >> 2] = 0;c[d >> 2] = c[J >> 2];c[d + 4 >> 2] = c[J + 4 >> 2];Ph(a, 4402, d) | 0;c[I >> 2] = 14;c[I + 4 >> 2] = 0;c[d >> 2] = c[I >> 2];c[d + 4 >> 2] = c[I + 4 >> 2];Ph(a, 4411, d) | 0;c[H >> 2] = 15;c[H + 4 >> 2] = 0;c[d >> 2] = c[H >> 2];c[d + 4 >> 2] = c[H + 4 >> 2];Ph(a, 4421, d) | 0;c[G >> 2] = 16;c[G + 4 >> 2] = 0;c[d >> 2] = c[G >> 2];c[d + 4 >> 2] = c[G + 4 >> 2];Ph(a, 4433, d) | 0;c[F >> 2] = 17;c[F + 4 >> 2] = 0;c[d >> 2] = c[F >> 2];c[d + 4 >> 2] = c[F + 4 >> 2];Ph(a, 4446, d) | 0;c[E >> 2] = 18;c[E + 4 >> 2] = 0;c[d >> 2] = c[E >> 2];c[d + 4 >> 2] = c[E + 4 >> 2];Ph(a, 4458, d) | 0;c[D >> 2] = 3;c[D + 4 >> 2] = 0;c[d >> 2] = c[D >> 2];c[d + 4 >> 2] = c[D + 4 >> 2];Qh(a, 4471, d) | 0;c[C >> 2] = 1;c[C + 4 >> 2] = 0;c[d >> 2] = c[C >> 2];c[d + 4 >> 2] = c[C + 4 >> 2];Rh(a, 4486, d) | 0;c[B >> 2] = 10;c[B + 4 >> 2] = 0;c[d >> 2] = c[B >> 2];c[d + 4 >> 2] = c[B + 4 >> 2];Nh(a, 4496, d) | 0;c[A >> 2] = 11;c[A + 4 >> 2] = 0;c[d >> 2] = c[A >> 2];c[d + 4 >> 2] = c[A + 4 >> 2];Nh(a, 4508, d) | 0;c[z >> 2] = 3;c[z + 4 >> 2] = 0;c[d >> 2] = c[z >> 2];c[d + 4 >> 2] = c[z + 4 >> 2];Oh(a, 4519, d) | 0;c[y >> 2] = 4;c[y + 4 >> 2] = 0;c[d >> 2] = c[y >> 2];c[d + 4 >> 2] = c[y + 4 >> 2];Sh(a, 4530, d) | 0;c[x >> 2] = 19;c[x + 4 >> 2] = 0;c[d >> 2] = c[x >> 2];c[d + 4 >> 2] = c[x + 4 >> 2];Th(a, 4542, d) | 0;c[w >> 2] = 12;c[w + 4 >> 2] = 0;c[d >> 2] = c[w >> 2];c[d + 4 >> 2] = c[w + 4 >> 2];Uh(a, 4554, d) | 0;c[v >> 2] = 13;c[v + 4 >> 2] = 0;c[d >> 2] = c[v >> 2];c[d + 4 >> 2] = c[v + 4 >> 2];Vh(a, 4568, d) | 0;c[u >> 2] = 2;c[u + 4 >> 2] = 0;c[d >> 2] = c[u >> 2];c[d + 4 >> 2] = c[u + 4 >> 2];Wh(a, 4578, d) | 0;c[t >> 2] = 20;c[t + 4 >> 2] = 0;c[d >> 2] = c[t >> 2];c[d + 4 >> 2] = c[t + 4 >> 2];Xh(a, 4587, d) | 0;c[s >> 2] = 22;c[s + 4 >> 2] = 0;c[d >> 2] = c[s >> 2];c[d + 4 >> 2] = c[s + 4 >> 2];Ih(a, 4602, d) | 0;c[r >> 2] = 23;c[r + 4 >> 2] = 0;c[d >> 2] = c[r >> 2];c[d + 4 >> 2] = c[r + 4 >> 2];Ih(a, 4619, d) | 0;c[q >> 2] = 14;c[q + 4 >> 2] = 0;c[d >> 2] = c[q >> 2];c[d + 4 >> 2] = c[q + 4 >> 2];Yh(a, 4629, d) | 0;c[p >> 2] = 1;c[p + 4 >> 2] = 0;c[d >> 2] = c[p >> 2];c[d + 4 >> 2] = c[p + 4 >> 2];Zh(a, 4637, d) | 0;c[o >> 2] = 4;c[o + 4 >> 2] = 0;c[d >> 2] = c[o >> 2];c[d + 4 >> 2] = c[o + 4 >> 2];Qh(a, 4653, d) | 0;c[n >> 2] = 5;c[n + 4 >> 2] = 0;c[d >> 2] = c[n >> 2];c[d + 4 >> 2] = c[n + 4 >> 2];Qh(a, 4669, d) | 0;c[m >> 2] = 6;c[m + 4 >> 2] = 0;c[d >> 2] = c[m >> 2];c[d + 4 >> 2] = c[m + 4 >> 2];Qh(a, 4686, d) | 0;c[k >> 2] = 7;c[k + 4 >> 2] = 0;c[d >> 2] = c[k >> 2];c[d + 4 >> 2] = c[k + 4 >> 2];Qh(a, 4701, d) | 0;c[j >> 2] = 8;c[j + 4 >> 2] = 0;c[d >> 2] = c[j >> 2];c[d + 4 >> 2] = c[j + 4 >> 2];Qh(a, 4719, d) | 0;c[i >> 2] = 9;c[i + 4 >> 2] = 0;c[d >> 2] = c[i >> 2];c[d + 4 >> 2] = c[i + 4 >> 2];Qh(a, 4736, d) | 0;c[h >> 2] = 21;c[h + 4 >> 2] = 0;c[d >> 2] = c[h >> 2];c[d + 4 >> 2] = c[h + 4 >> 2];_h(a, 4754, d) | 0;c[g >> 2] = 2;c[g + 4 >> 2] = 0;c[d >> 2] = c[g >> 2];c[d + 4 >> 2] = c[g + 4 >> 2];Rh(a, 4772, d) | 0;c[f >> 2] = 3;c[f + 4 >> 2] = 0;c[d >> 2] = c[f >> 2];c[d + 4 >> 2] = c[f + 4 >> 2];Rh(a, 4790, d) | 0;c[e >> 2] = 4;c[e + 4 >> 2] = 0;c[d >> 2] = c[e >> 2];c[d + 4 >> 2] = c[e + 4 >> 2];Rh(a, 4808, d) | 0;l = b;return;\n }function Eh(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = dr() | 0;c[a >> 2] = d;er(d, b);Hv(c[a >> 2] | 0);return;\n }function Fh(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Oq(a, ai(b) | 0, c, 0);return a | 0;\n }function Gh(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;tq(a, ai(b) | 0, c, 0);return a | 0;\n }function Hh(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;cq(a, ai(b) | 0, c, 0);return a | 0;\n }function Ih(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Lp(a, b, f);l = e;return a | 0;\n }function Jh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];pp(a, b, f);l = e;return a | 0;\n }function Kh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Yo(a, b, f);l = e;return a | 0;\n }function Lh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Fo(a, b, f);l = e;return a | 0;\n }function Mh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];mo(a, b, f);l = e;return a | 0;\n }function Nh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Un(a, b, f);l = e;return a | 0;\n }function Oh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Bn(a, b, f);l = e;return a | 0;\n }function Ph(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Um(a, b, f);l = e;return a | 0;\n }function Qh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Bm(a, b, f);l = e;return a | 0;\n }function Rh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];im(a, b, f);l = e;return a | 0;\n }function Sh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Rl(a, b, f);l = e;return a | 0;\n }function Th(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];vl(a, b, f);l = e;return a | 0;\n }function Uh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];bl(a, b, f);l = e;return a | 0;\n }function Vh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Kk(a, b, f);l = e;return a | 0;\n }function Wh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];nk(a, b, f);l = e;return a | 0;\n }function Xh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Rj(a, b, f);l = e;return a | 0;\n }function Yh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];xj(a, b, f);l = e;return a | 0;\n }function Zh(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];_i(a, b, f);l = e;return a | 0;\n }function _h(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];$h(a, b, f);l = e;return a | 0;\n }function $h(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];bi(a, d, f, 1);l = e;return;\n }function ai(a) {\n a = a | 0;return a | 0;\n }function bi(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = ci() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = di(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, ei(g, e) | 0, e);l = f;return;\n }function ci() {\n var b = 0,\n d = 0;if (!(a[7616] | 0)) {\n qi(9136);Ha(24, 9136, o | 0) | 0;d = 7616;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9136) | 0)) {\n b = 9136;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));qi(9136);\n }return 9136;\n }function di(a) {\n a = a | 0;return 0;\n }function ei(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = ci() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];ki(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n li(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function fi(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0;h = l;l = l + 32 | 0;o = h + 24 | 0;n = h + 20 | 0;j = h + 16 | 0;m = h + 12 | 0;k = h + 8 | 0;i = h + 4 | 0;p = h;c[n >> 2] = b;c[j >> 2] = d;c[m >> 2] = e;c[k >> 2] = f;c[i >> 2] = g;g = a + 28 | 0;c[p >> 2] = c[g >> 2];c[o >> 2] = c[p >> 2];gi(a + 24 | 0, o, n, m, k, j, i) | 0;c[g >> 2] = c[c[g >> 2] >> 2];l = h;return;\n }function gi(a, b, d, e, f, g, h) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;h = h | 0;a = hi(b) | 0;b = qC(24) | 0;ii(b + 4 | 0, c[d >> 2] | 0, c[e >> 2] | 0, c[f >> 2] | 0, c[g >> 2] | 0, c[h >> 2] | 0);c[b >> 2] = c[a >> 2];c[a >> 2] = b;return b | 0;\n }function hi(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function ii(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;c[a + 8 >> 2] = e;c[a + 12 >> 2] = f;c[a + 16 >> 2] = g;return;\n }function ji(a, b) {\n a = a | 0;b = b | 0;return b | a | 0;\n }function ki(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function li(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = mi(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;ni(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];ki(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;oi(a, i);pi(i);l = k;return;\n }\n }function mi(a) {\n a = a | 0;return 357913941;\n }function ni(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function oi(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function pi(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function qi(a) {\n a = a | 0;ui(a);return;\n }function ri(a) {\n a = a | 0;ti(a + 24 | 0);return;\n }function si(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function ti(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function ui(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 3, b, wi() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function vi() {\n return 9228;\n }function wi() {\n return 1140;\n }function xi(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = zi(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];b = Ai(b, e) | 0;l = d;return b | 0;\n }function yi(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;c[a + 8 >> 2] = e;c[a + 12 >> 2] = f;c[a + 16 >> 2] = g;return;\n }function zi(a) {\n a = a | 0;return (c[(ci() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Ai(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;f = l;l = l + 48 | 0;e = f;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;ob[d & 31](e, a);e = Bi(e) | 0;l = f;return e | 0;\n }function Bi(a) {\n a = a | 0;var b = 0,\n c = 0,\n d = 0,\n e = 0;e = l;l = l + 32 | 0;b = e + 12 | 0;c = e;d = Di(Ci() | 0) | 0;if (!d) a = Ii(a) | 0;else {\n Ei(b, d);Fi(c, b);Gi(a, c);a = Hi(b) | 0;\n }l = e;return a | 0;\n }function Ci() {\n var b = 0;if (!(a[7632] | 0)) {\n Ti(9184);Ha(25, 9184, o | 0) | 0;b = 7632;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 9184;\n }function Di(a) {\n a = a | 0;return c[a + 36 >> 2] | 0;\n }function Ei(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = b;c[a + 4 >> 2] = a;c[a + 8 >> 2] = 0;return;\n }function Fi(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = c[b + 4 >> 2];c[a + 8 >> 2] = 0;return;\n }function Gi(a, b) {\n a = a | 0;b = b | 0;Ni(b, a, a + 8 | 0, a + 16 | 0, a + 24 | 0, a + 32 | 0, a + 40 | 0) | 0;return;\n }function Hi(a) {\n a = a | 0;return c[(c[a + 4 >> 2] | 0) + 8 >> 2] | 0;\n }function Ii(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;j = l;l = l + 16 | 0;d = j + 4 | 0;e = j;f = jy(8) | 0;g = f;h = qC(48) | 0;i = h;b = i + 48 | 0;do {\n c[i >> 2] = c[a >> 2];i = i + 4 | 0;a = a + 4 | 0;\n } while ((i | 0) < (b | 0));b = g + 4 | 0;c[b >> 2] = h;i = qC(8) | 0;h = c[b >> 2] | 0;c[e >> 2] = 0;c[d >> 2] = c[e >> 2];Ji(i, h, d);c[f >> 2] = i;l = j;return g | 0;\n }function Ji(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;d = qC(16) | 0;c[d + 4 >> 2] = 0;c[d + 8 >> 2] = 0;c[d >> 2] = 1092;c[d + 12 >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Ki(a) {\n a = a | 0;kC(a);sC(a);return;\n }function Li(a) {\n a = a | 0;a = c[a + 12 >> 2] | 0;if (a | 0) sC(a);return;\n }function Mi(a) {\n a = a | 0;sC(a);return;\n }function Ni(a, b, d, e, f, g, h) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;h = h | 0;g = Oi(c[a >> 2] | 0, b, d, e, f, g, h) | 0;h = a + 4 | 0;c[(c[h >> 2] | 0) + 8 >> 2] = g;return c[(c[h >> 2] | 0) + 8 >> 2] | 0;\n }function Oi(a, b, c, d, e, f, g) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var i = 0,\n j = 0;i = l;l = l + 16 | 0;j = i;UA(j);a = Sg(a) | 0;g = Pi(a, +h[b >> 3], +h[c >> 3], +h[d >> 3], +h[e >> 3], +h[f >> 3], +h[g >> 3]) | 0;WA(j);l = i;return g | 0;\n }function Pi(a, b, c, d, e, f, g) {\n a = a | 0;b = +b;c = +c;d = +d;e = +e;f = +f;g = +g;var h = 0;h = Vg(Qi() | 0) | 0;b = +Wg(b);c = +Wg(c);d = +Wg(d);e = +Wg(e);f = +Wg(f);return ya(0, h | 0, a | 0, +b, +c, +d, +e, +f, + +Wg(g)) | 0;\n }function Qi() {\n var b = 0;if (!(a[7624] | 0)) {\n Ri(9172);b = 7624;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 9172;\n }function Ri(a) {\n a = a | 0;fh(a, Si() | 0, 6);return;\n }function Si() {\n return 1112;\n }function Ti(a) {\n a = a | 0;Zi(a);return;\n }function Ui(a) {\n a = a | 0;Vi(a + 24 | 0);Wi(a + 16 | 0);return;\n }function Vi(a) {\n a = a | 0;Yi(a);return;\n }function Wi(a) {\n a = a | 0;Xi(a);return;\n }function Xi(a) {\n a = a | 0;var b = 0,\n d = 0;b = c[a >> 2] | 0;if (b | 0) do {\n d = b;b = c[b >> 2] | 0;sC(d);\n } while ((b | 0) != 0);c[a >> 2] = 0;return;\n }function Yi(a) {\n a = a | 0;var b = 0,\n d = 0;b = c[a >> 2] | 0;if (b | 0) do {\n d = b;b = c[b >> 2] | 0;sC(d);\n } while ((b | 0) != 0);c[a >> 2] = 0;return;\n }function Zi(b) {\n b = b | 0;var d = 0;c[b + 16 >> 2] = 0;c[b + 20 >> 2] = 0;d = b + 24 | 0;c[d >> 2] = 0;c[b + 28 >> 2] = d;c[b + 36 >> 2] = 0;a[b + 40 >> 0] = 0;a[b + 41 >> 0] = 0;return;\n }function _i(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];$i(a, d, f, 0);l = e;return;\n }function $i(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = aj() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = bj(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, cj(g, e) | 0, e);l = f;return;\n }function aj() {\n var b = 0,\n d = 0;if (!(a[7640] | 0)) {\n jj(9232);Ha(26, 9232, o | 0) | 0;d = 7640;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9232) | 0)) {\n b = 9232;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));jj(9232);\n }return 9232;\n }function bj(a) {\n a = a | 0;return 0;\n }function cj(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = aj() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];dj(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n ej(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function dj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function ej(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = fj(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;gj(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];dj(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;hj(a, i);ij(i);l = k;return;\n }\n }function fj(a) {\n a = a | 0;return 357913941;\n }function gj(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function hj(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function ij(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function jj(a) {\n a = a | 0;mj(a);return;\n }function kj(a) {\n a = a | 0;lj(a + 24 | 0);return;\n }function lj(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function mj(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 1, b, nj() | 0, 3);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function nj() {\n return 1144;\n }function oj(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = +d;e = +e;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0;g = l;l = l + 16 | 0;h = g + 8 | 0;i = g;j = pj(a) | 0;a = c[j + 4 >> 2] | 0;c[i >> 2] = c[j >> 2];c[i + 4 >> 2] = a;c[h >> 2] = c[i >> 2];c[h + 4 >> 2] = c[i + 4 >> 2];qj(b, h, d, e, f);l = g;return;\n }function pj(a) {\n a = a | 0;return (c[(aj() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function qj(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = +d;e = +e;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0;k = l;l = l + 16 | 0;h = k + 2 | 0;i = k + 1 | 0;j = k;g = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) g = c[(c[a >> 2] | 0) + g >> 2] | 0;rj(h, d);d = +sj(h, d);rj(i, e);e = +sj(i, e);tj(j, f);j = uj(j, f) | 0;qb[g & 1](a, d, e, j);l = k;return;\n }function rj(a, b) {\n a = a | 0;b = +b;return;\n }function sj(a, b) {\n a = a | 0;b = +b;return + +wj(b);\n }function tj(a, b) {\n a = a | 0;b = b | 0;return;\n }function uj(a, b) {\n a = a | 0;b = b | 0;return vj(b) | 0;\n }function vj(a) {\n a = a | 0;return a | 0;\n }function wj(a) {\n a = +a;return +a;\n }function xj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];yj(a, d, f, 1);l = e;return;\n }function yj(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = zj() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Aj(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Bj(g, e) | 0, e);l = f;return;\n }function zj() {\n var b = 0,\n d = 0;if (!(a[7648] | 0)) {\n Ij(9268);Ha(27, 9268, o | 0) | 0;d = 7648;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9268) | 0)) {\n b = 9268;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Ij(9268);\n }return 9268;\n }function Aj(a) {\n a = a | 0;return 0;\n }function Bj(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = zj() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Cj(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Dj(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Cj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Dj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Ej(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Fj(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Cj(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Gj(a, i);Hj(i);l = k;return;\n }\n }function Ej(a) {\n a = a | 0;return 357913941;\n }function Fj(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Gj(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Hj(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Ij(a) {\n a = a | 0;Lj(a);return;\n }function Jj(a) {\n a = a | 0;Kj(a + 24 | 0);return;\n }function Kj(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Lj(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 4, b, Mj() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Mj() {\n return 1160;\n }function Nj(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = Oj(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];b = Pj(b, e) | 0;l = d;return b | 0;\n }function Oj(a) {\n a = a | 0;return (c[(zj() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Pj(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;return Qj(pb[d & 31](a) | 0) | 0;\n }function Qj(a) {\n a = a | 0;return a & 1 | 0;\n }function Rj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Sj(a, d, f, 0);l = e;return;\n }function Sj(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Tj() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Uj(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Vj(g, e) | 0, e);l = f;return;\n }function Tj() {\n var b = 0,\n d = 0;if (!(a[7656] | 0)) {\n ak(9304);Ha(28, 9304, o | 0) | 0;d = 7656;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9304) | 0)) {\n b = 9304;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));ak(9304);\n }return 9304;\n }function Uj(a) {\n a = a | 0;return 0;\n }function Vj(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Tj() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Wj(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Xj(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Wj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Xj(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Yj(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Zj(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Wj(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;_j(a, i);$j(i);l = k;return;\n }\n }function Yj(a) {\n a = a | 0;return 357913941;\n }function Zj(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function _j(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function $j(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function ak(a) {\n a = a | 0;dk(a);return;\n }function bk(a) {\n a = a | 0;ck(a + 24 | 0);return;\n }function ck(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function dk(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 5, b, ek() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function ek() {\n return 1164;\n }function fk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = gk(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];hk(b, f, d);l = e;return;\n }function gk(a) {\n a = a | 0;return (c[(Tj() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function hk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;ik(f, d);d = jk(f, d) | 0;ob[e & 31](a, d);kk(f);l = g;return;\n }function ik(a, b) {\n a = a | 0;b = b | 0;lk(a, b);return;\n }function jk(a, b) {\n a = a | 0;b = b | 0;return a | 0;\n }function kk(a) {\n a = a | 0;vf(a);return;\n }function lk(a, b) {\n a = a | 0;b = b | 0;mk(a, b);return;\n }function mk(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = b;return;\n }function nk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];ok(a, d, f, 0);l = e;return;\n }function ok(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = pk() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = qk(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, rk(g, e) | 0, e);l = f;return;\n }function pk() {\n var b = 0,\n d = 0;if (!(a[7664] | 0)) {\n yk(9340);Ha(29, 9340, o | 0) | 0;d = 7664;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9340) | 0)) {\n b = 9340;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));yk(9340);\n }return 9340;\n }function qk(a) {\n a = a | 0;return 0;\n }function rk(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = pk() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];sk(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n tk(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function sk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function tk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = uk(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;vk(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];sk(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;wk(a, i);xk(i);l = k;return;\n }\n }function uk(a) {\n a = a | 0;return 357913941;\n }function vk(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function wk(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function xk(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function yk(a) {\n a = a | 0;Bk(a);return;\n }function zk(a) {\n a = a | 0;Ak(a + 24 | 0);return;\n }function Ak(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Bk(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 4, b, Ck() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Ck() {\n return 1180;\n }function Dk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Ek(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];d = Fk(b, f, d) | 0;l = e;return d | 0;\n }function Ek(a) {\n a = a | 0;return (c[(pk() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Fk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;Gk(f, d);f = Hk(f, d) | 0;f = Ik(wb[e & 15](a, f) | 0) | 0;l = g;return f | 0;\n }function Gk(a, b) {\n a = a | 0;b = b | 0;return;\n }function Hk(a, b) {\n a = a | 0;b = b | 0;return Jk(b) | 0;\n }function Ik(a) {\n a = a | 0;return a | 0;\n }function Jk(a) {\n a = a | 0;return a | 0;\n }function Kk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Lk(a, d, f, 0);l = e;return;\n }function Lk(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Mk() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Nk(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Ok(g, e) | 0, e);l = f;return;\n }function Mk() {\n var b = 0,\n d = 0;if (!(a[7672] | 0)) {\n Vk(9376);Ha(30, 9376, o | 0) | 0;d = 7672;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9376) | 0)) {\n b = 9376;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Vk(9376);\n }return 9376;\n }function Nk(a) {\n a = a | 0;return 0;\n }function Ok(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Mk() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Pk(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Qk(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Pk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Qk(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Rk(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Sk(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Pk(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Tk(a, i);Uk(i);l = k;return;\n }\n }function Rk(a) {\n a = a | 0;return 357913941;\n }function Sk(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Tk(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Uk(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Vk(a) {\n a = a | 0;Yk(a);return;\n }function Wk(a) {\n a = a | 0;Xk(a + 24 | 0);return;\n }function Xk(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Yk(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 5, b, Zk() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Zk() {\n return 1196;\n }function _k(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = $k(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];b = al(b, e) | 0;l = d;return b | 0;\n }function $k(a) {\n a = a | 0;return (c[(Mk() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function al(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;return Ik(pb[d & 31](a) | 0) | 0;\n }function bl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];cl(a, d, f, 1);l = e;return;\n }function cl(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = dl() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = el(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, fl(g, e) | 0, e);l = f;return;\n }function dl() {\n var b = 0,\n d = 0;if (!(a[7680] | 0)) {\n ml(9412);Ha(31, 9412, o | 0) | 0;d = 7680;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9412) | 0)) {\n b = 9412;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));ml(9412);\n }return 9412;\n }function el(a) {\n a = a | 0;return 0;\n }function fl(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = dl() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];gl(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n hl(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function gl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function hl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = il(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;jl(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];gl(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;kl(a, i);ll(i);l = k;return;\n }\n }function il(a) {\n a = a | 0;return 357913941;\n }function jl(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function kl(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function ll(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function ml(a) {\n a = a | 0;pl(a);return;\n }function nl(a) {\n a = a | 0;ol(a + 24 | 0);return;\n }function ol(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function pl(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 6, b, ql() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function ql() {\n return 1200;\n }function rl(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = sl(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];b = tl(b, e) | 0;l = d;return b | 0;\n }function sl(a) {\n a = a | 0;return (c[(dl() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function tl(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;return ul(pb[d & 31](a) | 0) | 0;\n }function ul(a) {\n a = a | 0;return a | 0;\n }function vl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];wl(a, d, f, 0);l = e;return;\n }function wl(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = xl() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = yl(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, zl(g, e) | 0, e);l = f;return;\n }function xl() {\n var b = 0,\n d = 0;if (!(a[7688] | 0)) {\n Gl(9448);Ha(32, 9448, o | 0) | 0;d = 7688;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9448) | 0)) {\n b = 9448;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Gl(9448);\n }return 9448;\n }function yl(a) {\n a = a | 0;return 0;\n }function zl(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = xl() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Al(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Bl(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Al(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Bl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Cl(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Dl(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Al(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;El(a, i);Fl(i);l = k;return;\n }\n }function Cl(a) {\n a = a | 0;return 357913941;\n }function Dl(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function El(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Fl(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Gl(a) {\n a = a | 0;Jl(a);return;\n }function Hl(a) {\n a = a | 0;Il(a + 24 | 0);return;\n }function Il(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Jl(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 6, b, Kl() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Kl() {\n return 1204;\n }function Ll(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Ml(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Nl(b, f, d);l = e;return;\n }function Ml(a) {\n a = a | 0;return (c[(xl() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Nl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;Ol(f, d);f = Pl(f, d) | 0;ob[e & 31](a, f);l = g;return;\n }function Ol(a, b) {\n a = a | 0;b = b | 0;return;\n }function Pl(a, b) {\n a = a | 0;b = b | 0;return Ql(b) | 0;\n }function Ql(a) {\n a = a | 0;return a | 0;\n }function Rl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Sl(a, d, f, 0);l = e;return;\n }function Sl(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Tl() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Ul(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Vl(g, e) | 0, e);l = f;return;\n }function Tl() {\n var b = 0,\n d = 0;if (!(a[7696] | 0)) {\n am(9484);Ha(33, 9484, o | 0) | 0;d = 7696;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9484) | 0)) {\n b = 9484;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));am(9484);\n }return 9484;\n }function Ul(a) {\n a = a | 0;return 0;\n }function Vl(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Tl() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Wl(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Xl(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Wl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Xl(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Yl(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Zl(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Wl(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;_l(a, i);$l(i);l = k;return;\n }\n }function Yl(a) {\n a = a | 0;return 357913941;\n }function Zl(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function _l(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function $l(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function am(a) {\n a = a | 0;dm(a);return;\n }function bm(a) {\n a = a | 0;cm(a + 24 | 0);return;\n }function cm(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function dm(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 1, b, em() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function em() {\n return 1212;\n }function fm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;f = l;l = l + 16 | 0;g = f + 8 | 0;h = f;i = gm(a) | 0;a = c[i + 4 >> 2] | 0;c[h >> 2] = c[i >> 2];c[h + 4 >> 2] = a;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = c[h + 4 >> 2];hm(b, g, d, e);l = f;return;\n }function gm(a) {\n a = a | 0;return (c[(Tl() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function hm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;i = l;l = l + 16 | 0;g = i + 1 | 0;h = i;f = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) f = c[(c[a >> 2] | 0) + f >> 2] | 0;Ol(g, d);g = Pl(g, d) | 0;Gk(h, e);h = Hk(h, e) | 0;Eb[f & 15](a, g, h);l = i;return;\n }function im(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];jm(a, d, f, 1);l = e;return;\n }function jm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = km() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = lm(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, mm(g, e) | 0, e);l = f;return;\n }function km() {\n var b = 0,\n d = 0;if (!(a[7704] | 0)) {\n tm(9520);Ha(34, 9520, o | 0) | 0;d = 7704;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9520) | 0)) {\n b = 9520;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));tm(9520);\n }return 9520;\n }function lm(a) {\n a = a | 0;return 0;\n }function mm(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = km() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];nm(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n om(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function nm(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function om(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = pm(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;qm(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];nm(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;rm(a, i);sm(i);l = k;return;\n }\n }function pm(a) {\n a = a | 0;return 357913941;\n }function qm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function rm(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function sm(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function tm(a) {\n a = a | 0;wm(a);return;\n }function um(a) {\n a = a | 0;vm(a + 24 | 0);return;\n }function vm(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function wm(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 1, b, xm() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function xm() {\n return 1224;\n }function ym(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0.0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;f = l;l = l + 16 | 0;g = f + 8 | 0;h = f;i = zm(a) | 0;a = c[i + 4 >> 2] | 0;c[h >> 2] = c[i >> 2];c[h + 4 >> 2] = a;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = c[h + 4 >> 2];e = +Am(b, g, d);l = f;return +e;\n }function zm(a) {\n a = a | 0;return (c[(km() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Am(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0.0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;tj(f, d);f = uj(f, d) | 0;h = +ch(+zb[e & 7](a, f));l = g;return +h;\n }function Bm(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Cm(a, d, f, 1);l = e;return;\n }function Cm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Dm() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Em(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Fm(g, e) | 0, e);l = f;return;\n }function Dm() {\n var b = 0,\n d = 0;if (!(a[7712] | 0)) {\n Mm(9556);Ha(35, 9556, o | 0) | 0;d = 7712;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9556) | 0)) {\n b = 9556;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Mm(9556);\n }return 9556;\n }function Em(a) {\n a = a | 0;return 0;\n }function Fm(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Dm() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Gm(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Hm(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Gm(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Hm(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Im(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Jm(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Gm(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Km(a, i);Lm(i);l = k;return;\n }\n }function Im(a) {\n a = a | 0;return 357913941;\n }function Jm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Km(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Lm(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Mm(a) {\n a = a | 0;Pm(a);return;\n }function Nm(a) {\n a = a | 0;Om(a + 24 | 0);return;\n }function Om(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Pm(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 5, b, Qm() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Qm() {\n return 1232;\n }function Rm(a, b) {\n a = a | 0;b = b | 0;var d = 0.0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Sm(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];d = +Tm(b, f);l = e;return +d;\n }function Sm(a) {\n a = a | 0;return (c[(Dm() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Tm(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;return + +ch(+ub[d & 15](a));\n }function Um(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Vm(a, d, f, 1);l = e;return;\n }function Vm(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Wm() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Xm(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Ym(g, e) | 0, e);l = f;return;\n }function Wm() {\n var b = 0,\n d = 0;if (!(a[7720] | 0)) {\n dn(9592);Ha(36, 9592, o | 0) | 0;d = 7720;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9592) | 0)) {\n b = 9592;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));dn(9592);\n }return 9592;\n }function Xm(a) {\n a = a | 0;return 0;\n }function Ym(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Wm() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Zm(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n _m(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Zm(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function _m(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = $m(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;an(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Zm(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;bn(a, i);cn(i);l = k;return;\n }\n }function $m(a) {\n a = a | 0;return 357913941;\n }function an(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function bn(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function cn(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function dn(a) {\n a = a | 0;gn(a);return;\n }function en(a) {\n a = a | 0;fn(a + 24 | 0);return;\n }function fn(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function gn(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 7, b, hn() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function hn() {\n return 1276;\n }function jn(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = kn(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];b = ln(b, e) | 0;l = d;return b | 0;\n }function kn(a) {\n a = a | 0;return (c[(Wm() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function ln(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;f = l;l = l + 16 | 0;e = f;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;ob[d & 31](e, a);e = mn(e) | 0;l = f;return e | 0;\n }function mn(a) {\n a = a | 0;var b = 0,\n c = 0,\n d = 0,\n e = 0;e = l;l = l + 32 | 0;b = e + 12 | 0;c = e;d = Di(nn() | 0) | 0;if (!d) a = pn(a) | 0;else {\n Ei(b, d);Fi(c, b);on(a, c);a = Hi(b) | 0;\n }l = e;return a | 0;\n }function nn() {\n var b = 0;if (!(a[7736] | 0)) {\n An(9640);Ha(25, 9640, o | 0) | 0;b = 7736;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 9640;\n }function on(a, b) {\n a = a | 0;b = b | 0;un(b, a, a + 8 | 0) | 0;return;\n }\n function pn(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;d = l;l = l + 16 | 0;f = d + 4 | 0;h = d;e = jy(8) | 0;b = e;i = qC(16) | 0;c[i >> 2] = c[a >> 2];c[i + 4 >> 2] = c[a + 4 >> 2];c[i + 8 >> 2] = c[a + 8 >> 2];c[i + 12 >> 2] = c[a + 12 >> 2];g = b + 4 | 0;c[g >> 2] = i;a = qC(8) | 0;g = c[g >> 2] | 0;c[h >> 2] = 0;c[f >> 2] = c[h >> 2];qn(a, g, f);c[e >> 2] = a;l = d;return b | 0;\n }function qn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;d = qC(16) | 0;c[d + 4 >> 2] = 0;c[d + 8 >> 2] = 0;c[d >> 2] = 1244;c[d + 12 >> 2] = b;c[a + 4 >> 2] = d;return;\n }function rn(a) {\n a = a | 0;kC(a);sC(a);return;\n }function sn(a) {\n a = a | 0;a = c[a + 12 >> 2] | 0;if (a | 0) sC(a);return;\n }function tn(a) {\n a = a | 0;sC(a);return;\n }function un(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;b = vn(c[a >> 2] | 0, b, d) | 0;d = a + 4 | 0;c[(c[d >> 2] | 0) + 8 >> 2] = b;return c[(c[d >> 2] | 0) + 8 >> 2] | 0;\n }function vn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0;e = l;l = l + 16 | 0;f = e;UA(f);a = Sg(a) | 0;d = wn(a, c[b >> 2] | 0, +h[d >> 3]) | 0;WA(f);l = e;return d | 0;\n }function wn(a, b, c) {\n a = a | 0;b = b | 0;c = +c;var d = 0;d = Vg(xn() | 0) | 0;b = Xg(b) | 0;return za(0, d | 0, a | 0, b | 0, + +Wg(c)) | 0;\n }function xn() {\n var b = 0;if (!(a[7728] | 0)) {\n yn(9628);b = 7728;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 9628;\n }function yn(a) {\n a = a | 0;fh(a, zn() | 0, 2);return;\n }function zn() {\n return 1264;\n }function An(a) {\n a = a | 0;Zi(a);return;\n }function Bn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Cn(a, d, f, 1);l = e;return;\n }function Cn(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Dn() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = En(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Fn(g, e) | 0, e);l = f;return;\n }function Dn() {\n var b = 0,\n d = 0;if (!(a[7744] | 0)) {\n Mn(9684);Ha(37, 9684, o | 0) | 0;d = 7744;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9684) | 0)) {\n b = 9684;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Mn(9684);\n }return 9684;\n }function En(a) {\n a = a | 0;return 0;\n }function Fn(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Dn() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Gn(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Hn(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Gn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Hn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = In(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Jn(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Gn(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Kn(a, i);Ln(i);l = k;return;\n }\n }function In(a) {\n a = a | 0;return 357913941;\n }function Jn(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Kn(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Ln(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Mn(a) {\n a = a | 0;Pn(a);return;\n }function Nn(a) {\n a = a | 0;On(a + 24 | 0);return;\n }function On(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Pn(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 5, b, Qn() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Qn() {\n return 1280;\n }function Rn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Sn(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];d = Tn(b, f, d) | 0;l = e;return d | 0;\n }function Sn(a) {\n a = a | 0;return (c[(Dn() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Tn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;h = l;l = l + 32 | 0;f = h;g = h + 16 | 0;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;tj(g, d);g = uj(g, d) | 0;Eb[e & 15](f, a, g);g = mn(f) | 0;l = h;return g | 0;\n }function Un(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Vn(a, d, f, 1);l = e;return;\n }function Vn(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Wn() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Xn(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Yn(g, e) | 0, e);l = f;return;\n }function Wn() {\n var b = 0,\n d = 0;if (!(a[7752] | 0)) {\n eo(9720);Ha(38, 9720, o | 0) | 0;d = 7752;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9720) | 0)) {\n b = 9720;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));eo(9720);\n }return 9720;\n }function Xn(a) {\n a = a | 0;return 0;\n }function Yn(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Wn() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Zn(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n _n(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Zn(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function _n(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = $n(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;ao(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Zn(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;bo(a, i);co(i);l = k;return;\n }\n }function $n(a) {\n a = a | 0;return 357913941;\n }function ao(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function bo(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function co(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function eo(a) {\n a = a | 0;ho(a);return;\n }function fo(a) {\n a = a | 0;go(a + 24 | 0);return;\n }function go(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function ho(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 8, b, io() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function io() {\n return 1288;\n }function jo(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = ko(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];b = lo(b, e) | 0;l = d;return b | 0;\n }function ko(a) {\n a = a | 0;return (c[(Wn() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function lo(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;return bh(pb[d & 31](a) | 0) | 0;\n }function mo(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];no(a, d, f, 0);l = e;return;\n }function no(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = oo() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = po(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, qo(g, e) | 0, e);l = f;return;\n }function oo() {\n var b = 0,\n d = 0;if (!(a[7760] | 0)) {\n xo(9756);Ha(39, 9756, o | 0) | 0;d = 7760;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9756) | 0)) {\n b = 9756;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));xo(9756);\n }return 9756;\n }function po(a) {\n a = a | 0;return 0;\n }function qo(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = oo() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];ro(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n so(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function ro(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function so(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = to(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;uo(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];ro(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;vo(a, i);wo(i);l = k;return;\n }\n }function to(a) {\n a = a | 0;return 357913941;\n }function uo(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function vo(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function wo(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function xo(a) {\n a = a | 0;Ao(a);return;\n }function yo(a) {\n a = a | 0;zo(a + 24 | 0);return;\n }function zo(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Ao(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 8, b, Bo() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Bo() {\n return 1292;\n }function Co(a, b, d) {\n a = a | 0;b = b | 0;d = +d;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Do(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Eo(b, f, d);l = e;return;\n }function Do(a) {\n a = a | 0;return (c[(oo() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Eo(a, b, d) {\n a = a | 0;b = b | 0;d = +d;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;rj(f, d);d = +sj(f, d);lb[e & 31](a, d);l = g;return;\n }function Fo(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Go(a, d, f, 0);l = e;return;\n }function Go(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Ho() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Io(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Jo(g, e) | 0, e);l = f;return;\n }function Ho() {\n var b = 0,\n d = 0;if (!(a[7768] | 0)) {\n Qo(9792);Ha(40, 9792, o | 0) | 0;d = 7768;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9792) | 0)) {\n b = 9792;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Qo(9792);\n }return 9792;\n }function Io(a) {\n a = a | 0;return 0;\n }function Jo(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Ho() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Ko(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Lo(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Ko(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Lo(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Mo(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;No(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Ko(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Oo(a, i);Po(i);l = k;return;\n }\n }function Mo(a) {\n a = a | 0;return 357913941;\n }function No(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Oo(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Po(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Qo(a) {\n a = a | 0;To(a);return;\n }function Ro(a) {\n a = a | 0;So(a + 24 | 0);return;\n }function So(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function To(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 1, b, Uo() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Uo() {\n return 1300;\n }function Vo(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = +e;var f = 0,\n g = 0,\n h = 0,\n i = 0;f = l;l = l + 16 | 0;g = f + 8 | 0;h = f;i = Wo(a) | 0;a = c[i + 4 >> 2] | 0;c[h >> 2] = c[i >> 2];c[h + 4 >> 2] = a;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = c[h + 4 >> 2];Xo(b, g, d, e);l = f;return;\n }function Wo(a) {\n a = a | 0;return (c[(Ho() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Xo(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = +e;var f = 0,\n g = 0,\n h = 0,\n i = 0;i = l;l = l + 16 | 0;g = i + 1 | 0;h = i;f = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) f = c[(c[a >> 2] | 0) + f >> 2] | 0;tj(g, d);g = uj(g, d) | 0;rj(h, e);e = +sj(h, e);Gb[f & 15](a, g, e);l = i;return;\n }function Yo(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Zo(a, d, f, 0);l = e;return;\n }function Zo(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = _o() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = $o(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, ap(g, e) | 0, e);l = f;return;\n }function _o() {\n var b = 0,\n d = 0;if (!(a[7776] | 0)) {\n hp(9828);Ha(41, 9828, o | 0) | 0;d = 7776;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9828) | 0)) {\n b = 9828;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));hp(9828);\n }return 9828;\n }function $o(a) {\n a = a | 0;return 0;\n }function ap(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = _o() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];bp(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n cp(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function bp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function cp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = dp(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;ep(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];bp(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;fp(a, i);gp(i);l = k;return;\n }\n }function dp(a) {\n a = a | 0;return 357913941;\n }function ep(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function fp(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function gp(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function hp(a) {\n a = a | 0;kp(a);return;\n }function ip(a) {\n a = a | 0;jp(a + 24 | 0);return;\n }function jp(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function kp(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 7, b, lp() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function lp() {\n return 1312;\n }function mp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = np(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];op(b, f, d);l = e;return;\n }function np(a) {\n a = a | 0;return (c[(_o() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function op(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;tj(f, d);f = uj(f, d) | 0;ob[e & 31](a, f);l = g;return;\n }function pp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];qp(a, d, f, 0);l = e;return;\n }function qp(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = rp() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = sp(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, tp(g, e) | 0, e);l = f;return;\n }function rp() {\n var b = 0,\n d = 0;if (!(a[7784] | 0)) {\n Ap(9864);Ha(42, 9864, o | 0) | 0;d = 7784;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9864) | 0)) {\n b = 9864;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Ap(9864);\n }return 9864;\n }function sp(a) {\n a = a | 0;return 0;\n }function tp(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = rp() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];up(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n vp(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function up(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function vp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = wp(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;xp(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];up(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;yp(a, i);zp(i);l = k;return;\n }\n }function wp(a) {\n a = a | 0;return 357913941;\n }function xp(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function yp(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function zp(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Ap(a) {\n a = a | 0;Dp(a);return;\n }function Bp(a) {\n a = a | 0;Cp(a + 24 | 0);return;\n }function Cp(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Dp(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 8, b, Ep() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Ep() {\n return 1320;\n }function Fp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Gp(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Hp(b, f, d);l = e;return;\n }function Gp(a) {\n a = a | 0;return (c[(rp() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Hp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;Ip(f, d);f = Jp(f, d) | 0;ob[e & 31](a, f);l = g;return;\n }function Ip(a, b) {\n a = a | 0;b = b | 0;return;\n }function Jp(a, b) {\n a = a | 0;b = b | 0;return Kp(b) | 0;\n }function Kp(a) {\n a = a | 0;return a | 0;\n }function Lp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Mp(a, d, f, 0);l = e;return;\n }function Mp(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Np() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Op(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Pp(g, e) | 0, e);l = f;return;\n }function Np() {\n var b = 0,\n d = 0;if (!(a[7792] | 0)) {\n Wp(9900);Ha(43, 9900, o | 0) | 0;d = 7792;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9900) | 0)) {\n b = 9900;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Wp(9900);\n }return 9900;\n }function Op(a) {\n a = a | 0;return 0;\n }function Pp(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Np() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Qp(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Rp(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Qp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Rp(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Sp(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Tp(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Qp(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Up(a, i);Vp(i);l = k;return;\n }\n }function Sp(a) {\n a = a | 0;return 357913941;\n }function Tp(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Up(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Vp(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Wp(a) {\n a = a | 0;Zp(a);return;\n }function Xp(a) {\n a = a | 0;Yp(a + 24 | 0);return;\n }function Yp(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Zp(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 22, b, _p() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function _p() {\n return 1344;\n }function $p(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0;d = l;l = l + 16 | 0;e = d + 8 | 0;f = d;g = aq(a) | 0;a = c[g + 4 >> 2] | 0;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = a;c[e >> 2] = c[f >> 2];c[e + 4 >> 2] = c[f + 4 >> 2];bq(b, e);l = d;return;\n }function aq(a) {\n a = a | 0;return (c[(Np() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function bq(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) d = c[(c[a >> 2] | 0) + d >> 2] | 0;nb[d & 127](a);return;\n }function cq(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = dq() | 0;a = eq(d) | 0;fi(g, b, f, a, fq(d, e) | 0, e);return;\n }function dq() {\n var b = 0,\n d = 0;if (!(a[7800] | 0)) {\n mq(9936);Ha(44, 9936, o | 0) | 0;d = 7800;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9936) | 0)) {\n b = 9936;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));mq(9936);\n }return 9936;\n }function eq(a) {\n a = a | 0;return a | 0;\n }function fq(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = dq() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n gq(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n hq(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function gq(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function hq(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = iq(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;jq(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;gq(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;kq(a, f);lq(f);l = i;return;\n }\n }function iq(a) {\n a = a | 0;return 536870911;\n }function jq(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function kq(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function lq(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function mq(a) {\n a = a | 0;pq(a);return;\n }function nq(a) {\n a = a | 0;oq(a + 24 | 0);return;\n }function oq(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function pq(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 23, b, Kl() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function qq(a, b) {\n a = a | 0;b = b | 0;sq(c[(rq(a) | 0) >> 2] | 0, b);return;\n }function rq(a) {\n a = a | 0;return (c[(dq() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function sq(a, b) {\n a = a | 0;b = b | 0;var c = 0,\n d = 0;c = l;l = l + 16 | 0;d = c;Ol(d, b);b = Pl(d, b) | 0;nb[a & 127](b);l = c;return;\n }function tq(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = uq() | 0;a = vq(d) | 0;fi(g, b, f, a, wq(d, e) | 0, e);return;\n }function uq() {\n var b = 0,\n d = 0;if (!(a[7808] | 0)) {\n Dq(9972);Ha(45, 9972, o | 0) | 0;d = 7808;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(9972) | 0)) {\n b = 9972;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Dq(9972);\n }return 9972;\n }function vq(a) {\n a = a | 0;return a | 0;\n }function wq(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = uq() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n xq(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n yq(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function xq(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function yq(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = zq(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;Aq(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;xq(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;Bq(a, f);Cq(f);l = i;return;\n }\n }function zq(a) {\n a = a | 0;return 536870911;\n }function Aq(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function Bq(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Cq(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Dq(a) {\n a = a | 0;Gq(a);return;\n }function Eq(a) {\n a = a | 0;Fq(a + 24 | 0);return;\n }function Fq(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Gq(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 9, b, Hq() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Hq() {\n return 1348;\n }function Iq(a, b) {\n a = a | 0;b = b | 0;return Kq(c[(Jq(a) | 0) >> 2] | 0, b) | 0;\n }function Jq(a) {\n a = a | 0;return (c[(uq() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function Kq(a, b) {\n a = a | 0;b = b | 0;var c = 0,\n d = 0;c = l;l = l + 16 | 0;d = c;Lq(d, b);b = Mq(d, b) | 0;b = Ik(pb[a & 31](b) | 0) | 0;l = c;return b | 0;\n }function Lq(a, b) {\n a = a | 0;b = b | 0;return;\n }function Mq(a, b) {\n a = a | 0;b = b | 0;return Nq(b) | 0;\n }function Nq(a) {\n a = a | 0;return a | 0;\n }function Oq(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Pq() | 0;a = Qq(d) | 0;fi(g, b, f, a, Rq(d, e) | 0, e);return;\n }function Pq() {\n var b = 0,\n d = 0;if (!(a[7816] | 0)) {\n Yq(10008);Ha(46, 10008, o | 0) | 0;d = 7816;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10008) | 0)) {\n b = 10008;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Yq(10008);\n }return 10008;\n }function Qq(a) {\n a = a | 0;return a | 0;\n }function Rq(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Pq() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n Sq(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n Tq(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function Sq(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Tq(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = Uq(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;Vq(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;Sq(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;Wq(a, f);Xq(f);l = i;return;\n }\n }function Uq(a) {\n a = a | 0;return 536870911;\n }function Vq(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function Wq(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Xq(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Yq(a) {\n a = a | 0;$q(a);return;\n }function Zq(a) {\n a = a | 0;_q(a + 24 | 0);return;\n }function _q(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function $q(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 15, b, Zk() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function ar(a) {\n a = a | 0;return cr(c[(br(a) | 0) >> 2] | 0) | 0;\n }function br(a) {\n a = a | 0;return (c[(Pq() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function cr(a) {\n a = a | 0;return Ik(Ab[a & 7]() | 0) | 0;\n }function dr() {\n var b = 0;if (!(a[7832] | 0)) {\n nr(10052);Ha(25, 10052, o | 0) | 0;b = 7832;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10052;\n }function er(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = fr() | 0;c[a + 4 >> 2] = gr() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = hr() | 0;c[a + 32 >> 2] = 2;return;\n }function fr() {\n return 11709;\n }function gr() {\n return 1188;\n }function hr() {\n return lr() | 0;\n }function ir(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n kr(c);sC(c);\n }\n } else if (b | 0) {\n uf(b);sC(b);\n }return;\n }function jr(a, b) {\n a = a | 0;b = b | 0;return b & a | 0;\n }function kr(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function lr() {\n var b = 0;if (!(a[7824] | 0)) {\n c[2511] = mr() | 0;c[2512] = 0;b = 7824;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10044;\n }function mr() {\n return 0;\n }function nr(a) {\n a = a | 0;Zi(a);return;\n }function or(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0;b = l;l = l + 32 | 0;d = b + 24 | 0;g = b + 16 | 0;f = b + 8 | 0;e = b;pr(a, 4827);qr(a, 4834, 3) | 0;rr(a, 3682, 47) | 0;c[g >> 2] = 9;c[g + 4 >> 2] = 0;c[d >> 2] = c[g >> 2];c[d + 4 >> 2] = c[g + 4 >> 2];sr(a, 4841, d) | 0;c[f >> 2] = 1;c[f + 4 >> 2] = 0;c[d >> 2] = c[f >> 2];c[d + 4 >> 2] = c[f + 4 >> 2];tr(a, 4871, d) | 0;c[e >> 2] = 10;c[e + 4 >> 2] = 0;c[d >> 2] = c[e >> 2];c[d + 4 >> 2] = c[e + 4 >> 2];ur(a, 4891, d) | 0;l = b;return;\n }function pr(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = nt() | 0;c[a >> 2] = d;ot(d, b);Hv(c[a >> 2] | 0);return;\n }function qr(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Ws(a, ai(b) | 0, c, 0);return a | 0;\n }function rr(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Es(a, ai(b) | 0, c, 0);return a | 0;\n }function sr(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];is(a, b, f);l = e;return a | 0;\n }function tr(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Or(a, b, f);l = e;return a | 0;\n }function ur(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = c[d + 4 >> 2] | 0;c[g >> 2] = c[d >> 2];c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];vr(a, b, f);l = e;return a | 0;\n }function vr(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];wr(a, d, f, 1);l = e;return;\n }function wr(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = xr() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = yr(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, zr(g, e) | 0, e);l = f;return;\n }function xr() {\n var b = 0,\n d = 0;if (!(a[7840] | 0)) {\n Gr(10100);Ha(48, 10100, o | 0) | 0;d = 7840;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10100) | 0)) {\n b = 10100;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Gr(10100);\n }return 10100;\n }function yr(a) {\n a = a | 0;return 0;\n }function zr(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = xr() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Ar(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Br(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Ar(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Br(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Cr(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Dr(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Ar(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Er(a, i);Fr(i);l = k;return;\n }\n }function Cr(a) {\n a = a | 0;return 357913941;\n }function Dr(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Er(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Fr(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Gr(a) {\n a = a | 0;Jr(a);return;\n }function Hr(a) {\n a = a | 0;Ir(a + 24 | 0);return;\n }function Ir(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function Jr(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 6, b, Kr() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Kr() {\n return 1364;\n }function Lr(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = Mr(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];d = Nr(b, f, d) | 0;l = e;return d | 0;\n }function Mr(a) {\n a = a | 0;return (c[(xr() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function Nr(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;tj(f, d);f = uj(f, d) | 0;f = Qj(wb[e & 15](a, f) | 0) | 0;l = g;return f | 0;\n }function Or(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];Pr(a, d, f, 0);l = e;return;\n }function Pr(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = Qr() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = Rr(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, Sr(g, e) | 0, e);l = f;return;\n }function Qr() {\n var b = 0,\n d = 0;if (!(a[7848] | 0)) {\n Zr(10136);Ha(49, 10136, o | 0) | 0;d = 7848;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10136) | 0)) {\n b = 10136;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Zr(10136);\n }return 10136;\n }function Rr(a) {\n a = a | 0;return 0;\n }function Sr(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = Qr() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];Tr(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n Ur(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function Tr(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function Ur(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = Vr(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;Wr(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];Tr(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;Xr(a, i);Yr(i);l = k;return;\n }\n }function Vr(a) {\n a = a | 0;return 357913941;\n }function Wr(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function Xr(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Yr(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Zr(a) {\n a = a | 0;as(a);return;\n }function _r(a) {\n a = a | 0;$r(a + 24 | 0);return;\n }function $r(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function as(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 9, b, bs() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function bs() {\n return 1372;\n }function cs(a, b, d) {\n a = a | 0;b = b | 0;d = +d;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;h = ds(a) | 0;a = c[h + 4 >> 2] | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = a;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];es(b, f, d);l = e;return;\n }function ds(a) {\n a = a | 0;return (c[(Qr() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function es(a, b, d) {\n a = a | 0;b = b | 0;d = +d;var e = 0,\n f = 0,\n g = 0,\n h = ib;g = l;l = l + 16 | 0;f = g;e = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) e = c[(c[a >> 2] | 0) + e >> 2] | 0;fs(f, d);h = T(gs(f, d));kb[e & 1](a, h);l = g;return;\n }function fs(a, b) {\n a = a | 0;b = +b;return;\n }function gs(a, b) {\n a = a | 0;b = +b;return T(hs(b));\n }function hs(a) {\n a = +a;return T(a);\n }function is(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 16 | 0;f = e + 8 | 0;g = e;i = c[d >> 2] | 0;h = c[d + 4 >> 2] | 0;d = ai(b) | 0;c[g >> 2] = i;c[g + 4 >> 2] = h;c[f >> 2] = c[g >> 2];c[f + 4 >> 2] = c[g + 4 >> 2];js(a, d, f, 0);l = e;return;\n }function js(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;f = l;l = l + 32 | 0;g = f + 16 | 0;m = f + 8 | 0;i = f;k = c[d >> 2] | 0;j = c[d + 4 >> 2] | 0;h = c[a >> 2] | 0;a = ks() | 0;c[m >> 2] = k;c[m + 4 >> 2] = j;c[g >> 2] = c[m >> 2];c[g + 4 >> 2] = c[m + 4 >> 2];d = ls(g) | 0;c[i >> 2] = k;c[i + 4 >> 2] = j;c[g >> 2] = c[i >> 2];c[g + 4 >> 2] = c[i + 4 >> 2];fi(h, b, a, d, ms(g, e) | 0, e);l = f;return;\n }function ks() {\n var b = 0,\n d = 0;if (!(a[7856] | 0)) {\n ts(10172);Ha(50, 10172, o | 0) | 0;d = 7856;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10172) | 0)) {\n b = 10172;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));ts(10172);\n }return 10172;\n }function ls(a) {\n a = a | 0;return 0;\n }function ms(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;m = l;l = l + 32 | 0;f = m + 24 | 0;h = m + 16 | 0;i = m;j = m + 8 | 0;g = c[a >> 2] | 0;e = c[a + 4 >> 2] | 0;c[i >> 2] = g;c[i + 4 >> 2] = e;n = ks() | 0;k = n + 24 | 0;a = ji(b, 4) | 0;c[j >> 2] = a;b = n + 28 | 0;d = c[b >> 2] | 0;if (d >>> 0 < (c[n + 32 >> 2] | 0) >>> 0) {\n c[h >> 2] = g;c[h + 4 >> 2] = e;c[f >> 2] = c[h >> 2];c[f + 4 >> 2] = c[h + 4 >> 2];ns(d, f, a);a = (c[b >> 2] | 0) + 12 | 0;c[b >> 2] = a;\n } else {\n os(k, i, j);a = c[b >> 2] | 0;\n }l = m;return ((a - (c[k >> 2] | 0) | 0) / 12 | 0) + -1 | 0;\n }function ns(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0;e = c[b + 4 >> 2] | 0;c[a >> 2] = c[b >> 2];c[a + 4 >> 2] = e;c[a + 8 >> 2] = d;return;\n }function os(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0;k = l;l = l + 48 | 0;e = k + 32 | 0;h = k + 24 | 0;i = k;j = a + 4 | 0;f = (((c[j >> 2] | 0) - (c[a >> 2] | 0) | 0) / 12 | 0) + 1 | 0;g = ps(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n m = c[a >> 2] | 0;o = ((c[a + 8 >> 2] | 0) - m | 0) / 12 | 0;n = o << 1;qs(i, o >>> 0 < g >>> 1 >>> 0 ? n >>> 0 < f >>> 0 ? f : n : g, ((c[j >> 2] | 0) - m | 0) / 12 | 0, a + 8 | 0);j = i + 8 | 0;g = c[j >> 2] | 0;f = c[b + 4 >> 2] | 0;d = c[d >> 2] | 0;c[h >> 2] = c[b >> 2];c[h + 4 >> 2] = f;c[e >> 2] = c[h >> 2];c[e + 4 >> 2] = c[h + 4 >> 2];ns(g, e, d);c[j >> 2] = (c[j >> 2] | 0) + 12;rs(a, i);ss(i);l = k;return;\n }\n }function ps(a) {\n a = a | 0;return 357913941;\n }function qs(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 357913941) Ta();else {\n f = qC(b * 12 | 0) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d * 12 | 0) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b * 12 | 0);return;\n }function rs(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (((f | 0) / -12 | 0) * 12 | 0) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function ss(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~(((e + -12 - b | 0) >>> 0) / 12 | 0) * 12 | 0);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function ts(a) {\n a = a | 0;ws(a);return;\n }function us(a) {\n a = a | 0;vs(a + 24 | 0);return;\n }function vs(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~(((b + -12 - e | 0) >>> 0) / 12 | 0) * 12 | 0);sC(d);\n }return;\n }function ws(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 2, 3, b, xs() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function xs() {\n return 1380;\n }function ys(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;f = l;l = l + 16 | 0;g = f + 8 | 0;h = f;i = zs(a) | 0;a = c[i + 4 >> 2] | 0;c[h >> 2] = c[i >> 2];c[h + 4 >> 2] = a;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = c[h + 4 >> 2];As(b, g, d, e);l = f;return;\n }function zs(a) {\n a = a | 0;return (c[(ks() | 0) + 24 >> 2] | 0) + (a * 12 | 0) | 0;\n }function As(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;i = l;l = l + 16 | 0;g = i + 1 | 0;h = i;f = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;a = a + (b >> 1) | 0;if (b & 1) f = c[(c[a >> 2] | 0) + f >> 2] | 0;tj(g, d);g = uj(g, d) | 0;Bs(h, e);h = Cs(h, e) | 0;Eb[f & 15](a, g, h);l = i;return;\n }function Bs(a, b) {\n a = a | 0;b = b | 0;return;\n }function Cs(a, b) {\n a = a | 0;b = b | 0;return Ds(b) | 0;\n }function Ds(a) {\n a = a | 0;return (a | 0) != 0 | 0;\n }function Es(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Fs() | 0;a = Gs(d) | 0;fi(g, b, f, a, Hs(d, e) | 0, e);return;\n }function Fs() {\n var b = 0,\n d = 0;if (!(a[7864] | 0)) {\n Os(10208);Ha(51, 10208, o | 0) | 0;d = 7864;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10208) | 0)) {\n b = 10208;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Os(10208);\n }return 10208;\n }function Gs(a) {\n a = a | 0;return a | 0;\n }function Hs(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Fs() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n Is(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n Js(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function Is(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Js(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = Ks(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;Ls(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;Is(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;Ms(a, f);Ns(f);l = i;return;\n }\n }function Ks(a) {\n a = a | 0;return 536870911;\n }function Ls(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function Ms(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Ns(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Os(a) {\n a = a | 0;Rs(a);return;\n }function Ps(a) {\n a = a | 0;Qs(a + 24 | 0);return;\n }function Qs(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Rs(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 24, b, Ss() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Ss() {\n return 1392;\n }function Ts(a, b) {\n a = a | 0;b = b | 0;Vs(c[(Us(a) | 0) >> 2] | 0, b);return;\n }function Us(a) {\n a = a | 0;return (c[(Fs() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function Vs(a, b) {\n a = a | 0;b = b | 0;var c = 0,\n d = 0;c = l;l = l + 16 | 0;d = c;Lq(d, b);b = Mq(d, b) | 0;nb[a & 127](b);l = c;return;\n }function Ws(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Xs() | 0;a = Ys(d) | 0;fi(g, b, f, a, Zs(d, e) | 0, e);return;\n }function Xs() {\n var b = 0,\n d = 0;if (!(a[7872] | 0)) {\n et(10244);Ha(52, 10244, o | 0) | 0;d = 7872;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10244) | 0)) {\n b = 10244;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));et(10244);\n }return 10244;\n }function Ys(a) {\n a = a | 0;return a | 0;\n }function Zs(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Xs() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n _s(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n $s(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function _s(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function $s(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = at(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;bt(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;_s(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;ct(a, f);dt(f);l = i;return;\n }\n }function at(a) {\n a = a | 0;return 536870911;\n }function bt(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function ct(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function dt(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function et(a) {\n a = a | 0;ht(a);return;\n }function ft(a) {\n a = a | 0;gt(a + 24 | 0);return;\n }function gt(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function ht(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 16, b, it() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function it() {\n return 1400;\n }function jt(a) {\n a = a | 0;return lt(c[(kt(a) | 0) >> 2] | 0) | 0;\n }function kt(a) {\n a = a | 0;return (c[(Xs() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function lt(a) {\n a = a | 0;return mt(Ab[a & 7]() | 0) | 0;\n }function mt(a) {\n a = a | 0;return a | 0;\n }function nt() {\n var b = 0;if (!(a[7880] | 0)) {\n ut(10280);Ha(25, 10280, o | 0) | 0;b = 7880;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10280;\n }function ot(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = pt() | 0;c[a + 4 >> 2] = qt() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = rt() | 0;c[a + 32 >> 2] = 4;return;\n }function pt() {\n return 11711;\n }function qt() {\n return 1356;\n }function rt() {\n return lr() | 0;\n }function st(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n tt(c);sC(c);\n }\n } else if (b | 0) {\n mf(b);sC(b);\n }return;\n }function tt(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function ut(a) {\n a = a | 0;Zi(a);return;\n }function vt(a) {\n a = a | 0;wt(a, 4920);xt(a) | 0;yt(a) | 0;return;\n }function wt(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = nn() | 0;c[a >> 2] = d;Yt(d, b);Hv(c[a >> 2] | 0);return;\n }function xt(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, Mt() | 0);return a | 0;\n }function yt(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, zt() | 0);return a | 0;\n }function zt() {\n var b = 0;if (!(a[7888] | 0)) {\n Bt(10328);Ha(53, 10328, o | 0) | 0;b = 7888;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(10328) | 0)) Bt(10328);return 10328;\n }function At(a, b) {\n a = a | 0;b = b | 0;fi(a, 0, b, 0, 0, 0);return;\n }function Bt(a) {\n a = a | 0;Et(a);Gt(a, 10);return;\n }function Ct(a) {\n a = a | 0;Dt(a + 24 | 0);return;\n }function Dt(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Et(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 1, b, Jt() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Ft(a, b, c) {\n a = a | 0;b = b | 0;c = +c;Ht(a, b, c);return;\n }function Gt(a, b) {\n a = a | 0;b = b | 0;c[a + 20 >> 2] = b;return;\n }function Ht(a, b, d) {\n a = a | 0;b = b | 0;d = +d;var e = 0,\n f = 0,\n g = 0,\n i = 0,\n j = 0;e = l;l = l + 16 | 0;g = e + 8 | 0;j = e + 13 | 0;f = e;i = e + 12 | 0;tj(j, b);c[g >> 2] = uj(j, b) | 0;rj(i, d);h[f >> 3] = +sj(i, d);It(a, g, f);l = e;return;\n }function It(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;mg(b + 8 | 0, c[d >> 2] | 0, +h[e >> 3]);a[b + 24 >> 0] = 1;return;\n }function Jt() {\n return 1404;\n }function Kt(a, b) {\n a = a | 0;b = +b;return Lt(a, b) | 0;\n }function Lt(a, b) {\n a = a | 0;b = +b;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;e = l;l = l + 16 | 0;g = e + 4 | 0;h = e + 8 | 0;i = e;f = jy(8) | 0;d = f;j = qC(16) | 0;tj(g, a);a = uj(g, a) | 0;rj(h, b);mg(j, a, +sj(h, b));h = d + 4 | 0;c[h >> 2] = j;a = qC(8) | 0;h = c[h >> 2] | 0;c[i >> 2] = 0;c[g >> 2] = c[i >> 2];qn(a, h, g);c[f >> 2] = a;l = e;return d | 0;\n }function Mt() {\n var b = 0;if (!(a[7896] | 0)) {\n Nt(10364);Ha(54, 10364, o | 0) | 0;b = 7896;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(10364) | 0)) Nt(10364);return 10364;\n }function Nt(a) {\n a = a | 0;Qt(a);Gt(a, 55);return;\n }function Ot(a) {\n a = a | 0;Pt(a + 24 | 0);return;\n }function Pt(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Qt(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 4, b, Vt() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Rt(a) {\n a = a | 0;St(a);return;\n }function St(a) {\n a = a | 0;Tt(a);return;\n }function Tt(b) {\n b = b | 0;Ut(b + 8 | 0);a[b + 24 >> 0] = 1;return;\n }function Ut(a) {\n a = a | 0;c[a >> 2] = 0;h[a + 8 >> 3] = 0.0;return;\n }function Vt() {\n return 1424;\n }function Wt() {\n return Xt() | 0;\n }function Xt() {\n var a = 0,\n b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;b = l;l = l + 16 | 0;f = b + 4 | 0;h = b;d = jy(8) | 0;a = d;e = qC(16) | 0;Ut(e);g = a + 4 | 0;c[g >> 2] = e;e = qC(8) | 0;g = c[g >> 2] | 0;c[h >> 2] = 0;c[f >> 2] = c[h >> 2];qn(e, g, f);c[d >> 2] = e;l = b;return a | 0;\n }function Yt(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = Zt() | 0;c[a + 4 >> 2] = _t() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = $t() | 0;c[a + 32 >> 2] = 5;return;\n }function Zt() {\n return 11710;\n }function _t() {\n return 1416;\n }function $t() {\n return cu() | 0;\n }function au(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n bu(c);sC(c);\n }\n } else if (b | 0) sC(b);return;\n }function bu(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function cu() {\n var b = 0;if (!(a[7904] | 0)) {\n c[2600] = du() | 0;c[2601] = 0;b = 7904;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10400;\n }function du() {\n return c[357] | 0;\n }function eu(a) {\n a = a | 0;fu(a, 4926);gu(a) | 0;return;\n }function fu(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = Ci() | 0;c[a >> 2] = d;su(d, b);Hv(c[a >> 2] | 0);return;\n }function gu(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, hu() | 0);return a | 0;\n }function hu() {\n var b = 0;if (!(a[7912] | 0)) {\n iu(10412);Ha(56, 10412, o | 0) | 0;b = 7912;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(10412) | 0)) iu(10412);return 10412;\n }function iu(a) {\n a = a | 0;lu(a);Gt(a, 57);return;\n }function ju(a) {\n a = a | 0;ku(a + 24 | 0);return;\n }function ku(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function lu(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 5, b, pu() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function mu(a) {\n a = a | 0;nu(a);return;\n }function nu(a) {\n a = a | 0;ou(a);return;\n }function ou(b) {\n b = b | 0;var d = 0,\n e = 0;d = b + 8 | 0;e = d + 48 | 0;do {\n c[d >> 2] = 0;d = d + 4 | 0;\n } while ((d | 0) < (e | 0));a[b + 56 >> 0] = 1;return;\n }function pu() {\n return 1432;\n }function qu() {\n return ru() | 0;\n }function ru() {\n var a = 0,\n b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;h = l;l = l + 16 | 0;a = h + 4 | 0;b = h;d = jy(8) | 0;e = d;f = qC(48) | 0;g = f;i = g + 48 | 0;do {\n c[g >> 2] = 0;g = g + 4 | 0;\n } while ((g | 0) < (i | 0));g = e + 4 | 0;c[g >> 2] = f;i = qC(8) | 0;g = c[g >> 2] | 0;c[b >> 2] = 0;c[a >> 2] = c[b >> 2];Ji(i, g, a);c[d >> 2] = i;l = h;return e | 0;\n }function su(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = tu() | 0;c[a + 4 >> 2] = uu() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = vu() | 0;c[a + 32 >> 2] = 6;return;\n }function tu() {\n return 11704;\n }function uu() {\n return 1436;\n }function vu() {\n return cu() | 0;\n }function wu(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n xu(c);sC(c);\n }\n } else if (b | 0) sC(b);return;\n }function xu(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function yu(a) {\n a = a | 0;zu(a, 4933);Au(a) | 0;Bu(a) | 0;return;\n }function zu(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = cv() | 0;c[a >> 2] = d;dv(d, b);Hv(c[a >> 2] | 0);return;\n }function Au(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, Su() | 0);return a | 0;\n }function Bu(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, Cu() | 0);return a | 0;\n }function Cu() {\n var b = 0;if (!(a[7920] | 0)) {\n Du(10452);Ha(58, 10452, o | 0) | 0;b = 7920;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(10452) | 0)) Du(10452);return 10452;\n }function Du(a) {\n a = a | 0;Gu(a);Gt(a, 1);return;\n }function Eu(a) {\n a = a | 0;Fu(a + 24 | 0);return;\n }function Fu(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Gu(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 1, b, Lu() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Hu(a, b, c) {\n a = a | 0;b = +b;c = +c;Iu(a, b, c);return;\n }function Iu(a, b, c) {\n a = a | 0;b = +b;c = +c;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n i = 0;d = l;l = l + 32 | 0;f = d + 8 | 0;i = d + 17 | 0;e = d;g = d + 16 | 0;rj(i, b);h[f >> 3] = +sj(i, b);rj(g, c);h[e >> 3] = +sj(g, c);Ju(a, f, e);l = d;return;\n }function Ju(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;Ku(b + 8 | 0, +h[c >> 3], +h[d >> 3]);a[b + 24 >> 0] = 1;return;\n }function Ku(a, b, c) {\n a = a | 0;b = +b;c = +c;h[a >> 3] = b;h[a + 8 >> 3] = c;return;\n }function Lu() {\n return 1472;\n }function Mu(a, b) {\n a = +a;b = +b;return Nu(a, b) | 0;\n }function Nu(a, b) {\n a = +a;b = +b;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;e = l;l = l + 16 | 0;h = e + 4 | 0;i = e + 8 | 0;j = e;f = jy(8) | 0;d = f;g = qC(16) | 0;rj(h, a);a = +sj(h, a);rj(i, b);Ku(g, a, +sj(i, b));i = d + 4 | 0;c[i >> 2] = g;g = qC(8) | 0;i = c[i >> 2] | 0;c[j >> 2] = 0;c[h >> 2] = c[j >> 2];Ou(g, i, h);c[f >> 2] = g;l = e;return d | 0;\n }function Ou(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;d = qC(16) | 0;c[d + 4 >> 2] = 0;c[d + 8 >> 2] = 0;c[d >> 2] = 1452;c[d + 12 >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Pu(a) {\n a = a | 0;kC(a);sC(a);return;\n }function Qu(a) {\n a = a | 0;a = c[a + 12 >> 2] | 0;if (a | 0) sC(a);return;\n }function Ru(a) {\n a = a | 0;sC(a);return;\n }function Su() {\n var b = 0;if (!(a[7928] | 0)) {\n Tu(10488);Ha(59, 10488, o | 0) | 0;b = 7928;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(10488) | 0)) Tu(10488);return 10488;\n }function Tu(a) {\n a = a | 0;Wu(a);Gt(a, 60);return;\n }function Uu(a) {\n a = a | 0;Vu(a + 24 | 0);return;\n }function Vu(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Wu(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 6, b, $u() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Xu(a) {\n a = a | 0;Yu(a);return;\n }function Yu(a) {\n a = a | 0;Zu(a);return;\n }function Zu(b) {\n b = b | 0;_u(b + 8 | 0);a[b + 24 >> 0] = 1;return;\n }function _u(a) {\n a = a | 0;c[a >> 2] = 0;c[a + 4 >> 2] = 0;c[a + 8 >> 2] = 0;c[a + 12 >> 2] = 0;return;\n }function $u() {\n return 1492;\n }function av() {\n return bv() | 0;\n }function bv() {\n var a = 0,\n b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;b = l;l = l + 16 | 0;f = b + 4 | 0;h = b;d = jy(8) | 0;a = d;e = qC(16) | 0;_u(e);g = a + 4 | 0;c[g >> 2] = e;e = qC(8) | 0;g = c[g >> 2] | 0;c[h >> 2] = 0;c[f >> 2] = c[h >> 2];Ou(e, g, f);c[d >> 2] = e;l = b;return a | 0;\n }function cv() {\n var b = 0;if (!(a[7936] | 0)) {\n jv(10524);Ha(25, 10524, o | 0) | 0;b = 7936;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10524;\n }function dv(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = ev() | 0;c[a + 4 >> 2] = fv() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = gv() | 0;c[a + 32 >> 2] = 7;return;\n }function ev() {\n return 11700;\n }function fv() {\n return 1484;\n }function gv() {\n return cu() | 0;\n }function hv(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n iv(c);sC(c);\n }\n } else if (b | 0) sC(b);return;\n }function iv(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function jv(a) {\n a = a | 0;Zi(a);return;\n }function kv(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;a = ai(b) | 0;b = lv(c) | 0;c = mv(c, 0) | 0;Zv(a, b, c, nv() | 0, 0);return;\n }function lv(a) {\n a = a | 0;return a | 0;\n }function mv(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = nv() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n vv(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n wv(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function nv() {\n var b = 0,\n d = 0;if (!(a[7944] | 0)) {\n ov(10568);Ha(61, 10568, o | 0) | 0;d = 7944;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10568) | 0)) {\n b = 10568;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));ov(10568);\n }return 10568;\n }function ov(a) {\n a = a | 0;rv(a);return;\n }function pv(a) {\n a = a | 0;qv(a + 24 | 0);return;\n }function qv(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function rv(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 17, b, ql() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function sv(a) {\n a = a | 0;return uv(c[(tv(a) | 0) >> 2] | 0) | 0;\n }function tv(a) {\n a = a | 0;return (c[(nv() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function uv(a) {\n a = a | 0;return ul(Ab[a & 7]() | 0) | 0;\n }function vv(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function wv(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = xv(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;yv(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;vv(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;zv(a, f);Av(f);l = i;return;\n }\n }function xv(a) {\n a = a | 0;return 536870911;\n }function yv(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function zv(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Av(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Bv() {\n Cv();return;\n }function Cv() {\n Dv(10604);return;\n }function Dv(a) {\n a = a | 0;Ev(a, 4955);return;\n }function Ev(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = Fv() | 0;c[a >> 2] = d;Gv(d, b);Hv(c[a >> 2] | 0);return;\n }function Fv() {\n var b = 0;if (!(a[7952] | 0)) {\n Rv(10612);Ha(25, 10612, o | 0) | 0;b = 7952;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10612;\n }function Gv(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = Mv() | 0;c[a + 4 >> 2] = Nv() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = Ov() | 0;c[a + 32 >> 2] = 8;return;\n }function Hv(a) {\n a = a | 0;var b = 0,\n d = 0;b = l;l = l + 16 | 0;d = b;Iv() | 0;c[d >> 2] = a;Jv(10608, d);l = b;return;\n }function Iv() {\n if (!(a[11714] | 0)) {\n c[2652] = 0;Ha(62, 10608, o | 0) | 0;a[11714] = 1;\n }return 10608;\n }function Jv(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = qC(8) | 0;c[d + 4 >> 2] = c[b >> 2];c[d >> 2] = c[a >> 2];c[a >> 2] = d;return;\n }function Kv(a) {\n a = a | 0;Lv(a);return;\n }function Lv(a) {\n a = a | 0;var b = 0,\n d = 0;b = c[a >> 2] | 0;if (b | 0) do {\n d = b;b = c[b >> 2] | 0;sC(d);\n } while ((b | 0) != 0);c[a >> 2] = 0;return;\n }function Mv() {\n return 11715;\n }function Nv() {\n return 1496;\n }function Ov() {\n return lr() | 0;\n }function Pv(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n Qv(c);sC(c);\n }\n } else if (b | 0) sC(b);return;\n }function Qv(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function Rv(a) {\n a = a | 0;Zi(a);return;\n }function Sv(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;Iv() | 0;d = c[2652] | 0;a: do if (d | 0) {\n while (1) {\n e = c[d + 4 >> 2] | 0;if (e | 0 ? (AB(Tv(e) | 0, a) | 0) == 0 : 0) break;d = c[d >> 2] | 0;if (!d) break a;\n }Uv(e, b);\n } while (0);return;\n }function Tv(a) {\n a = a | 0;return c[a + 12 >> 2] | 0;\n }function Uv(a, b) {\n a = a | 0;b = b | 0;var d = 0;a = a + 36 | 0;d = c[a >> 2] | 0;if (d | 0) {\n vf(d);sC(d);\n }d = qC(4) | 0;Og(d, b);c[a >> 2] = d;return;\n }function Vv() {\n if (!(a[11716] | 0)) {\n c[2664] = 0;Ha(63, 10656, o | 0) | 0;a[11716] = 1;\n }return 10656;\n }function Wv() {\n var b = 0;if (!(a[11717] | 0)) {\n Xv();c[2665] = 1504;a[11717] = 1;b = 1504;\n } else b = c[2665] | 0;return b | 0;\n }function Xv() {\n if (!(a[11740] | 0)) {\n a[11718] = ji(ji(8, 0) | 0, 0) | 0;a[11719] = ji(ji(0, 0) | 0, 0) | 0;a[11720] = ji(ji(0, 16) | 0, 0) | 0;a[11721] = ji(ji(8, 0) | 0, 0) | 0;a[11722] = ji(ji(0, 0) | 0, 0) | 0;a[11723] = ji(ji(8, 0) | 0, 0) | 0;a[11724] = ji(ji(0, 0) | 0, 0) | 0;a[11725] = ji(ji(8, 0) | 0, 0) | 0;a[11726] = ji(ji(0, 0) | 0, 0) | 0;a[11727] = ji(ji(8, 0) | 0, 0) | 0;a[11728] = ji(ji(0, 0) | 0, 0) | 0;a[11729] = ji(ji(0, 0) | 0, 32) | 0;a[11730] = ji(ji(0, 0) | 0, 32) | 0;a[11740] = 1;\n }return;\n }function Yv() {\n return 1572;\n }function Zv(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;g = l;l = l + 32 | 0;m = g + 16 | 0;k = g + 12 | 0;j = g + 8 | 0;i = g + 4 | 0;h = g;c[m >> 2] = a;c[k >> 2] = b;c[j >> 2] = d;c[i >> 2] = e;c[h >> 2] = f;Vv() | 0;_v(10656, m, k, j, i, h);l = g;return;\n }function _v(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var h = 0;h = qC(24) | 0;ii(h + 4 | 0, c[b >> 2] | 0, c[d >> 2] | 0, c[e >> 2] | 0, c[f >> 2] | 0, c[g >> 2] | 0);c[h >> 2] = c[a >> 2];c[a >> 2] = h;return;\n }function $v(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0,\n t = 0,\n u = 0;u = l;l = l + 32 | 0;q = u + 20 | 0;r = u + 8 | 0;s = u + 4 | 0;t = u;b = c[b >> 2] | 0;if (b | 0) {\n p = q + 4 | 0;j = q + 8 | 0;k = r + 4 | 0;m = r + 8 | 0;n = r + 8 | 0;o = q + 8 | 0;do {\n h = b + 4 | 0;i = aw(h) | 0;if (i | 0) {\n f = bw(i) | 0;c[q >> 2] = 0;c[p >> 2] = 0;c[j >> 2] = 0;e = (cw(i) | 0) + 1 | 0;dw(q, e);if (e | 0) while (1) {\n e = e + -1 | 0;OA(r, c[f >> 2] | 0);g = c[p >> 2] | 0;if (g >>> 0 < (c[o >> 2] | 0) >>> 0) {\n c[g >> 2] = c[r >> 2];c[p >> 2] = (c[p >> 2] | 0) + 4;\n } else ew(q, r);if (!e) break;else f = f + 4 | 0;\n }e = fw(i) | 0;c[r >> 2] = 0;c[k >> 2] = 0;c[m >> 2] = 0;a: do if (c[e >> 2] | 0) {\n f = 0;g = 0;while (1) {\n if ((f | 0) == (g | 0)) gw(r, e);else {\n c[f >> 2] = c[e >> 2];c[k >> 2] = (c[k >> 2] | 0) + 4;\n }e = e + 4 | 0;if (!(c[e >> 2] | 0)) break a;f = c[k >> 2] | 0;g = c[n >> 2] | 0;\n }\n } while (0);c[s >> 2] = hw(h) | 0;c[t >> 2] = si(i) | 0;iw(d, a, s, t, q, r);jw(r);kw(q);\n }b = c[b >> 2] | 0;\n } while ((b | 0) != 0);\n }l = u;return;\n }function aw(a) {\n a = a | 0;return c[a + 12 >> 2] | 0;\n }function bw(a) {\n a = a | 0;return c[a + 12 >> 2] | 0;\n }function cw(a) {\n a = a | 0;return c[a + 16 >> 2] | 0;\n }function dw(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;f = l;l = l + 32 | 0;d = f;e = c[a >> 2] | 0;if ((c[a + 8 >> 2] | 0) - e >> 2 >>> 0 < b >>> 0) {\n Rw(d, b, (c[a + 4 >> 2] | 0) - e >> 2, a + 8 | 0);Sw(a, d);Tw(d);\n }l = f;return;\n }function ew(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0;h = l;l = l + 32 | 0;d = h;e = a + 4 | 0;f = ((c[e >> 2] | 0) - (c[a >> 2] | 0) >> 2) + 1 | 0;g = Nw(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n i = c[a >> 2] | 0;k = (c[a + 8 >> 2] | 0) - i | 0;j = k >> 1;Rw(d, k >> 2 >>> 0 < g >>> 1 >>> 0 ? j >>> 0 < f >>> 0 ? f : j : g, (c[e >> 2] | 0) - i >> 2, a + 8 | 0);g = d + 8 | 0;c[c[g >> 2] >> 2] = c[b >> 2];c[g >> 2] = (c[g >> 2] | 0) + 4;Sw(a, d);Tw(d);l = h;return;\n }\n }function fw(a) {\n a = a | 0;return c[a + 8 >> 2] | 0;\n }function gw(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0;h = l;l = l + 32 | 0;d = h;e = a + 4 | 0;f = ((c[e >> 2] | 0) - (c[a >> 2] | 0) >> 2) + 1 | 0;g = Kw(a) | 0;if (g >>> 0 < f >>> 0) jC(a);else {\n i = c[a >> 2] | 0;k = (c[a + 8 >> 2] | 0) - i | 0;j = k >> 1;Ow(d, k >> 2 >>> 0 < g >>> 1 >>> 0 ? j >>> 0 < f >>> 0 ? f : j : g, (c[e >> 2] | 0) - i >> 2, a + 8 | 0);g = d + 8 | 0;c[c[g >> 2] >> 2] = c[b >> 2];c[g >> 2] = (c[g >> 2] | 0) + 4;Pw(a, d);Qw(d);l = h;return;\n }\n }function hw(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function iw(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;lw(a, b, c, d, e, f);return;\n }function jw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -4 - e | 0) >>> 2) << 2);sC(d);\n }return;\n }function kw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -4 - e | 0) >>> 2) << 2);sC(d);\n }return;\n }function lw(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;h = l;l = l + 48 | 0;m = h + 40 | 0;i = h + 32 | 0;n = h + 24 | 0;j = h + 12 | 0;k = h;UA(i);a = Sg(a) | 0;c[n >> 2] = c[b >> 2];d = c[d >> 2] | 0;e = c[e >> 2] | 0;mw(j, f);nw(k, g);c[m >> 2] = c[n >> 2];ow(a, m, d, e, j, k);jw(k);kw(j);WA(i);l = h;return;\n }function mw(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;c[a >> 2] = 0;c[a + 4 >> 2] = 0;c[a + 8 >> 2] = 0;d = b + 4 | 0;e = (c[d >> 2] | 0) - (c[b >> 2] | 0) >> 2;if (e | 0) {\n Lw(a, e);Mw(a, c[b >> 2] | 0, c[d >> 2] | 0, e);\n }return;\n }function nw(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;c[a >> 2] = 0;c[a + 4 >> 2] = 0;c[a + 8 >> 2] = 0;d = b + 4 | 0;e = (c[d >> 2] | 0) - (c[b >> 2] | 0) >> 2;if (e | 0) {\n Iw(a, e);Jw(a, c[b >> 2] | 0, c[d >> 2] | 0, e);\n }return;\n }function ow(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0;h = l;l = l + 32 | 0;m = h + 28 | 0;n = h + 24 | 0;i = h + 12 | 0;j = h;k = Vg(pw() | 0) | 0;c[n >> 2] = c[b >> 2];c[m >> 2] = c[n >> 2];b = qw(m) | 0;d = rw(d) | 0;e = sw(e) | 0;c[i >> 2] = c[f >> 2];m = f + 4 | 0;c[i + 4 >> 2] = c[m >> 2];n = f + 8 | 0;c[i + 8 >> 2] = c[n >> 2];c[n >> 2] = 0;c[m >> 2] = 0;c[f >> 2] = 0;f = tw(i) | 0;c[j >> 2] = c[g >> 2];m = g + 4 | 0;c[j + 4 >> 2] = c[m >> 2];n = g + 8 | 0;c[j + 8 >> 2] = c[n >> 2];c[n >> 2] = 0;c[m >> 2] = 0;c[g >> 2] = 0;Ba(0, k | 0, a | 0, b | 0, d | 0, e | 0, f | 0, uw(j) | 0) | 0;jw(j);kw(i);l = h;return;\n }function pw() {\n var b = 0;if (!(a[7968] | 0)) {\n Gw(10708);b = 7968;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10708;\n }function qw(a) {\n a = a | 0;return yw(a) | 0;\n }function rw(a) {\n a = a | 0;return ww(a) | 0;\n }function sw(a) {\n a = a | 0;return ul(a) | 0;\n }function tw(a) {\n a = a | 0;return xw(a) | 0;\n }function uw(a) {\n a = a | 0;return vw(a) | 0;\n }function vw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;e = (c[a + 4 >> 2] | 0) - (c[a >> 2] | 0) | 0;d = e >> 2;e = jy(e + 4 | 0) | 0;c[e >> 2] = d;if (d | 0) {\n b = 0;do {\n c[e + 4 + (b << 2) >> 2] = ww(c[(c[a >> 2] | 0) + (b << 2) >> 2] | 0) | 0;b = b + 1 | 0;\n } while ((b | 0) != (d | 0));\n }return e | 0;\n }function ww(a) {\n a = a | 0;return a | 0;\n }function xw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;e = (c[a + 4 >> 2] | 0) - (c[a >> 2] | 0) | 0;d = e >> 2;e = jy(e + 4 | 0) | 0;c[e >> 2] = d;if (d | 0) {\n b = 0;do {\n c[e + 4 + (b << 2) >> 2] = yw((c[a >> 2] | 0) + (b << 2) | 0) | 0;b = b + 1 | 0;\n } while ((b | 0) != (d | 0));\n }return e | 0;\n }function yw(a) {\n a = a | 0;var b = 0,\n c = 0,\n d = 0,\n e = 0;e = l;l = l + 32 | 0;b = e + 12 | 0;c = e;d = Di(zw() | 0) | 0;if (!d) a = Aw(a) | 0;else {\n Ei(b, d);Fi(c, b);RA(a, c);a = Hi(b) | 0;\n }l = e;return a | 0;\n }function zw() {\n var b = 0;if (!(a[7960] | 0)) {\n Fw(10664);Ha(25, 10664, o | 0) | 0;b = 7960;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10664;\n }function Aw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;d = l;l = l + 16 | 0;f = d + 4 | 0;h = d;e = jy(8) | 0;b = e;i = qC(4) | 0;c[i >> 2] = c[a >> 2];g = b + 4 | 0;c[g >> 2] = i;a = qC(8) | 0;g = c[g >> 2] | 0;c[h >> 2] = 0;c[f >> 2] = c[h >> 2];Bw(a, g, f);c[e >> 2] = a;l = d;return b | 0;\n }function Bw(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;d = qC(16) | 0;c[d + 4 >> 2] = 0;c[d + 8 >> 2] = 0;c[d >> 2] = 1656;c[d + 12 >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Cw(a) {\n a = a | 0;kC(a);sC(a);return;\n }function Dw(a) {\n a = a | 0;a = c[a + 12 >> 2] | 0;if (a | 0) sC(a);return;\n }function Ew(a) {\n a = a | 0;sC(a);return;\n }function Fw(a) {\n a = a | 0;Zi(a);return;\n }function Gw(a) {\n a = a | 0;fh(a, Hw() | 0, 5);return;\n }function Hw() {\n return 1676;\n }function Iw(a, b) {\n a = a | 0;b = b | 0;var d = 0;if ((Kw(a) | 0) >>> 0 < b >>> 0) jC(a);if (b >>> 0 > 1073741823) Ta();else {\n d = qC(b << 2) | 0;c[a + 4 >> 2] = d;c[a >> 2] = d;c[a + 8 >> 2] = d + (b << 2);return;\n }\n }function Jw(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;e = a + 4 | 0;a = d - b | 0;if ((a | 0) > 0) {\n BC(c[e >> 2] | 0, b | 0, a | 0) | 0;c[e >> 2] = (c[e >> 2] | 0) + (a >>> 2 << 2);\n }return;\n }function Kw(a) {\n a = a | 0;return 1073741823;\n }function Lw(a, b) {\n a = a | 0;b = b | 0;var d = 0;if ((Nw(a) | 0) >>> 0 < b >>> 0) jC(a);if (b >>> 0 > 1073741823) Ta();else {\n d = qC(b << 2) | 0;c[a + 4 >> 2] = d;c[a >> 2] = d;c[a + 8 >> 2] = d + (b << 2);return;\n }\n }function Mw(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;e = a + 4 | 0;a = d - b | 0;if ((a | 0) > 0) {\n BC(c[e >> 2] | 0, b | 0, a | 0) | 0;c[e >> 2] = (c[e >> 2] | 0) + (a >>> 2 << 2);\n }return;\n }function Nw(a) {\n a = a | 0;return 1073741823;\n }function Ow(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 1073741823) Ta();else {\n f = qC(b << 2) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 2) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 2);return;\n }function Pw(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 2) << 2) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Qw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -4 - b | 0) >>> 2) << 2);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Rw(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 1073741823) Ta();else {\n f = qC(b << 2) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 2) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 2);return;\n }function Sw(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 2) << 2) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Tw(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -4 - b | 0) >>> 2) << 2);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Uw(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0;r = l;l = l + 32 | 0;m = r + 20 | 0;n = r + 12 | 0;k = r + 16 | 0;o = r + 4 | 0;p = r;q = r + 8 | 0;i = Wv() | 0;g = c[i >> 2] | 0;h = c[g >> 2] | 0;if (h | 0) {\n j = c[i + 8 >> 2] | 0;i = c[i + 4 >> 2] | 0;while (1) {\n OA(m, h);Vw(a, m, i, j);g = g + 4 | 0;h = c[g >> 2] | 0;if (!h) break;else {\n j = j + 1 | 0;i = i + 1 | 0;\n }\n }\n }g = Yv() | 0;h = c[g >> 2] | 0;if (h | 0) do {\n OA(m, h);c[n >> 2] = c[g + 4 >> 2];Ww(b, m, n);g = g + 8 | 0;h = c[g >> 2] | 0;\n } while ((h | 0) != 0);g = c[(Iv() | 0) >> 2] | 0;if (g | 0) do {\n b = c[g + 4 >> 2] | 0;OA(m, c[(Xw(b) | 0) >> 2] | 0);c[n >> 2] = Tv(b) | 0;Yw(d, m, n);g = c[g >> 2] | 0;\n } while ((g | 0) != 0);OA(k, 0);g = Vv() | 0;c[m >> 2] = c[k >> 2];$v(m, g, f);g = c[(Iv() | 0) >> 2] | 0;if (g | 0) {\n a = m + 4 | 0;b = m + 8 | 0;d = m + 8 | 0;do {\n j = c[g + 4 >> 2] | 0;OA(n, c[(Xw(j) | 0) >> 2] | 0);_w(o, Zw(j) | 0);h = c[o >> 2] | 0;if (h | 0) {\n c[m >> 2] = 0;c[a >> 2] = 0;c[b >> 2] = 0;do {\n OA(p, c[(Xw(c[h + 4 >> 2] | 0) | 0) >> 2] | 0);i = c[a >> 2] | 0;if (i >>> 0 < (c[d >> 2] | 0) >>> 0) {\n c[i >> 2] = c[p >> 2];c[a >> 2] = (c[a >> 2] | 0) + 4;\n } else ew(m, p);h = c[h >> 2] | 0;\n } while ((h | 0) != 0);$w(e, n, m);kw(m);\n }c[q >> 2] = c[n >> 2];k = ax(j) | 0;c[m >> 2] = c[q >> 2];$v(m, k, f);Wi(o);g = c[g >> 2] | 0;\n } while ((g | 0) != 0);\n }l = r;return;\n }function Vw(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;ox(a, b, c, d);return;\n }function Ww(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;nx(a, b, c);return;\n }function Xw(a) {\n a = a | 0;return a | 0;\n }function Yw(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;ix(a, b, c);return;\n }function Zw(a) {\n a = a | 0;return a + 16 | 0;\n }function _w(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;g = l;l = l + 16 | 0;f = g + 8 | 0;d = g;c[a >> 2] = 0;e = c[b >> 2] | 0;c[f >> 2] = e;c[d >> 2] = a;d = gx(d) | 0;if (e | 0) {\n e = qC(12) | 0;h = (hx(f) | 0) + 4 | 0;a = c[h + 4 >> 2] | 0;b = e + 4 | 0;c[b >> 2] = c[h >> 2];c[b + 4 >> 2] = a;b = c[c[f >> 2] >> 2] | 0;c[f >> 2] = b;if (!b) a = e;else {\n b = e;while (1) {\n a = qC(12) | 0;j = (hx(f) | 0) + 4 | 0;i = c[j + 4 >> 2] | 0;h = a + 4 | 0;c[h >> 2] = c[j >> 2];c[h + 4 >> 2] = i;c[b >> 2] = a;h = c[c[f >> 2] >> 2] | 0;c[f >> 2] = h;if (!h) break;else b = a;\n }\n }c[a >> 2] = c[d >> 2];c[d >> 2] = e;\n }l = g;return;\n }function $w(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;bx(a, b, c);return;\n }function ax(a) {\n a = a | 0;return a + 24 | 0;\n }function bx(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 32 | 0;h = e + 24 | 0;f = e + 16 | 0;i = e + 12 | 0;g = e;UA(f);a = Sg(a) | 0;c[i >> 2] = c[b >> 2];mw(g, d);c[h >> 2] = c[i >> 2];cx(a, h, g);kw(g);WA(f);l = e;return;\n }function cx(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;e = l;l = l + 32 | 0;h = e + 16 | 0;i = e + 12 | 0;f = e;g = Vg(dx() | 0) | 0;c[i >> 2] = c[b >> 2];c[h >> 2] = c[i >> 2];b = qw(h) | 0;c[f >> 2] = c[d >> 2];h = d + 4 | 0;c[f + 4 >> 2] = c[h >> 2];i = d + 8 | 0;c[f + 8 >> 2] = c[i >> 2];c[i >> 2] = 0;c[h >> 2] = 0;c[d >> 2] = 0;xa(0, g | 0, a | 0, b | 0, tw(f) | 0) | 0;kw(f);l = e;return;\n }function dx() {\n var b = 0;if (!(a[7976] | 0)) {\n ex(10720);b = 7976;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10720;\n }function ex(a) {\n a = a | 0;fh(a, fx() | 0, 2);return;\n }function fx() {\n return 1732;\n }function gx(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function hx(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function ix(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 32 | 0;g = e + 16 | 0;f = e + 8 | 0;h = e;UA(f);a = Sg(a) | 0;c[h >> 2] = c[b >> 2];d = c[d >> 2] | 0;c[g >> 2] = c[h >> 2];jx(a, g, d);WA(f);l = e;return;\n }function jx(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 16 | 0;g = e + 4 | 0;h = e;f = Vg(kx() | 0) | 0;c[h >> 2] = c[b >> 2];c[g >> 2] = c[h >> 2];b = qw(g) | 0;xa(0, f | 0, a | 0, b | 0, rw(d) | 0) | 0;l = e;return;\n }function kx() {\n var b = 0;if (!(a[7984] | 0)) {\n lx(10732);b = 7984;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10732;\n }function lx(a) {\n a = a | 0;fh(a, mx() | 0, 2);return;\n }function mx() {\n return 1744;\n }function nx(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0;e = l;l = l + 32 | 0;g = e + 16 | 0;f = e + 8 | 0;h = e;UA(f);a = Sg(a) | 0;c[h >> 2] = c[b >> 2];d = c[d >> 2] | 0;c[g >> 2] = c[h >> 2];jx(a, g, d);WA(f);l = e;return;\n }function ox(b, d, e, f) {\n b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0;g = l;l = l + 32 | 0;i = g + 16 | 0;h = g + 8 | 0;j = g;UA(h);b = Sg(b) | 0;c[j >> 2] = c[d >> 2];e = a[e >> 0] | 0;f = a[f >> 0] | 0;c[i >> 2] = c[j >> 2];px(b, i, e, f);WA(h);l = g;return;\n }function px(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;f = l;l = l + 16 | 0;h = f + 4 | 0;i = f;g = Vg(qx() | 0) | 0;c[i >> 2] = c[b >> 2];c[h >> 2] = c[i >> 2];b = qw(h) | 0;d = rx(d) | 0;$a(0, g | 0, a | 0, b | 0, d | 0, rx(e) | 0) | 0;l = f;return;\n }function qx() {\n var b = 0;if (!(a[7992] | 0)) {\n tx(10744);b = 7992;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10744;\n }function rx(a) {\n a = a | 0;return sx(a) | 0;\n }function sx(a) {\n a = a | 0;return a & 255 | 0;\n }function tx(a) {\n a = a | 0;fh(a, ux() | 0, 3);return;\n }function ux() {\n return 1756;\n }function vx(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0;p = l;l = l + 32 | 0;j = p + 8 | 0;k = p + 4 | 0;m = p + 20 | 0;n = p;mk(b, 0);f = QA(d) | 0;c[j >> 2] = 0;o = j + 4 | 0;c[o >> 2] = 0;c[j + 8 >> 2] = 0;switch (f << 24 >> 24) {case 0:\n {\n a[m >> 0] = 0;wx(k, e, m);xx(b, k) | 0;wf(k);break;\n }case 8:\n {\n o = PA(d) | 0;a[m >> 0] = 8;OA(n, c[o + 4 >> 2] | 0);yx(k, e, m, n, o + 8 | 0);xx(b, k) | 0;wf(k);break;\n }case 9:\n {\n h = PA(d) | 0;d = c[h + 4 >> 2] | 0;if (d | 0) {\n i = j + 8 | 0;g = h + 12 | 0;while (1) {\n d = d + -1 | 0;OA(k, c[g >> 2] | 0);f = c[o >> 2] | 0;if (f >>> 0 < (c[i >> 2] | 0) >>> 0) {\n c[f >> 2] = c[k >> 2];c[o >> 2] = (c[o >> 2] | 0) + 4;\n } else ew(j, k);if (!d) break;else g = g + 4 | 0;\n }\n }a[m >> 0] = 9;OA(n, c[h + 8 >> 2] | 0);zx(k, e, m, n, j);xx(b, k) | 0;wf(k);break;\n }default:\n {\n o = PA(d) | 0;a[m >> 0] = f;OA(n, c[o + 4 >> 2] | 0);Ax(k, e, m, n);xx(b, k) | 0;wf(k);\n }}kw(j);l = p;return;\n }function wx(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;var e = 0,\n f = 0;e = l;l = l + 16 | 0;f = e;UA(f);c = Sg(c) | 0;Ox(b, c, a[d >> 0] | 0);WA(f);l = e;return;\n }function xx(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = c[a >> 2] | 0;if (d | 0) ab(d | 0);c[a >> 2] = c[b >> 2];c[b >> 2] = 0;return a | 0;\n }function yx(b, d, e, f, g) {\n b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var h = 0,\n i = 0,\n j = 0,\n k = 0;h = l;l = l + 32 | 0;j = h + 16 | 0;i = h + 8 | 0;k = h;UA(i);d = Sg(d) | 0;e = a[e >> 0] | 0;c[k >> 2] = c[f >> 2];g = c[g >> 2] | 0;c[j >> 2] = c[k >> 2];Kx(b, d, e, j, g);WA(i);l = h;return;\n }function zx(b, d, e, f, g) {\n b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;var h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;h = l;l = l + 32 | 0;k = h + 24 | 0;i = h + 16 | 0;m = h + 12 | 0;j = h;UA(i);d = Sg(d) | 0;e = a[e >> 0] | 0;c[m >> 2] = c[f >> 2];mw(j, g);c[k >> 2] = c[m >> 2];Gx(b, d, e, k, j);kw(j);WA(i);l = h;return;\n }function Ax(b, d, e, f) {\n b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0;g = l;l = l + 32 | 0;i = g + 16 | 0;h = g + 8 | 0;j = g;UA(h);d = Sg(d) | 0;e = a[e >> 0] | 0;c[j >> 2] = c[f >> 2];c[i >> 2] = c[j >> 2];Bx(b, d, e, i);WA(h);l = g;return;\n }function Bx(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;f = l;l = l + 16 | 0;g = f + 4 | 0;i = f;h = Vg(Cx() | 0) | 0;d = rx(d) | 0;c[i >> 2] = c[e >> 2];c[g >> 2] = c[i >> 2];Dx(a, xa(0, h | 0, b | 0, d | 0, qw(g) | 0) | 0);l = f;return;\n }function Cx() {\n var b = 0;if (!(a[8e3] | 0)) {\n Ex(10756);b = 8e3;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10756;\n }function Dx(a, b) {\n a = a | 0;b = b | 0;mk(a, b);return;\n }function Ex(a) {\n a = a | 0;fh(a, Fx() | 0, 2);return;\n }function Fx() {\n return 1772;\n }function Gx(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0;g = l;l = l + 32 | 0;j = g + 16 | 0;k = g + 12 | 0;h = g;i = Vg(Hx() | 0) | 0;d = rx(d) | 0;c[k >> 2] = c[e >> 2];c[j >> 2] = c[k >> 2];e = qw(j) | 0;c[h >> 2] = c[f >> 2];j = f + 4 | 0;c[h + 4 >> 2] = c[j >> 2];k = f + 8 | 0;c[h + 8 >> 2] = c[k >> 2];c[k >> 2] = 0;c[j >> 2] = 0;c[f >> 2] = 0;Dx(a, $a(0, i | 0, b | 0, d | 0, e | 0, tw(h) | 0) | 0);kw(h);l = g;return;\n }function Hx() {\n var b = 0;if (!(a[8008] | 0)) {\n Ix(10768);b = 8008;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10768;\n }function Ix(a) {\n a = a | 0;fh(a, Jx() | 0, 3);return;\n }function Jx() {\n return 1784;\n }function Kx(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0;g = l;l = l + 16 | 0;i = g + 4 | 0;j = g;h = Vg(Lx() | 0) | 0;d = rx(d) | 0;c[j >> 2] = c[e >> 2];c[i >> 2] = c[j >> 2];e = qw(i) | 0;Dx(a, $a(0, h | 0, b | 0, d | 0, e | 0, sw(f) | 0) | 0);l = g;return;\n }function Lx() {\n var b = 0;if (!(a[8016] | 0)) {\n Mx(10780);b = 8016;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10780;\n }function Mx(a) {\n a = a | 0;fh(a, Nx() | 0, 3);return;\n }function Nx() {\n return 1800;\n }function Ox(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;var d = 0;d = Vg(Px() | 0) | 0;Dx(a, bb(0, d | 0, b | 0, rx(c) | 0) | 0);return;\n }function Px() {\n var b = 0;if (!(a[8024] | 0)) {\n Qx(10792);b = 8024;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 10792;\n }function Qx(a) {\n a = a | 0;fh(a, Rx() | 0, 1);return;\n }function Rx() {\n return 1816;\n }function Sx() {\n Tx();Ux();Vx();return;\n }function Tx() {\n c[2702] = rC(65536) | 0;return;\n }function Ux() {\n qy(10856);return;\n }function Vx() {\n Wx(10816);return;\n }function Wx(a) {\n a = a | 0;Xx(a, 5044);Yx(a) | 0;return;\n }function Xx(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = zw() | 0;c[a >> 2] = d;ky(d, b);Hv(c[a >> 2] | 0);return;\n }function Yx(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, Zx() | 0);return a | 0;\n }function Zx() {\n var b = 0;if (!(a[8032] | 0)) {\n _x(10820);Ha(64, 10820, o | 0) | 0;b = 8032;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(10820) | 0)) _x(10820);return 10820;\n }function _x(a) {\n a = a | 0;by(a);Gt(a, 25);return;\n }function $x(a) {\n a = a | 0;ay(a + 24 | 0);return;\n }function ay(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function by(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 18, b, gy() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function cy(a, b) {\n a = a | 0;b = b | 0;dy(a, b);return;\n }function dy(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;d = l;l = l + 16 | 0;e = d;f = d + 4 | 0;Gk(f, b);c[e >> 2] = Hk(f, b) | 0;ey(a, e);l = d;return;\n }function ey(b, d) {\n b = b | 0;d = d | 0;fy(b + 4 | 0, c[d >> 2] | 0);a[b + 8 >> 0] = 1;return;\n }function fy(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = b;return;\n }function gy() {\n return 1824;\n }function hy(a) {\n a = a | 0;return iy(a) | 0;\n }function iy(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0;d = l;l = l + 16 | 0;f = d + 4 | 0;h = d;e = jy(8) | 0;b = e;i = qC(4) | 0;Gk(f, a);fy(i, Hk(f, a) | 0);g = b + 4 | 0;c[g >> 2] = i;a = qC(8) | 0;g = c[g >> 2] | 0;c[h >> 2] = 0;c[f >> 2] = c[h >> 2];Bw(a, g, f);c[e >> 2] = a;l = d;return b | 0;\n }function jy(a) {\n a = a | 0;var b = 0,\n d = 0;a = a + 7 & -8;if (a >>> 0 <= 32768 ? (b = c[2701] | 0, a >>> 0 <= (65536 - b | 0) >>> 0) : 0) {\n d = (c[2702] | 0) + b | 0;c[2701] = b + a;a = d;\n } else {\n a = rC(a + 8 | 0) | 0;c[a >> 2] = c[2703];c[2703] = a;a = a + 8 | 0;\n }return a | 0;\n }function ky(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = ly() | 0;c[a + 4 >> 2] = my() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = ny() | 0;c[a + 32 >> 2] = 9;return;\n }function ly() {\n return 11744;\n }function my() {\n return 1832;\n }function ny() {\n return cu() | 0;\n }function oy(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n py(c);sC(c);\n }\n } else if (b | 0) sC(b);return;\n }function py(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function qy(a) {\n a = a | 0;ry(a, 5052);sy(a) | 0;ty(a, 5058, 26) | 0;uy(a, 5069, 1) | 0;vy(a, 5077, 10) | 0;wy(a, 5087, 19) | 0;yy(a, 5094, 27) | 0;return;\n }function ry(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = GA() | 0;c[a >> 2] = d;HA(d, b);Hv(c[a >> 2] | 0);return;\n }function sy(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;At(b, rA() | 0);return a | 0;\n }function ty(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Yz(a, ai(b) | 0, c, 0);return a | 0;\n }function uy(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Gz(a, ai(b) | 0, c, 0);return a | 0;\n }function vy(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;hz(a, ai(b) | 0, c, 0);return a | 0;\n }function wy(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Ry(a, ai(b) | 0, c, 0);return a | 0;\n }function xy(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;a: while (1) {\n d = c[2703] | 0;while (1) {\n if ((d | 0) == (b | 0)) break a;e = c[d >> 2] | 0;c[2703] = e;if (!d) d = e;else break;\n }sC(d);\n }c[2701] = a;return;\n }function yy(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;zy(a, ai(b) | 0, c, 0);return a | 0;\n }function zy(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Ay() | 0;a = By(d) | 0;fi(g, b, f, a, Cy(d, e) | 0, e);return;\n }function Ay() {\n var b = 0,\n d = 0;if (!(a[8040] | 0)) {\n Jy(10860);Ha(65, 10860, o | 0) | 0;d = 8040;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10860) | 0)) {\n b = 10860;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Jy(10860);\n }return 10860;\n }function By(a) {\n a = a | 0;return a | 0;\n }function Cy(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Ay() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n Dy(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n Ey(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function Dy(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Ey(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = Fy(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;Gy(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;Dy(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;Hy(a, f);Iy(f);l = i;return;\n }\n }function Fy(a) {\n a = a | 0;return 536870911;\n }function Gy(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function Hy(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Iy(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Jy(a) {\n a = a | 0;My(a);return;\n }function Ky(a) {\n a = a | 0;Ly(a + 24 | 0);return;\n }function Ly(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function My(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 11, b, Ny() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Ny() {\n return 1840;\n }function Oy(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;Qy(c[(Py(a) | 0) >> 2] | 0, b, d);return;\n }function Py(a) {\n a = a | 0;return (c[(Ay() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function Qy(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;var d = 0,\n e = 0,\n f = 0;d = l;l = l + 16 | 0;f = d + 1 | 0;e = d;Gk(f, b);b = Hk(f, b) | 0;Gk(e, c);c = Hk(e, c) | 0;ob[a & 31](b, c);l = d;return;\n }function Ry(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Sy() | 0;a = Ty(d) | 0;fi(g, b, f, a, Uy(d, e) | 0, e);return;\n }function Sy() {\n var b = 0,\n d = 0;if (!(a[8048] | 0)) {\n $y(10896);Ha(66, 10896, o | 0) | 0;d = 8048;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10896) | 0)) {\n b = 10896;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));$y(10896);\n }return 10896;\n }function Ty(a) {\n a = a | 0;return a | 0;\n }function Uy(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Sy() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n Vy(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n Wy(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function Vy(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Wy(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = Xy(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;Yy(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;Vy(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;Zy(a, f);_y(f);l = i;return;\n }\n }function Xy(a) {\n a = a | 0;return 536870911;\n }function Yy(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function Zy(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function _y(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function $y(a) {\n a = a | 0;cz(a);return;\n }function az(a) {\n a = a | 0;bz(a + 24 | 0);return;\n }function bz(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function cz(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 11, b, dz() | 0, 1);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function dz() {\n return 1852;\n }function ez(a, b) {\n a = a | 0;b = b | 0;return gz(c[(fz(a) | 0) >> 2] | 0, b) | 0;\n }function fz(a) {\n a = a | 0;return (c[(Sy() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function gz(a, b) {\n a = a | 0;b = b | 0;var c = 0,\n d = 0;c = l;l = l + 16 | 0;d = c;Gk(d, b);b = Hk(d, b) | 0;b = ul(pb[a & 31](b) | 0) | 0;l = c;return b | 0;\n }function hz(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = iz() | 0;a = jz(d) | 0;fi(g, b, f, a, kz(d, e) | 0, e);return;\n }function iz() {\n var b = 0,\n d = 0;if (!(a[8056] | 0)) {\n rz(10932);Ha(67, 10932, o | 0) | 0;d = 8056;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10932) | 0)) {\n b = 10932;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));rz(10932);\n }return 10932;\n }function jz(a) {\n a = a | 0;return a | 0;\n }function kz(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = iz() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n lz(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n mz(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function lz(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function mz(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = nz(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;oz(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;lz(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;pz(a, f);qz(f);l = i;return;\n }\n }function nz(a) {\n a = a | 0;return 536870911;\n }function oz(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function pz(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function qz(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function rz(a) {\n a = a | 0;uz(a);return;\n }function sz(a) {\n a = a | 0;tz(a + 24 | 0);return;\n }function tz(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function uz(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 7, b, vz() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function vz() {\n return 1860;\n }function wz(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;return yz(c[(xz(a) | 0) >> 2] | 0, b, d) | 0;\n }function xz(a) {\n a = a | 0;return (c[(iz() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function yz(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;e = l;l = l + 32 | 0;h = e + 12 | 0;g = e + 8 | 0;i = e;j = e + 16 | 0;f = e + 4 | 0;zz(j, b);Az(i, j, b);ik(f, d);d = jk(f, d) | 0;c[h >> 2] = c[i >> 2];Eb[a & 15](g, h, d);d = Bz(g) | 0;wf(g);kk(f);l = e;return d | 0;\n }function zz(a, b) {\n a = a | 0;b = b | 0;return;\n }function Az(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;Cz(a, c);return;\n }function Bz(a) {\n a = a | 0;return Sg(a) | 0;\n }function Cz(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0;f = l;l = l + 16 | 0;d = f;e = b;if (!(e & 1)) c[a >> 2] = c[b >> 2];else {\n Dz(d, 0);Ja(e | 0, d | 0) | 0;Ez(a, d);Fz(d);\n }l = f;return;\n }function Dz(b, d) {\n b = b | 0;d = d | 0;ah(b, d);c[b + 4 >> 2] = 0;a[b + 8 >> 0] = 0;return;\n }function Ez(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = c[b + 4 >> 2];return;\n }function Fz(b) {\n b = b | 0;a[b + 8 >> 0] = 0;return;\n }function Gz(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Hz() | 0;a = Iz(d) | 0;fi(g, b, f, a, Jz(d, e) | 0, e);return;\n }function Hz() {\n var b = 0,\n d = 0;if (!(a[8064] | 0)) {\n Qz(10968);Ha(68, 10968, o | 0) | 0;d = 8064;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(10968) | 0)) {\n b = 10968;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));Qz(10968);\n }return 10968;\n }function Iz(a) {\n a = a | 0;return a | 0;\n }function Jz(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Hz() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n Kz(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n Lz(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function Kz(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function Lz(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = Mz(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;Nz(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;Kz(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;Oz(a, f);Pz(f);l = i;return;\n }\n }function Mz(a) {\n a = a | 0;return 536870911;\n }function Nz(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function Oz(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function Pz(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function Qz(a) {\n a = a | 0;Tz(a);return;\n }function Rz(a) {\n a = a | 0;Sz(a + 24 | 0);return;\n }function Sz(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function Tz(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 1, b, Uz() | 0, 5);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function Uz() {\n return 1872;\n }function Vz(a, b, d, e, f, g) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;Xz(c[(Wz(a) | 0) >> 2] | 0, b, d, e, f, g);return;\n }function Wz(a) {\n a = a | 0;return (c[(Hz() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function Xz(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;g = l;l = l + 32 | 0;h = g + 16 | 0;i = g + 12 | 0;j = g + 8 | 0;k = g + 4 | 0;m = g;ik(h, b);b = jk(h, b) | 0;ik(i, c);c = jk(i, c) | 0;ik(j, d);d = jk(j, d) | 0;ik(k, e);e = jk(k, e) | 0;ik(m, f);f = jk(m, f) | 0;jb[a & 1](b, c, d, e, f);kk(m);kk(k);kk(j);kk(i);kk(h);l = g;return;\n }function Yz(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = c[a >> 2] | 0;f = Zz() | 0;a = _z(d) | 0;fi(g, b, f, a, $z(d, e) | 0, e);return;\n }function Zz() {\n var b = 0,\n d = 0;if (!(a[8072] | 0)) {\n gA(11004);Ha(69, 11004, o | 0) | 0;d = 8072;c[d >> 2] = 1;c[d + 4 >> 2] = 0;\n }if (!(si(11004) | 0)) {\n b = 11004;d = b + 36 | 0;do {\n c[b >> 2] = 0;b = b + 4 | 0;\n } while ((b | 0) < (d | 0));gA(11004);\n }return 11004;\n }function _z(a) {\n a = a | 0;return a | 0;\n }function $z(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;i = l;l = l + 16 | 0;f = i;g = i + 4 | 0;c[f >> 2] = a;j = Zz() | 0;h = j + 24 | 0;b = ji(b, 4) | 0;c[g >> 2] = b;d = j + 28 | 0;e = c[d >> 2] | 0;if (e >>> 0 < (c[j + 32 >> 2] | 0) >>> 0) {\n aA(e, a, b);b = (c[d >> 2] | 0) + 8 | 0;c[d >> 2] = b;\n } else {\n bA(h, f, g);b = c[d >> 2] | 0;\n }l = i;return (b - (c[h >> 2] | 0) >> 3) + -1 | 0;\n }function aA(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;c[a + 4 >> 2] = d;return;\n }function bA(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0;i = l;l = l + 32 | 0;f = i;g = a + 4 | 0;h = ((c[g >> 2] | 0) - (c[a >> 2] | 0) >> 3) + 1 | 0;e = cA(a) | 0;if (e >>> 0 < h >>> 0) jC(a);else {\n j = c[a >> 2] | 0;m = (c[a + 8 >> 2] | 0) - j | 0;k = m >> 2;dA(f, m >> 3 >>> 0 < e >>> 1 >>> 0 ? k >>> 0 < h >>> 0 ? h : k : e, (c[g >> 2] | 0) - j >> 3, a + 8 | 0);h = f + 8 | 0;aA(c[h >> 2] | 0, c[b >> 2] | 0, c[d >> 2] | 0);c[h >> 2] = (c[h >> 2] | 0) + 8;eA(a, f);fA(f);l = i;return;\n }\n }function cA(a) {\n a = a | 0;return 536870911;\n }function dA(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0;c[a + 12 >> 2] = 0;c[a + 16 >> 2] = e;do if (b) {\n if (b >>> 0 > 536870911) Ta();else {\n f = qC(b << 3) | 0;break;\n }\n } else f = 0; while (0);c[a >> 2] = f;e = f + (d << 3) | 0;c[a + 8 >> 2] = e;c[a + 4 >> 2] = e;c[a + 12 >> 2] = f + (b << 3);return;\n }function eA(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;e = c[a >> 2] | 0;h = a + 4 | 0;g = b + 4 | 0;f = (c[h >> 2] | 0) - e | 0;d = (c[g >> 2] | 0) + (0 - (f >> 3) << 3) | 0;c[g >> 2] = d;if ((f | 0) > 0) {\n BC(d | 0, e | 0, f | 0) | 0;e = g;d = c[g >> 2] | 0;\n } else e = g;g = c[a >> 2] | 0;c[a >> 2] = d;c[e >> 2] = g;g = b + 8 | 0;f = c[h >> 2] | 0;c[h >> 2] = c[g >> 2];c[g >> 2] = f;g = a + 8 | 0;h = b + 12 | 0;a = c[g >> 2] | 0;c[g >> 2] = c[h >> 2];c[h >> 2] = a;c[b >> 2] = c[e >> 2];return;\n }function fA(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;b = c[a + 4 >> 2] | 0;d = a + 8 | 0;e = c[d >> 2] | 0;if ((e | 0) != (b | 0)) c[d >> 2] = e + (~((e + -8 - b | 0) >>> 3) << 3);a = c[a >> 2] | 0;if (a | 0) sC(a);return;\n }function gA(a) {\n a = a | 0;jA(a);return;\n }function hA(a) {\n a = a | 0;iA(a + 24 | 0);return;\n }function iA(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function jA(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 1, 12, b, kA() | 0, 2);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function kA() {\n return 1896;\n }function lA(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;nA(c[(mA(a) | 0) >> 2] | 0, b, d);return;\n }function mA(a) {\n a = a | 0;return (c[(Zz() | 0) + 24 >> 2] | 0) + (a << 3) | 0;\n }function nA(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;var d = 0,\n e = 0,\n f = 0;d = l;l = l + 16 | 0;f = d + 4 | 0;e = d;oA(f, b);b = pA(f, b) | 0;ik(e, c);c = jk(e, c) | 0;ob[a & 31](b, c);kk(e);l = d;return;\n }function oA(a, b) {\n a = a | 0;b = b | 0;return;\n }function pA(a, b) {\n a = a | 0;b = b | 0;return qA(b) | 0;\n }function qA(a) {\n a = a | 0;return a | 0;\n }function rA() {\n var b = 0;if (!(a[8080] | 0)) {\n sA(11040);Ha(70, 11040, o | 0) | 0;b = 8080;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }if (!(si(11040) | 0)) sA(11040);return 11040;\n }function sA(a) {\n a = a | 0;vA(a);Gt(a, 71);return;\n }function tA(a) {\n a = a | 0;uA(a + 24 | 0);return;\n }function uA(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0;d = c[a >> 2] | 0;e = d;if (d | 0) {\n a = a + 4 | 0;b = c[a >> 2] | 0;if ((b | 0) != (d | 0)) c[a >> 2] = b + (~((b + -8 - e | 0) >>> 3) << 3);sC(d);\n }return;\n }function vA(a) {\n a = a | 0;var b = 0;b = vi() | 0;yi(a, 5, 7, b, zA() | 0, 0);c[a + 24 >> 2] = 0;c[a + 28 >> 2] = 0;c[a + 32 >> 2] = 0;return;\n }function wA(a) {\n a = a | 0;xA(a);return;\n }function xA(a) {\n a = a | 0;yA(a);return;\n }function yA(b) {\n b = b | 0;a[b + 8 >> 0] = 1;return;\n }function zA() {\n return 1936;\n }function AA() {\n return BA() | 0;\n }function BA() {\n var a = 0,\n b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0;b = l;l = l + 16 | 0;f = b + 4 | 0;h = b;d = jy(8) | 0;a = d;g = a + 4 | 0;c[g >> 2] = qC(1) | 0;e = qC(8) | 0;g = c[g >> 2] | 0;c[h >> 2] = 0;c[f >> 2] = c[h >> 2];CA(e, g, f);c[d >> 2] = e;l = b;return a | 0;\n }function CA(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;c[a >> 2] = b;d = qC(16) | 0;c[d + 4 >> 2] = 0;c[d + 8 >> 2] = 0;c[d >> 2] = 1916;c[d + 12 >> 2] = b;c[a + 4 >> 2] = d;return;\n }function DA(a) {\n a = a | 0;kC(a);sC(a);return;\n }function EA(a) {\n a = a | 0;a = c[a + 12 >> 2] | 0;if (a | 0) sC(a);return;\n }function FA(a) {\n a = a | 0;sC(a);return;\n }function GA() {\n var b = 0;if (!(a[8088] | 0)) {\n NA(11076);Ha(25, 11076, o | 0) | 0;b = 8088;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 11076;\n }function HA(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = IA() | 0;c[a + 4 >> 2] = JA() | 0;c[a + 12 >> 2] = b;c[a + 8 >> 2] = KA() | 0;c[a + 32 >> 2] = 10;return;\n }function IA() {\n return 11745;\n }function JA() {\n return 1940;\n }function KA() {\n return lr() | 0;\n }function LA(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;if ((jr(d, 896) | 0) == 512) {\n if (c | 0) {\n MA(c);sC(c);\n }\n } else if (b | 0) sC(b);return;\n }function MA(a) {\n a = a | 0;a = c[a + 4 >> 2] | 0;if (a | 0) oC(a);return;\n }function NA(a) {\n a = a | 0;Zi(a);return;\n }function OA(a, b) {\n a = a | 0;b = b | 0;c[a >> 2] = b;return;\n }function PA(a) {\n a = a | 0;return c[a >> 2] | 0;\n }function QA(b) {\n b = b | 0;return a[c[b >> 2] >> 0] | 0;\n }function RA(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;c[e >> 2] = c[a >> 2];SA(b, e) | 0;l = d;return;\n }function SA(a, b) {\n a = a | 0;b = b | 0;var d = 0;d = TA(c[a >> 2] | 0, b) | 0;b = a + 4 | 0;c[(c[b >> 2] | 0) + 8 >> 2] = d;return c[(c[b >> 2] | 0) + 8 >> 2] | 0;\n }function TA(a, b) {\n a = a | 0;b = b | 0;var d = 0,\n e = 0;d = l;l = l + 16 | 0;e = d;UA(e);a = Sg(a) | 0;b = VA(a, c[b >> 2] | 0) | 0;WA(e);l = d;return b | 0;\n }function UA(a) {\n a = a | 0;c[a >> 2] = c[2701];c[a + 4 >> 2] = c[2703];return;\n }function VA(a, b) {\n a = a | 0;b = b | 0;var c = 0;c = Vg(XA() | 0) | 0;return bb(0, c | 0, a | 0, sw(b) | 0) | 0;\n }function WA(a) {\n a = a | 0;xy(c[a >> 2] | 0, c[a + 4 >> 2] | 0);return;\n }function XA() {\n var b = 0;if (!(a[8096] | 0)) {\n YA(11120);b = 8096;c[b >> 2] = 1;c[b + 4 >> 2] = 0;\n }return 11120;\n }function YA(a) {\n a = a | 0;fh(a, ZA() | 0, 1);return;\n }function ZA() {\n return 1948;\n }function _A() {\n $A();return;\n }function $A() {\n var b = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0,\n t = 0;s = l;l = l + 16 | 0;o = s + 4 | 0;p = s;Ea(65536, 10804, c[2702] | 0, 10812);f = Wv() | 0;e = c[f >> 2] | 0;b = c[e >> 2] | 0;if (b | 0) {\n g = c[f + 8 >> 2] | 0;f = c[f + 4 >> 2] | 0;while (1) {\n Ma(b | 0, d[f >> 0] | 0 | 0, a[g >> 0] | 0);e = e + 4 | 0;b = c[e >> 2] | 0;if (!b) break;else {\n g = g + 1 | 0;f = f + 1 | 0;\n }\n }\n }b = Yv() | 0;e = c[b >> 2] | 0;if (e | 0) do {\n Na(e | 0, c[b + 4 >> 2] | 0);b = b + 8 | 0;e = c[b >> 2] | 0;\n } while ((e | 0) != 0);Na(aB() | 0, 5167);n = Iv() | 0;b = c[n >> 2] | 0;a: do if (b | 0) {\n do {\n bB(c[b + 4 >> 2] | 0);b = c[b >> 2] | 0;\n } while ((b | 0) != 0);b = c[n >> 2] | 0;if (b | 0) {\n m = n;do {\n while (1) {\n h = b;b = c[b >> 2] | 0;h = c[h + 4 >> 2] | 0;if (!(cB(h) | 0)) break;c[p >> 2] = m;c[o >> 2] = c[p >> 2];dB(n, o) | 0;if (!b) break a;\n }eB(h);m = c[m >> 2] | 0;e = fB(h) | 0;i = Va() | 0;j = l;l = l + ((1 * (e << 2) | 0) + 15 & -16) | 0;k = l;l = l + ((1 * (e << 2) | 0) + 15 & -16) | 0;e = c[(Zw(h) | 0) >> 2] | 0;if (e | 0) {\n f = j;g = k;while (1) {\n c[f >> 2] = c[(Xw(c[e + 4 >> 2] | 0) | 0) >> 2];c[g >> 2] = c[e + 8 >> 2];e = c[e >> 2] | 0;if (!e) break;else {\n f = f + 4 | 0;g = g + 4 | 0;\n }\n }\n }t = Xw(h) | 0;e = gB(h) | 0;f = fB(h) | 0;g = hB(h) | 0;Ra(t | 0, e | 0, j | 0, k | 0, f | 0, g | 0, Tv(h) | 0);Ga(i | 0);\n } while ((b | 0) != 0);\n }\n } while (0);b = c[(Vv() | 0) >> 2] | 0;if (b | 0) do {\n t = b + 4 | 0;n = aw(t) | 0;h = fw(n) | 0;i = bw(n) | 0;j = (cw(n) | 0) + 1 | 0;k = iB(n) | 0;m = jB(t) | 0;n = si(n) | 0;o = hw(t) | 0;p = kB(t) | 0;Pa(0, h | 0, i | 0, j | 0, k | 0, m | 0, n | 0, o | 0, p | 0, lB(t) | 0);b = c[b >> 2] | 0;\n } while ((b | 0) != 0);b = c[(Iv() | 0) >> 2] | 0;b: do if (b | 0) {\n c: while (1) {\n e = c[b + 4 >> 2] | 0;if (e | 0 ? (q = c[(Xw(e) | 0) >> 2] | 0, r = c[(ax(e) | 0) >> 2] | 0, r | 0) : 0) {\n f = r;do {\n e = f + 4 | 0;g = aw(e) | 0;d: do if (g | 0) switch (si(g) | 0) {case 0:\n break c;case 4:case 3:case 2:\n {\n k = fw(g) | 0;m = bw(g) | 0;n = (cw(g) | 0) + 1 | 0;o = iB(g) | 0;p = si(g) | 0;t = hw(e) | 0;Pa(q | 0, k | 0, m | 0, n | 0, o | 0, 0, p | 0, t | 0, kB(e) | 0, lB(e) | 0);break d;\n }case 1:\n {\n j = fw(g) | 0;k = bw(g) | 0;m = (cw(g) | 0) + 1 | 0;n = iB(g) | 0;o = jB(e) | 0;p = si(g) | 0;t = hw(e) | 0;Pa(q | 0, j | 0, k | 0, m | 0, n | 0, o | 0, p | 0, t | 0, kB(e) | 0, lB(e) | 0);break d;\n }case 5:\n {\n n = fw(g) | 0;o = bw(g) | 0;p = (cw(g) | 0) + 1 | 0;t = iB(g) | 0;Pa(q | 0, n | 0, o | 0, p | 0, t | 0, mB(g) | 0, si(g) | 0, 0, 0, 0);break d;\n }default:\n break d;} while (0);f = c[f >> 2] | 0;\n } while ((f | 0) != 0);\n }b = c[b >> 2] | 0;if (!b) break b;\n }Ta();\n } while (0);Sa();l = s;return;\n }function aB() {\n return 11703;\n }function bB(b) {\n b = b | 0;a[b + 40 >> 0] = 0;return;\n }function cB(b) {\n b = b | 0;return (a[b + 40 >> 0] | 0) != 0 | 0;\n }function dB(a, b) {\n a = a | 0;b = b | 0;b = nB(b) | 0;a = c[b >> 2] | 0;c[b >> 2] = c[a >> 2];sC(a);return c[b >> 2] | 0;\n }function eB(b) {\n b = b | 0;a[b + 40 >> 0] = 1;return;\n }function fB(a) {\n a = a | 0;return c[a + 20 >> 2] | 0;\n }function gB(a) {\n a = a | 0;return c[a + 8 >> 2] | 0;\n }function hB(a) {\n a = a | 0;return c[a + 32 >> 2] | 0;\n }function iB(a) {\n a = a | 0;return c[a + 4 >> 2] | 0;\n }function jB(a) {\n a = a | 0;return c[a + 4 >> 2] | 0;\n }function kB(a) {\n a = a | 0;return c[a + 8 >> 2] | 0;\n }function lB(a) {\n a = a | 0;return c[a + 16 >> 2] | 0;\n }function mB(a) {\n a = a | 0;return c[a + 20 >> 2] | 0;\n }function nB(a) {\n a = a | 0;return c[a >> 2] | 0;\n }\n function oB(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0,\n t = 0,\n u = 0,\n v = 0,\n w = 0,\n x = 0;x = l;l = l + 16 | 0;o = x;do if (a >>> 0 < 245) {\n k = a >>> 0 < 11 ? 16 : a + 11 & -8;a = k >>> 3;n = c[2783] | 0;d = n >>> a;if (d & 3 | 0) {\n b = (d & 1 ^ 1) + a | 0;a = 11172 + (b << 1 << 2) | 0;d = a + 8 | 0;e = c[d >> 2] | 0;f = e + 8 | 0;g = c[f >> 2] | 0;if ((a | 0) == (g | 0)) c[2783] = n & ~(1 << b);else {\n c[g + 12 >> 2] = a;c[d >> 2] = g;\n }w = b << 3;c[e + 4 >> 2] = w | 3;w = e + w + 4 | 0;c[w >> 2] = c[w >> 2] | 1;w = f;l = x;return w | 0;\n }m = c[2785] | 0;if (k >>> 0 > m >>> 0) {\n if (d | 0) {\n b = 2 << a;b = d << a & (b | 0 - b);b = (b & 0 - b) + -1 | 0;h = b >>> 12 & 16;b = b >>> h;d = b >>> 5 & 8;b = b >>> d;f = b >>> 2 & 4;b = b >>> f;a = b >>> 1 & 2;b = b >>> a;e = b >>> 1 & 1;e = (d | h | f | a | e) + (b >>> e) | 0;b = 11172 + (e << 1 << 2) | 0;a = b + 8 | 0;f = c[a >> 2] | 0;h = f + 8 | 0;d = c[h >> 2] | 0;if ((b | 0) == (d | 0)) {\n a = n & ~(1 << e);c[2783] = a;\n } else {\n c[d + 12 >> 2] = b;c[a >> 2] = d;a = n;\n }g = (e << 3) - k | 0;c[f + 4 >> 2] = k | 3;e = f + k | 0;c[e + 4 >> 2] = g | 1;c[e + g >> 2] = g;if (m | 0) {\n f = c[2788] | 0;b = m >>> 3;d = 11172 + (b << 1 << 2) | 0;b = 1 << b;if (!(a & b)) {\n c[2783] = a | b;b = d;a = d + 8 | 0;\n } else {\n a = d + 8 | 0;b = c[a >> 2] | 0;\n }c[a >> 2] = f;c[b + 12 >> 2] = f;c[f + 8 >> 2] = b;c[f + 12 >> 2] = d;\n }c[2785] = g;c[2788] = e;w = h;l = x;return w | 0;\n }i = c[2784] | 0;if (i) {\n d = (i & 0 - i) + -1 | 0;h = d >>> 12 & 16;d = d >>> h;g = d >>> 5 & 8;d = d >>> g;j = d >>> 2 & 4;d = d >>> j;e = d >>> 1 & 2;d = d >>> e;a = d >>> 1 & 1;a = c[11436 + ((g | h | j | e | a) + (d >>> a) << 2) >> 2] | 0;d = (c[a + 4 >> 2] & -8) - k | 0;e = c[a + 16 + (((c[a + 16 >> 2] | 0) == 0 & 1) << 2) >> 2] | 0;if (!e) {\n j = a;g = d;\n } else {\n do {\n h = (c[e + 4 >> 2] & -8) - k | 0;j = h >>> 0 < d >>> 0;d = j ? h : d;a = j ? e : a;e = c[e + 16 + (((c[e + 16 >> 2] | 0) == 0 & 1) << 2) >> 2] | 0;\n } while ((e | 0) != 0);j = a;g = d;\n }h = j + k | 0;if (j >>> 0 < h >>> 0) {\n f = c[j + 24 >> 2] | 0;b = c[j + 12 >> 2] | 0;do if ((b | 0) == (j | 0)) {\n a = j + 20 | 0;b = c[a >> 2] | 0;if (!b) {\n a = j + 16 | 0;b = c[a >> 2] | 0;if (!b) {\n d = 0;break;\n }\n }while (1) {\n d = b + 20 | 0;e = c[d >> 2] | 0;if (e | 0) {\n b = e;a = d;continue;\n }d = b + 16 | 0;e = c[d >> 2] | 0;if (!e) break;else {\n b = e;a = d;\n }\n }c[a >> 2] = 0;d = b;\n } else {\n d = c[j + 8 >> 2] | 0;c[d + 12 >> 2] = b;c[b + 8 >> 2] = d;d = b;\n } while (0);do if (f | 0) {\n b = c[j + 28 >> 2] | 0;a = 11436 + (b << 2) | 0;if ((j | 0) == (c[a >> 2] | 0)) {\n c[a >> 2] = d;if (!d) {\n c[2784] = i & ~(1 << b);break;\n }\n } else {\n c[f + 16 + (((c[f + 16 >> 2] | 0) != (j | 0) & 1) << 2) >> 2] = d;if (!d) break;\n }c[d + 24 >> 2] = f;b = c[j + 16 >> 2] | 0;if (b | 0) {\n c[d + 16 >> 2] = b;c[b + 24 >> 2] = d;\n }b = c[j + 20 >> 2] | 0;if (b | 0) {\n c[d + 20 >> 2] = b;c[b + 24 >> 2] = d;\n }\n } while (0);if (g >>> 0 < 16) {\n w = g + k | 0;c[j + 4 >> 2] = w | 3;w = j + w + 4 | 0;c[w >> 2] = c[w >> 2] | 1;\n } else {\n c[j + 4 >> 2] = k | 3;c[h + 4 >> 2] = g | 1;c[h + g >> 2] = g;if (m | 0) {\n e = c[2788] | 0;b = m >>> 3;d = 11172 + (b << 1 << 2) | 0;b = 1 << b;if (!(n & b)) {\n c[2783] = n | b;b = d;a = d + 8 | 0;\n } else {\n a = d + 8 | 0;b = c[a >> 2] | 0;\n }c[a >> 2] = e;c[b + 12 >> 2] = e;c[e + 8 >> 2] = b;c[e + 12 >> 2] = d;\n }c[2785] = g;c[2788] = h;\n }w = j + 8 | 0;l = x;return w | 0;\n } else n = k;\n } else n = k;\n } else n = k;\n } else if (a >>> 0 <= 4294967231) {\n a = a + 11 | 0;k = a & -8;j = c[2784] | 0;if (j) {\n e = 0 - k | 0;a = a >>> 8;if (a) {\n if (k >>> 0 > 16777215) i = 31;else {\n n = (a + 1048320 | 0) >>> 16 & 8;v = a << n;m = (v + 520192 | 0) >>> 16 & 4;v = v << m;i = (v + 245760 | 0) >>> 16 & 2;i = 14 - (m | n | i) + (v << i >>> 15) | 0;i = k >>> (i + 7 | 0) & 1 | i << 1;\n }\n } else i = 0;d = c[11436 + (i << 2) >> 2] | 0;a: do if (!d) {\n d = 0;a = 0;v = 57;\n } else {\n a = 0;h = k << ((i | 0) == 31 ? 0 : 25 - (i >>> 1) | 0);g = 0;while (1) {\n f = (c[d + 4 >> 2] & -8) - k | 0;if (f >>> 0 < e >>> 0) if (!f) {\n a = d;e = 0;f = d;v = 61;break a;\n } else {\n a = d;e = f;\n }f = c[d + 20 >> 2] | 0;d = c[d + 16 + (h >>> 31 << 2) >> 2] | 0;g = (f | 0) == 0 | (f | 0) == (d | 0) ? g : f;f = (d | 0) == 0;if (f) {\n d = g;v = 57;break;\n } else h = h << ((f ^ 1) & 1);\n }\n } while (0);if ((v | 0) == 57) {\n if ((d | 0) == 0 & (a | 0) == 0) {\n a = 2 << i;a = j & (a | 0 - a);if (!a) {\n n = k;break;\n }n = (a & 0 - a) + -1 | 0;h = n >>> 12 & 16;n = n >>> h;g = n >>> 5 & 8;n = n >>> g;i = n >>> 2 & 4;n = n >>> i;m = n >>> 1 & 2;n = n >>> m;d = n >>> 1 & 1;a = 0;d = c[11436 + ((g | h | i | m | d) + (n >>> d) << 2) >> 2] | 0;\n }if (!d) {\n i = a;h = e;\n } else {\n f = d;v = 61;\n }\n }if ((v | 0) == 61) while (1) {\n v = 0;d = (c[f + 4 >> 2] & -8) - k | 0;n = d >>> 0 < e >>> 0;d = n ? d : e;a = n ? f : a;f = c[f + 16 + (((c[f + 16 >> 2] | 0) == 0 & 1) << 2) >> 2] | 0;if (!f) {\n i = a;h = d;break;\n } else {\n e = d;v = 61;\n }\n }if ((i | 0) != 0 ? h >>> 0 < ((c[2785] | 0) - k | 0) >>> 0 : 0) {\n g = i + k | 0;if (i >>> 0 >= g >>> 0) {\n w = 0;l = x;return w | 0;\n }f = c[i + 24 >> 2] | 0;b = c[i + 12 >> 2] | 0;do if ((b | 0) == (i | 0)) {\n a = i + 20 | 0;b = c[a >> 2] | 0;if (!b) {\n a = i + 16 | 0;b = c[a >> 2] | 0;if (!b) {\n b = 0;break;\n }\n }while (1) {\n d = b + 20 | 0;e = c[d >> 2] | 0;if (e | 0) {\n b = e;a = d;continue;\n }d = b + 16 | 0;e = c[d >> 2] | 0;if (!e) break;else {\n b = e;a = d;\n }\n }c[a >> 2] = 0;\n } else {\n w = c[i + 8 >> 2] | 0;c[w + 12 >> 2] = b;c[b + 8 >> 2] = w;\n } while (0);do if (f) {\n a = c[i + 28 >> 2] | 0;d = 11436 + (a << 2) | 0;if ((i | 0) == (c[d >> 2] | 0)) {\n c[d >> 2] = b;if (!b) {\n e = j & ~(1 << a);c[2784] = e;break;\n }\n } else {\n c[f + 16 + (((c[f + 16 >> 2] | 0) != (i | 0) & 1) << 2) >> 2] = b;if (!b) {\n e = j;break;\n }\n }c[b + 24 >> 2] = f;a = c[i + 16 >> 2] | 0;if (a | 0) {\n c[b + 16 >> 2] = a;c[a + 24 >> 2] = b;\n }a = c[i + 20 >> 2] | 0;if (a) {\n c[b + 20 >> 2] = a;c[a + 24 >> 2] = b;e = j;\n } else e = j;\n } else e = j; while (0);do if (h >>> 0 >= 16) {\n c[i + 4 >> 2] = k | 3;c[g + 4 >> 2] = h | 1;c[g + h >> 2] = h;b = h >>> 3;if (h >>> 0 < 256) {\n d = 11172 + (b << 1 << 2) | 0;a = c[2783] | 0;b = 1 << b;if (!(a & b)) {\n c[2783] = a | b;b = d;a = d + 8 | 0;\n } else {\n a = d + 8 | 0;b = c[a >> 2] | 0;\n }c[a >> 2] = g;c[b + 12 >> 2] = g;c[g + 8 >> 2] = b;c[g + 12 >> 2] = d;break;\n }b = h >>> 8;if (b) {\n if (h >>> 0 > 16777215) b = 31;else {\n v = (b + 1048320 | 0) >>> 16 & 8;w = b << v;u = (w + 520192 | 0) >>> 16 & 4;w = w << u;b = (w + 245760 | 0) >>> 16 & 2;b = 14 - (u | v | b) + (w << b >>> 15) | 0;b = h >>> (b + 7 | 0) & 1 | b << 1;\n }\n } else b = 0;d = 11436 + (b << 2) | 0;c[g + 28 >> 2] = b;a = g + 16 | 0;c[a + 4 >> 2] = 0;c[a >> 2] = 0;a = 1 << b;if (!(e & a)) {\n c[2784] = e | a;c[d >> 2] = g;c[g + 24 >> 2] = d;c[g + 12 >> 2] = g;c[g + 8 >> 2] = g;break;\n }a = h << ((b | 0) == 31 ? 0 : 25 - (b >>> 1) | 0);d = c[d >> 2] | 0;while (1) {\n if ((c[d + 4 >> 2] & -8 | 0) == (h | 0)) {\n v = 97;break;\n }e = d + 16 + (a >>> 31 << 2) | 0;b = c[e >> 2] | 0;if (!b) {\n v = 96;break;\n } else {\n a = a << 1;d = b;\n }\n }if ((v | 0) == 96) {\n c[e >> 2] = g;c[g + 24 >> 2] = d;c[g + 12 >> 2] = g;c[g + 8 >> 2] = g;break;\n } else if ((v | 0) == 97) {\n v = d + 8 | 0;w = c[v >> 2] | 0;c[w + 12 >> 2] = g;c[v >> 2] = g;c[g + 8 >> 2] = w;c[g + 12 >> 2] = d;c[g + 24 >> 2] = 0;break;\n }\n } else {\n w = h + k | 0;c[i + 4 >> 2] = w | 3;w = i + w + 4 | 0;c[w >> 2] = c[w >> 2] | 1;\n } while (0);w = i + 8 | 0;l = x;return w | 0;\n } else n = k;\n } else n = k;\n } else n = -1; while (0);d = c[2785] | 0;if (d >>> 0 >= n >>> 0) {\n b = d - n | 0;a = c[2788] | 0;if (b >>> 0 > 15) {\n w = a + n | 0;c[2788] = w;c[2785] = b;c[w + 4 >> 2] = b | 1;c[w + b >> 2] = b;c[a + 4 >> 2] = n | 3;\n } else {\n c[2785] = 0;c[2788] = 0;c[a + 4 >> 2] = d | 3;w = a + d + 4 | 0;c[w >> 2] = c[w >> 2] | 1;\n }w = a + 8 | 0;l = x;return w | 0;\n }h = c[2786] | 0;if (h >>> 0 > n >>> 0) {\n u = h - n | 0;c[2786] = u;w = c[2789] | 0;v = w + n | 0;c[2789] = v;c[v + 4 >> 2] = u | 1;c[w + 4 >> 2] = n | 3;w = w + 8 | 0;l = x;return w | 0;\n }if (!(c[2901] | 0)) {\n c[2903] = 4096;c[2902] = 4096;c[2904] = -1;c[2905] = -1;c[2906] = 0;c[2894] = 0;a = o & -16 ^ 1431655768;c[o >> 2] = a;c[2901] = a;a = 4096;\n } else a = c[2903] | 0;i = n + 48 | 0;j = n + 47 | 0;g = a + j | 0;f = 0 - a | 0;k = g & f;if (k >>> 0 <= n >>> 0) {\n w = 0;l = x;return w | 0;\n }a = c[2893] | 0;if (a | 0 ? (m = c[2891] | 0, o = m + k | 0, o >>> 0 <= m >>> 0 | o >>> 0 > a >>> 0) : 0) {\n w = 0;l = x;return w | 0;\n }b: do if (!(c[2894] & 4)) {\n d = c[2789] | 0;c: do if (d) {\n e = 11580;while (1) {\n a = c[e >> 2] | 0;if (a >>> 0 <= d >>> 0 ? (r = e + 4 | 0, (a + (c[r >> 2] | 0) | 0) >>> 0 > d >>> 0) : 0) break;a = c[e + 8 >> 2] | 0;if (!a) {\n v = 118;break c;\n } else e = a;\n }b = g - h & f;if (b >>> 0 < 2147483647) {\n a = FC(b | 0) | 0;if ((a | 0) == ((c[e >> 2] | 0) + (c[r >> 2] | 0) | 0)) {\n if ((a | 0) != (-1 | 0)) {\n h = b;g = a;v = 135;break b;\n }\n } else {\n e = a;v = 126;\n }\n } else b = 0;\n } else v = 118; while (0);do if ((v | 0) == 118) {\n d = FC(0) | 0;if ((d | 0) != (-1 | 0) ? (b = d, p = c[2902] | 0, q = p + -1 | 0, b = ((q & b | 0) == 0 ? 0 : (q + b & 0 - p) - b | 0) + k | 0, p = c[2891] | 0, q = b + p | 0, b >>> 0 > n >>> 0 & b >>> 0 < 2147483647) : 0) {\n r = c[2893] | 0;if (r | 0 ? q >>> 0 <= p >>> 0 | q >>> 0 > r >>> 0 : 0) {\n b = 0;break;\n }a = FC(b | 0) | 0;if ((a | 0) == (d | 0)) {\n h = b;g = d;v = 135;break b;\n } else {\n e = a;v = 126;\n }\n } else b = 0;\n } while (0);do if ((v | 0) == 126) {\n d = 0 - b | 0;if (!(i >>> 0 > b >>> 0 & (b >>> 0 < 2147483647 & (e | 0) != (-1 | 0)))) if ((e | 0) == (-1 | 0)) {\n b = 0;break;\n } else {\n h = b;g = e;v = 135;break b;\n }a = c[2903] | 0;a = j - b + a & 0 - a;if (a >>> 0 >= 2147483647) {\n h = b;g = e;v = 135;break b;\n }if ((FC(a | 0) | 0) == (-1 | 0)) {\n FC(d | 0) | 0;b = 0;break;\n } else {\n h = a + b | 0;g = e;v = 135;break b;\n }\n } while (0);c[2894] = c[2894] | 4;v = 133;\n } else {\n b = 0;v = 133;\n } while (0);if (((v | 0) == 133 ? k >>> 0 < 2147483647 : 0) ? (u = FC(k | 0) | 0, r = FC(0) | 0, s = r - u | 0, t = s >>> 0 > (n + 40 | 0) >>> 0, !((u | 0) == (-1 | 0) | t ^ 1 | u >>> 0 < r >>> 0 & ((u | 0) != (-1 | 0) & (r | 0) != (-1 | 0)) ^ 1)) : 0) {\n h = t ? s : b;g = u;v = 135;\n }if ((v | 0) == 135) {\n b = (c[2891] | 0) + h | 0;c[2891] = b;if (b >>> 0 > (c[2892] | 0) >>> 0) c[2892] = b;j = c[2789] | 0;do if (j) {\n b = 11580;while (1) {\n a = c[b >> 2] | 0;d = b + 4 | 0;e = c[d >> 2] | 0;if ((g | 0) == (a + e | 0)) {\n v = 145;break;\n }f = c[b + 8 >> 2] | 0;if (!f) break;else b = f;\n }if (((v | 0) == 145 ? (c[b + 12 >> 2] & 8 | 0) == 0 : 0) ? j >>> 0 < g >>> 0 & j >>> 0 >= a >>> 0 : 0) {\n c[d >> 2] = e + h;w = j + 8 | 0;w = (w & 7 | 0) == 0 ? 0 : 0 - w & 7;v = j + w | 0;w = (c[2786] | 0) + (h - w) | 0;c[2789] = v;c[2786] = w;c[v + 4 >> 2] = w | 1;c[v + w + 4 >> 2] = 40;c[2790] = c[2905];break;\n }if (g >>> 0 < (c[2787] | 0) >>> 0) c[2787] = g;d = g + h | 0;b = 11580;while (1) {\n if ((c[b >> 2] | 0) == (d | 0)) {\n v = 153;break;\n }a = c[b + 8 >> 2] | 0;if (!a) break;else b = a;\n }if ((v | 0) == 153 ? (c[b + 12 >> 2] & 8 | 0) == 0 : 0) {\n c[b >> 2] = g;m = b + 4 | 0;c[m >> 2] = (c[m >> 2] | 0) + h;m = g + 8 | 0;m = g + ((m & 7 | 0) == 0 ? 0 : 0 - m & 7) | 0;b = d + 8 | 0;b = d + ((b & 7 | 0) == 0 ? 0 : 0 - b & 7) | 0;k = m + n | 0;i = b - m - n | 0;c[m + 4 >> 2] = n | 3;do if ((b | 0) != (j | 0)) {\n if ((b | 0) == (c[2788] | 0)) {\n w = (c[2785] | 0) + i | 0;c[2785] = w;c[2788] = k;c[k + 4 >> 2] = w | 1;c[k + w >> 2] = w;break;\n }a = c[b + 4 >> 2] | 0;if ((a & 3 | 0) == 1) {\n h = a & -8;e = a >>> 3;d: do if (a >>> 0 < 256) {\n a = c[b + 8 >> 2] | 0;d = c[b + 12 >> 2] | 0;if ((d | 0) == (a | 0)) {\n c[2783] = c[2783] & ~(1 << e);break;\n } else {\n c[a + 12 >> 2] = d;c[d + 8 >> 2] = a;break;\n }\n } else {\n g = c[b + 24 >> 2] | 0;a = c[b + 12 >> 2] | 0;do if ((a | 0) == (b | 0)) {\n e = b + 16 | 0;d = e + 4 | 0;a = c[d >> 2] | 0;if (!a) {\n a = c[e >> 2] | 0;if (!a) {\n a = 0;break;\n } else d = e;\n }while (1) {\n e = a + 20 | 0;f = c[e >> 2] | 0;if (f | 0) {\n a = f;d = e;continue;\n }e = a + 16 | 0;f = c[e >> 2] | 0;if (!f) break;else {\n a = f;d = e;\n }\n }c[d >> 2] = 0;\n } else {\n w = c[b + 8 >> 2] | 0;c[w + 12 >> 2] = a;c[a + 8 >> 2] = w;\n } while (0);if (!g) break;d = c[b + 28 >> 2] | 0;e = 11436 + (d << 2) | 0;do if ((b | 0) != (c[e >> 2] | 0)) {\n c[g + 16 + (((c[g + 16 >> 2] | 0) != (b | 0) & 1) << 2) >> 2] = a;if (!a) break d;\n } else {\n c[e >> 2] = a;if (a | 0) break;c[2784] = c[2784] & ~(1 << d);break d;\n } while (0);c[a + 24 >> 2] = g;d = b + 16 | 0;e = c[d >> 2] | 0;if (e | 0) {\n c[a + 16 >> 2] = e;c[e + 24 >> 2] = a;\n }d = c[d + 4 >> 2] | 0;if (!d) break;c[a + 20 >> 2] = d;c[d + 24 >> 2] = a;\n } while (0);b = b + h | 0;f = h + i | 0;\n } else f = i;b = b + 4 | 0;c[b >> 2] = c[b >> 2] & -2;c[k + 4 >> 2] = f | 1;c[k + f >> 2] = f;b = f >>> 3;if (f >>> 0 < 256) {\n d = 11172 + (b << 1 << 2) | 0;a = c[2783] | 0;b = 1 << b;if (!(a & b)) {\n c[2783] = a | b;b = d;a = d + 8 | 0;\n } else {\n a = d + 8 | 0;b = c[a >> 2] | 0;\n }c[a >> 2] = k;c[b + 12 >> 2] = k;c[k + 8 >> 2] = b;c[k + 12 >> 2] = d;break;\n }b = f >>> 8;do if (!b) b = 0;else {\n if (f >>> 0 > 16777215) {\n b = 31;break;\n }v = (b + 1048320 | 0) >>> 16 & 8;w = b << v;u = (w + 520192 | 0) >>> 16 & 4;w = w << u;b = (w + 245760 | 0) >>> 16 & 2;b = 14 - (u | v | b) + (w << b >>> 15) | 0;b = f >>> (b + 7 | 0) & 1 | b << 1;\n } while (0);e = 11436 + (b << 2) | 0;c[k + 28 >> 2] = b;a = k + 16 | 0;c[a + 4 >> 2] = 0;c[a >> 2] = 0;a = c[2784] | 0;d = 1 << b;if (!(a & d)) {\n c[2784] = a | d;c[e >> 2] = k;c[k + 24 >> 2] = e;c[k + 12 >> 2] = k;c[k + 8 >> 2] = k;break;\n }a = f << ((b | 0) == 31 ? 0 : 25 - (b >>> 1) | 0);d = c[e >> 2] | 0;while (1) {\n if ((c[d + 4 >> 2] & -8 | 0) == (f | 0)) {\n v = 194;break;\n }e = d + 16 + (a >>> 31 << 2) | 0;b = c[e >> 2] | 0;if (!b) {\n v = 193;break;\n } else {\n a = a << 1;d = b;\n }\n }if ((v | 0) == 193) {\n c[e >> 2] = k;c[k + 24 >> 2] = d;c[k + 12 >> 2] = k;c[k + 8 >> 2] = k;break;\n } else if ((v | 0) == 194) {\n v = d + 8 | 0;w = c[v >> 2] | 0;c[w + 12 >> 2] = k;c[v >> 2] = k;c[k + 8 >> 2] = w;c[k + 12 >> 2] = d;c[k + 24 >> 2] = 0;break;\n }\n } else {\n w = (c[2786] | 0) + i | 0;c[2786] = w;c[2789] = k;c[k + 4 >> 2] = w | 1;\n } while (0);w = m + 8 | 0;l = x;return w | 0;\n }b = 11580;while (1) {\n a = c[b >> 2] | 0;if (a >>> 0 <= j >>> 0 ? (w = a + (c[b + 4 >> 2] | 0) | 0, w >>> 0 > j >>> 0) : 0) break;b = c[b + 8 >> 2] | 0;\n }f = w + -47 | 0;a = f + 8 | 0;a = f + ((a & 7 | 0) == 0 ? 0 : 0 - a & 7) | 0;f = j + 16 | 0;a = a >>> 0 < f >>> 0 ? j : a;b = a + 8 | 0;d = g + 8 | 0;d = (d & 7 | 0) == 0 ? 0 : 0 - d & 7;v = g + d | 0;d = h + -40 - d | 0;c[2789] = v;c[2786] = d;c[v + 4 >> 2] = d | 1;c[v + d + 4 >> 2] = 40;c[2790] = c[2905];d = a + 4 | 0;c[d >> 2] = 27;c[b >> 2] = c[2895];c[b + 4 >> 2] = c[2896];c[b + 8 >> 2] = c[2897];c[b + 12 >> 2] = c[2898];c[2895] = g;c[2896] = h;c[2898] = 0;c[2897] = b;b = a + 24 | 0;do {\n v = b;b = b + 4 | 0;c[b >> 2] = 7;\n } while ((v + 8 | 0) >>> 0 < w >>> 0);if ((a | 0) != (j | 0)) {\n g = a - j | 0;c[d >> 2] = c[d >> 2] & -2;c[j + 4 >> 2] = g | 1;c[a >> 2] = g;b = g >>> 3;if (g >>> 0 < 256) {\n d = 11172 + (b << 1 << 2) | 0;a = c[2783] | 0;b = 1 << b;if (!(a & b)) {\n c[2783] = a | b;b = d;a = d + 8 | 0;\n } else {\n a = d + 8 | 0;b = c[a >> 2] | 0;\n }c[a >> 2] = j;c[b + 12 >> 2] = j;c[j + 8 >> 2] = b;c[j + 12 >> 2] = d;break;\n }b = g >>> 8;if (b) {\n if (g >>> 0 > 16777215) d = 31;else {\n v = (b + 1048320 | 0) >>> 16 & 8;w = b << v;u = (w + 520192 | 0) >>> 16 & 4;w = w << u;d = (w + 245760 | 0) >>> 16 & 2;d = 14 - (u | v | d) + (w << d >>> 15) | 0;d = g >>> (d + 7 | 0) & 1 | d << 1;\n }\n } else d = 0;e = 11436 + (d << 2) | 0;c[j + 28 >> 2] = d;c[j + 20 >> 2] = 0;c[f >> 2] = 0;b = c[2784] | 0;a = 1 << d;if (!(b & a)) {\n c[2784] = b | a;c[e >> 2] = j;c[j + 24 >> 2] = e;c[j + 12 >> 2] = j;c[j + 8 >> 2] = j;break;\n }a = g << ((d | 0) == 31 ? 0 : 25 - (d >>> 1) | 0);d = c[e >> 2] | 0;while (1) {\n if ((c[d + 4 >> 2] & -8 | 0) == (g | 0)) {\n v = 216;break;\n }e = d + 16 + (a >>> 31 << 2) | 0;b = c[e >> 2] | 0;if (!b) {\n v = 215;break;\n } else {\n a = a << 1;d = b;\n }\n }if ((v | 0) == 215) {\n c[e >> 2] = j;c[j + 24 >> 2] = d;c[j + 12 >> 2] = j;c[j + 8 >> 2] = j;break;\n } else if ((v | 0) == 216) {\n v = d + 8 | 0;w = c[v >> 2] | 0;c[w + 12 >> 2] = j;c[v >> 2] = j;c[j + 8 >> 2] = w;c[j + 12 >> 2] = d;c[j + 24 >> 2] = 0;break;\n }\n }\n } else {\n w = c[2787] | 0;if ((w | 0) == 0 | g >>> 0 < w >>> 0) c[2787] = g;c[2895] = g;c[2896] = h;c[2898] = 0;c[2792] = c[2901];c[2791] = -1;b = 0;do {\n w = 11172 + (b << 1 << 2) | 0;c[w + 12 >> 2] = w;c[w + 8 >> 2] = w;b = b + 1 | 0;\n } while ((b | 0) != 32);w = g + 8 | 0;w = (w & 7 | 0) == 0 ? 0 : 0 - w & 7;v = g + w | 0;w = h + -40 - w | 0;c[2789] = v;c[2786] = w;c[v + 4 >> 2] = w | 1;c[v + w + 4 >> 2] = 40;c[2790] = c[2905];\n } while (0);b = c[2786] | 0;if (b >>> 0 > n >>> 0) {\n u = b - n | 0;c[2786] = u;w = c[2789] | 0;v = w + n | 0;c[2789] = v;c[v + 4 >> 2] = u | 1;c[w + 4 >> 2] = n | 3;w = w + 8 | 0;l = x;return w | 0;\n }\n }c[(vB() | 0) >> 2] = 12;w = 0;l = x;return w | 0;\n }function pB(a) {\n a = a | 0;var b = 0,\n d = 0,\n e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;if (!a) return;d = a + -8 | 0;f = c[2787] | 0;a = c[a + -4 >> 2] | 0;b = a & -8;j = d + b | 0;do if (!(a & 1)) {\n e = c[d >> 2] | 0;if (!(a & 3)) return;h = d + (0 - e) | 0;g = e + b | 0;if (h >>> 0 < f >>> 0) return;if ((h | 0) == (c[2788] | 0)) {\n a = j + 4 | 0;b = c[a >> 2] | 0;if ((b & 3 | 0) != 3) {\n i = h;b = g;break;\n }c[2785] = g;c[a >> 2] = b & -2;c[h + 4 >> 2] = g | 1;c[h + g >> 2] = g;return;\n }d = e >>> 3;if (e >>> 0 < 256) {\n a = c[h + 8 >> 2] | 0;b = c[h + 12 >> 2] | 0;if ((b | 0) == (a | 0)) {\n c[2783] = c[2783] & ~(1 << d);i = h;b = g;break;\n } else {\n c[a + 12 >> 2] = b;c[b + 8 >> 2] = a;i = h;b = g;break;\n }\n }f = c[h + 24 >> 2] | 0;a = c[h + 12 >> 2] | 0;do if ((a | 0) == (h | 0)) {\n d = h + 16 | 0;b = d + 4 | 0;a = c[b >> 2] | 0;if (!a) {\n a = c[d >> 2] | 0;if (!a) {\n a = 0;break;\n } else b = d;\n }while (1) {\n d = a + 20 | 0;e = c[d >> 2] | 0;if (e | 0) {\n a = e;b = d;continue;\n }d = a + 16 | 0;e = c[d >> 2] | 0;if (!e) break;else {\n a = e;b = d;\n }\n }c[b >> 2] = 0;\n } else {\n i = c[h + 8 >> 2] | 0;c[i + 12 >> 2] = a;c[a + 8 >> 2] = i;\n } while (0);if (f) {\n b = c[h + 28 >> 2] | 0;d = 11436 + (b << 2) | 0;if ((h | 0) == (c[d >> 2] | 0)) {\n c[d >> 2] = a;if (!a) {\n c[2784] = c[2784] & ~(1 << b);i = h;b = g;break;\n }\n } else {\n c[f + 16 + (((c[f + 16 >> 2] | 0) != (h | 0) & 1) << 2) >> 2] = a;if (!a) {\n i = h;b = g;break;\n }\n }c[a + 24 >> 2] = f;b = h + 16 | 0;d = c[b >> 2] | 0;if (d | 0) {\n c[a + 16 >> 2] = d;c[d + 24 >> 2] = a;\n }b = c[b + 4 >> 2] | 0;if (b) {\n c[a + 20 >> 2] = b;c[b + 24 >> 2] = a;i = h;b = g;\n } else {\n i = h;b = g;\n }\n } else {\n i = h;b = g;\n }\n } else {\n i = d;h = d;\n } while (0);if (h >>> 0 >= j >>> 0) return;a = j + 4 | 0;e = c[a >> 2] | 0;if (!(e & 1)) return;if (!(e & 2)) {\n a = c[2788] | 0;if ((j | 0) == (c[2789] | 0)) {\n j = (c[2786] | 0) + b | 0;c[2786] = j;c[2789] = i;c[i + 4 >> 2] = j | 1;if ((i | 0) != (a | 0)) return;c[2788] = 0;c[2785] = 0;return;\n }if ((j | 0) == (a | 0)) {\n j = (c[2785] | 0) + b | 0;c[2785] = j;c[2788] = h;c[i + 4 >> 2] = j | 1;c[h + j >> 2] = j;return;\n }f = (e & -8) + b | 0;d = e >>> 3;do if (e >>> 0 < 256) {\n b = c[j + 8 >> 2] | 0;a = c[j + 12 >> 2] | 0;if ((a | 0) == (b | 0)) {\n c[2783] = c[2783] & ~(1 << d);break;\n } else {\n c[b + 12 >> 2] = a;c[a + 8 >> 2] = b;break;\n }\n } else {\n g = c[j + 24 >> 2] | 0;a = c[j + 12 >> 2] | 0;do if ((a | 0) == (j | 0)) {\n d = j + 16 | 0;b = d + 4 | 0;a = c[b >> 2] | 0;if (!a) {\n a = c[d >> 2] | 0;if (!a) {\n d = 0;break;\n } else b = d;\n }while (1) {\n d = a + 20 | 0;e = c[d >> 2] | 0;if (e | 0) {\n a = e;b = d;continue;\n }d = a + 16 | 0;e = c[d >> 2] | 0;if (!e) break;else {\n a = e;b = d;\n }\n }c[b >> 2] = 0;d = a;\n } else {\n d = c[j + 8 >> 2] | 0;c[d + 12 >> 2] = a;c[a + 8 >> 2] = d;d = a;\n } while (0);if (g | 0) {\n a = c[j + 28 >> 2] | 0;b = 11436 + (a << 2) | 0;if ((j | 0) == (c[b >> 2] | 0)) {\n c[b >> 2] = d;if (!d) {\n c[2784] = c[2784] & ~(1 << a);break;\n }\n } else {\n c[g + 16 + (((c[g + 16 >> 2] | 0) != (j | 0) & 1) << 2) >> 2] = d;if (!d) break;\n }c[d + 24 >> 2] = g;a = j + 16 | 0;b = c[a >> 2] | 0;if (b | 0) {\n c[d + 16 >> 2] = b;c[b + 24 >> 2] = d;\n }a = c[a + 4 >> 2] | 0;if (a | 0) {\n c[d + 20 >> 2] = a;c[a + 24 >> 2] = d;\n }\n }\n } while (0);c[i + 4 >> 2] = f | 1;c[h + f >> 2] = f;if ((i | 0) == (c[2788] | 0)) {\n c[2785] = f;return;\n }\n } else {\n c[a >> 2] = e & -2;c[i + 4 >> 2] = b | 1;c[h + b >> 2] = b;f = b;\n }a = f >>> 3;if (f >>> 0 < 256) {\n d = 11172 + (a << 1 << 2) | 0;b = c[2783] | 0;a = 1 << a;if (!(b & a)) {\n c[2783] = b | a;a = d;b = d + 8 | 0;\n } else {\n b = d + 8 | 0;a = c[b >> 2] | 0;\n }c[b >> 2] = i;c[a + 12 >> 2] = i;c[i + 8 >> 2] = a;c[i + 12 >> 2] = d;return;\n }a = f >>> 8;if (a) {\n if (f >>> 0 > 16777215) a = 31;else {\n h = (a + 1048320 | 0) >>> 16 & 8;j = a << h;g = (j + 520192 | 0) >>> 16 & 4;j = j << g;a = (j + 245760 | 0) >>> 16 & 2;a = 14 - (g | h | a) + (j << a >>> 15) | 0;a = f >>> (a + 7 | 0) & 1 | a << 1;\n }\n } else a = 0;e = 11436 + (a << 2) | 0;c[i + 28 >> 2] = a;c[i + 20 >> 2] = 0;c[i + 16 >> 2] = 0;b = c[2784] | 0;d = 1 << a;do if (b & d) {\n b = f << ((a | 0) == 31 ? 0 : 25 - (a >>> 1) | 0);d = c[e >> 2] | 0;while (1) {\n if ((c[d + 4 >> 2] & -8 | 0) == (f | 0)) {\n a = 73;break;\n }e = d + 16 + (b >>> 31 << 2) | 0;a = c[e >> 2] | 0;if (!a) {\n a = 72;break;\n } else {\n b = b << 1;d = a;\n }\n }if ((a | 0) == 72) {\n c[e >> 2] = i;c[i + 24 >> 2] = d;c[i + 12 >> 2] = i;c[i + 8 >> 2] = i;break;\n } else if ((a | 0) == 73) {\n h = d + 8 | 0;j = c[h >> 2] | 0;c[j + 12 >> 2] = i;c[h >> 2] = i;c[i + 8 >> 2] = j;c[i + 12 >> 2] = d;c[i + 24 >> 2] = 0;break;\n }\n } else {\n c[2784] = b | d;c[e >> 2] = i;c[i + 24 >> 2] = e;c[i + 12 >> 2] = i;c[i + 8 >> 2] = i;\n } while (0);j = (c[2791] | 0) + -1 | 0;c[2791] = j;if (!j) a = 11588;else return;while (1) {\n a = c[a >> 2] | 0;if (!a) break;else a = a + 8 | 0;\n }c[2791] = -1;return;\n }function qB() {\n return 11628;\n }function rB(a) {\n a = a | 0;var b = 0,\n d = 0;b = l;l = l + 16 | 0;d = b;c[d >> 2] = yB(c[a + 60 >> 2] | 0) | 0;a = uB(db(6, d | 0) | 0) | 0;l = b;return a | 0;\n }function sB(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0;n = l;l = l + 48 | 0;k = n + 16 | 0;g = n;f = n + 32 | 0;i = a + 28 | 0;e = c[i >> 2] | 0;c[f >> 2] = e;j = a + 20 | 0;e = (c[j >> 2] | 0) - e | 0;c[f + 4 >> 2] = e;c[f + 8 >> 2] = b;c[f + 12 >> 2] = d;e = e + d | 0;h = a + 60 | 0;c[g >> 2] = c[h >> 2];c[g + 4 >> 2] = f;c[g + 8 >> 2] = 2;g = uB(gb(146, g | 0) | 0) | 0;a: do if ((e | 0) != (g | 0)) {\n b = 2;while (1) {\n if ((g | 0) < 0) break;e = e - g | 0;p = c[f + 4 >> 2] | 0;o = g >>> 0 > p >>> 0;f = o ? f + 8 | 0 : f;b = (o << 31 >> 31) + b | 0;p = g - (o ? p : 0) | 0;c[f >> 2] = (c[f >> 2] | 0) + p;o = f + 4 | 0;c[o >> 2] = (c[o >> 2] | 0) - p;c[k >> 2] = c[h >> 2];c[k + 4 >> 2] = f;c[k + 8 >> 2] = b;g = uB(gb(146, k | 0) | 0) | 0;if ((e | 0) == (g | 0)) {\n m = 3;break a;\n }\n }c[a + 16 >> 2] = 0;c[i >> 2] = 0;c[j >> 2] = 0;c[a >> 2] = c[a >> 2] | 32;if ((b | 0) == 2) d = 0;else d = d - (c[f + 4 >> 2] | 0) | 0;\n } else m = 3; while (0);if ((m | 0) == 3) {\n p = c[a + 44 >> 2] | 0;c[a + 16 >> 2] = p + (c[a + 48 >> 2] | 0);c[i >> 2] = p;c[j >> 2] = p;\n }l = n;return d | 0;\n }function tB(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0;f = l;l = l + 32 | 0;g = f;e = f + 20 | 0;c[g >> 2] = c[a + 60 >> 2];c[g + 4 >> 2] = 0;c[g + 8 >> 2] = b;c[g + 12 >> 2] = e;c[g + 16 >> 2] = d;if ((uB(fb(140, g | 0) | 0) | 0) < 0) {\n c[e >> 2] = -1;a = -1;\n } else a = c[e >> 2] | 0;l = f;return a | 0;\n }function uB(a) {\n a = a | 0;if (a >>> 0 > 4294963200) {\n c[(vB() | 0) >> 2] = 0 - a;a = -1;\n }return a | 0;\n }function vB() {\n return (wB() | 0) + 64 | 0;\n }function wB() {\n return xB() | 0;\n }function xB() {\n return 2084;\n }function yB(a) {\n a = a | 0;return a | 0;\n }function zB(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = l;l = l + 32 | 0;f = g;c[b + 36 >> 2] = 1;if ((c[b >> 2] & 64 | 0) == 0 ? (c[f >> 2] = c[b + 60 >> 2], c[f + 4 >> 2] = 21523, c[f + 8 >> 2] = g + 16, Wa(54, f | 0) | 0) : 0) a[b + 75 >> 0] = -1;f = sB(b, d, e) | 0;l = g;return f | 0;\n }function AB(b, c) {\n b = b | 0;c = c | 0;var d = 0,\n e = 0;d = a[b >> 0] | 0;e = a[c >> 0] | 0;if (d << 24 >> 24 == 0 ? 1 : d << 24 >> 24 != e << 24 >> 24) b = e;else {\n do {\n b = b + 1 | 0;c = c + 1 | 0;d = a[b >> 0] | 0;e = a[c >> 0] | 0;\n } while (!(d << 24 >> 24 == 0 ? 1 : d << 24 >> 24 != e << 24 >> 24));b = e;\n }return (d & 255) - (b & 255) | 0;\n }function BB(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;var e = 0,\n f = 0;a: do if (!d) b = 0;else {\n while (1) {\n e = a[b >> 0] | 0;f = a[c >> 0] | 0;if (e << 24 >> 24 != f << 24 >> 24) break;d = d + -1 | 0;if (!d) {\n b = 0;break a;\n } else {\n b = b + 1 | 0;c = c + 1 | 0;\n }\n }b = (e & 255) - (f & 255) | 0;\n } while (0);return b | 0;\n }function CB(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0;s = l;l = l + 224 | 0;n = s + 120 | 0;o = s + 80 | 0;q = s;r = s + 136 | 0;f = o;g = f + 40 | 0;do {\n c[f >> 2] = 0;f = f + 4 | 0;\n } while ((f | 0) < (g | 0));c[n >> 2] = c[e >> 2];if ((DB(0, d, n, q, o) | 0) < 0) e = -1;else {\n if ((c[b + 76 >> 2] | 0) > -1) p = EB(b) | 0;else p = 0;e = c[b >> 2] | 0;m = e & 32;if ((a[b + 74 >> 0] | 0) < 1) c[b >> 2] = e & -33;f = b + 48 | 0;if (!(c[f >> 2] | 0)) {\n g = b + 44 | 0;h = c[g >> 2] | 0;c[g >> 2] = r;i = b + 28 | 0;c[i >> 2] = r;j = b + 20 | 0;c[j >> 2] = r;c[f >> 2] = 80;k = b + 16 | 0;c[k >> 2] = r + 80;e = DB(b, d, n, q, o) | 0;if (h) {\n sb[c[b + 36 >> 2] & 7](b, 0, 0) | 0;e = (c[j >> 2] | 0) == 0 ? -1 : e;c[g >> 2] = h;c[f >> 2] = 0;c[k >> 2] = 0;c[i >> 2] = 0;c[j >> 2] = 0;\n }\n } else e = DB(b, d, n, q, o) | 0;f = c[b >> 2] | 0;c[b >> 2] = f | m;if (p | 0) FB(b);e = (f & 32 | 0) == 0 ? e : -1;\n }l = s;return e | 0;\n }function DB(d, e, f, g, i) {\n d = d | 0;e = e | 0;f = f | 0;g = g | 0;i = i | 0;var j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0,\n s = 0,\n t = 0,\n u = 0,\n v = 0,\n w = 0,\n x = 0,\n y = 0,\n z = 0,\n B = 0,\n C = 0,\n D = 0,\n E = 0,\n F = 0,\n G = 0,\n H = 0;H = l;l = l + 64 | 0;D = H + 16 | 0;E = H;B = H + 24 | 0;F = H + 8 | 0;G = H + 20 | 0;c[D >> 2] = e;x = (d | 0) != 0;y = B + 40 | 0;z = y;B = B + 39 | 0;C = F + 4 | 0;k = 0;j = 0;p = 0;a: while (1) {\n do if ((j | 0) > -1) if ((k | 0) > (2147483647 - j | 0)) {\n c[(vB() | 0) >> 2] = 75;j = -1;break;\n } else {\n j = k + j | 0;break;\n } while (0);k = a[e >> 0] | 0;if (!(k << 24 >> 24)) {\n w = 87;break;\n } else m = e;b: while (1) {\n switch (k << 24 >> 24) {case 37:\n {\n k = m;w = 9;break b;\n }case 0:\n {\n k = m;break b;\n }default:\n {}}v = m + 1 | 0;c[D >> 2] = v;k = a[v >> 0] | 0;m = v;\n }c: do if ((w | 0) == 9) while (1) {\n w = 0;if ((a[m + 1 >> 0] | 0) != 37) break c;k = k + 1 | 0;m = m + 2 | 0;c[D >> 2] = m;if ((a[m >> 0] | 0) == 37) w = 9;else break;\n } while (0);k = k - e | 0;if (x) GB(d, e, k);if (k | 0) {\n e = m;continue;\n }n = m + 1 | 0;k = (a[n >> 0] | 0) + -48 | 0;if (k >>> 0 < 10) {\n v = (a[m + 2 >> 0] | 0) == 36;u = v ? k : -1;p = v ? 1 : p;n = v ? m + 3 | 0 : n;\n } else u = -1;c[D >> 2] = n;k = a[n >> 0] | 0;m = (k << 24 >> 24) + -32 | 0;d: do if (m >>> 0 < 32) {\n o = 0;q = k;while (1) {\n k = 1 << m;if (!(k & 75913)) {\n k = q;break d;\n }o = k | o;n = n + 1 | 0;c[D >> 2] = n;k = a[n >> 0] | 0;m = (k << 24 >> 24) + -32 | 0;if (m >>> 0 >= 32) break;else q = k;\n }\n } else o = 0; while (0);if (k << 24 >> 24 == 42) {\n m = n + 1 | 0;k = (a[m >> 0] | 0) + -48 | 0;if (k >>> 0 < 10 ? (a[n + 2 >> 0] | 0) == 36 : 0) {\n c[i + (k << 2) >> 2] = 10;k = c[g + ((a[m >> 0] | 0) + -48 << 3) >> 2] | 0;p = 1;n = n + 3 | 0;\n } else {\n if (p | 0) {\n j = -1;break;\n }if (x) {\n p = (c[f >> 2] | 0) + (4 - 1) & ~(4 - 1);k = c[p >> 2] | 0;c[f >> 2] = p + 4;p = 0;n = m;\n } else {\n k = 0;p = 0;n = m;\n }\n }c[D >> 2] = n;v = (k | 0) < 0;k = v ? 0 - k | 0 : k;o = v ? o | 8192 : o;\n } else {\n k = HB(D) | 0;if ((k | 0) < 0) {\n j = -1;break;\n }n = c[D >> 2] | 0;\n }do if ((a[n >> 0] | 0) == 46) {\n if ((a[n + 1 >> 0] | 0) != 42) {\n c[D >> 2] = n + 1;m = HB(D) | 0;n = c[D >> 2] | 0;break;\n }q = n + 2 | 0;m = (a[q >> 0] | 0) + -48 | 0;if (m >>> 0 < 10 ? (a[n + 3 >> 0] | 0) == 36 : 0) {\n c[i + (m << 2) >> 2] = 10;m = c[g + ((a[q >> 0] | 0) + -48 << 3) >> 2] | 0;n = n + 4 | 0;c[D >> 2] = n;break;\n }if (p | 0) {\n j = -1;break a;\n }if (x) {\n v = (c[f >> 2] | 0) + (4 - 1) & ~(4 - 1);m = c[v >> 2] | 0;c[f >> 2] = v + 4;\n } else m = 0;c[D >> 2] = q;n = q;\n } else m = -1; while (0);t = 0;while (1) {\n if (((a[n >> 0] | 0) + -65 | 0) >>> 0 > 57) {\n j = -1;break a;\n }v = n + 1 | 0;c[D >> 2] = v;q = a[(a[n >> 0] | 0) + -65 + (5178 + (t * 58 | 0)) >> 0] | 0;r = q & 255;if ((r + -1 | 0) >>> 0 < 8) {\n t = r;n = v;\n } else break;\n }if (!(q << 24 >> 24)) {\n j = -1;break;\n }s = (u | 0) > -1;do if (q << 24 >> 24 == 19) {\n if (s) {\n j = -1;break a;\n } else w = 49;\n } else {\n if (s) {\n c[i + (u << 2) >> 2] = r;s = g + (u << 3) | 0;u = c[s + 4 >> 2] | 0;w = E;c[w >> 2] = c[s >> 2];c[w + 4 >> 2] = u;w = 49;break;\n }if (!x) {\n j = 0;break a;\n }IB(E, r, f);\n } while (0);if ((w | 0) == 49 ? (w = 0, !x) : 0) {\n k = 0;e = v;continue;\n }n = a[n >> 0] | 0;n = (t | 0) != 0 & (n & 15 | 0) == 3 ? n & -33 : n;s = o & -65537;u = (o & 8192 | 0) == 0 ? o : s;e: do switch (n | 0) {case 110:\n switch ((t & 255) << 24 >> 24) {case 0:\n {\n c[c[E >> 2] >> 2] = j;k = 0;e = v;continue a;\n }case 1:\n {\n c[c[E >> 2] >> 2] = j;k = 0;e = v;continue a;\n }case 2:\n {\n k = c[E >> 2] | 0;c[k >> 2] = j;c[k + 4 >> 2] = ((j | 0) < 0) << 31 >> 31;k = 0;e = v;continue a;\n }case 3:\n {\n b[c[E >> 2] >> 1] = j;k = 0;e = v;continue a;\n }case 4:\n {\n a[c[E >> 2] >> 0] = j;k = 0;e = v;continue a;\n }case 6:\n {\n c[c[E >> 2] >> 2] = j;k = 0;e = v;continue a;\n }case 7:\n {\n k = c[E >> 2] | 0;c[k >> 2] = j;c[k + 4 >> 2] = ((j | 0) < 0) << 31 >> 31;k = 0;e = v;continue a;\n }default:\n {\n k = 0;e = v;continue a;\n }}case 112:\n {\n n = 120;m = m >>> 0 > 8 ? m : 8;e = u | 8;w = 61;break;\n }case 88:case 120:\n {\n e = u;w = 61;break;\n }case 111:\n {\n n = E;e = c[n >> 2] | 0;n = c[n + 4 >> 2] | 0;r = KB(e, n, y) | 0;s = z - r | 0;o = 0;q = 5642;m = (u & 8 | 0) == 0 | (m | 0) > (s | 0) ? m : s + 1 | 0;s = u;w = 67;break;\n }case 105:case 100:\n {\n n = E;e = c[n >> 2] | 0;n = c[n + 4 >> 2] | 0;if ((n | 0) < 0) {\n e = wC(0, 0, e | 0, n | 0) | 0;n = A;o = E;c[o >> 2] = e;c[o + 4 >> 2] = n;o = 1;q = 5642;w = 66;break e;\n } else {\n o = (u & 2049 | 0) != 0 & 1;q = (u & 2048 | 0) == 0 ? (u & 1 | 0) == 0 ? 5642 : 5644 : 5643;w = 66;break e;\n }\n }case 117:\n {\n n = E;o = 0;q = 5642;e = c[n >> 2] | 0;n = c[n + 4 >> 2] | 0;w = 66;break;\n }case 99:\n {\n a[B >> 0] = c[E >> 2];e = B;o = 0;q = 5642;r = y;n = 1;m = s;break;\n }case 109:\n {\n n = MB(c[(vB() | 0) >> 2] | 0) | 0;w = 71;break;\n }case 115:\n {\n n = c[E >> 2] | 0;n = n | 0 ? n : 5652;w = 71;break;\n }case 67:\n {\n c[F >> 2] = c[E >> 2];c[C >> 2] = 0;c[E >> 2] = F;r = -1;n = F;w = 75;break;\n }case 83:\n {\n e = c[E >> 2] | 0;if (!m) {\n OB(d, 32, k, 0, u);e = 0;w = 84;\n } else {\n r = m;n = e;w = 75;\n }break;\n }case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:\n {\n k = QB(d, +h[E >> 3], k, m, u, n) | 0;e = v;continue a;\n }default:\n {\n o = 0;q = 5642;r = y;n = m;m = u;\n }} while (0);f: do if ((w | 0) == 61) {\n u = E;t = c[u >> 2] | 0;u = c[u + 4 >> 2] | 0;r = JB(t, u, y, n & 32) | 0;q = (e & 8 | 0) == 0 | (t | 0) == 0 & (u | 0) == 0;o = q ? 0 : 2;q = q ? 5642 : 5642 + (n >> 4) | 0;s = e;e = t;n = u;w = 67;\n } else if ((w | 0) == 66) {\n r = LB(e, n, y) | 0;s = u;w = 67;\n } else if ((w | 0) == 71) {\n w = 0;u = NB(n, 0, m) | 0;t = (u | 0) == 0;e = n;o = 0;q = 5642;r = t ? n + m | 0 : u;n = t ? m : u - n | 0;m = s;\n } else if ((w | 0) == 75) {\n w = 0;q = n;e = 0;m = 0;while (1) {\n o = c[q >> 2] | 0;if (!o) break;m = PB(G, o) | 0;if ((m | 0) < 0 | m >>> 0 > (r - e | 0) >>> 0) break;e = m + e | 0;if (r >>> 0 > e >>> 0) q = q + 4 | 0;else break;\n }if ((m | 0) < 0) {\n j = -1;break a;\n }OB(d, 32, k, e, u);if (!e) {\n e = 0;w = 84;\n } else {\n o = 0;while (1) {\n m = c[n >> 2] | 0;if (!m) {\n w = 84;break f;\n }m = PB(G, m) | 0;o = m + o | 0;if ((o | 0) > (e | 0)) {\n w = 84;break f;\n }GB(d, G, m);if (o >>> 0 >= e >>> 0) {\n w = 84;break;\n } else n = n + 4 | 0;\n }\n }\n } while (0);if ((w | 0) == 67) {\n w = 0;n = (e | 0) != 0 | (n | 0) != 0;u = (m | 0) != 0 | n;n = ((n ^ 1) & 1) + (z - r) | 0;e = u ? r : y;r = y;n = u ? (m | 0) > (n | 0) ? m : n : m;m = (m | 0) > -1 ? s & -65537 : s;\n } else if ((w | 0) == 84) {\n w = 0;OB(d, 32, k, e, u ^ 8192);k = (k | 0) > (e | 0) ? k : e;e = v;continue;\n }t = r - e | 0;s = (n | 0) < (t | 0) ? t : n;u = s + o | 0;k = (k | 0) < (u | 0) ? u : k;OB(d, 32, k, u, m);GB(d, q, o);OB(d, 48, k, u, m ^ 65536);OB(d, 48, s, t, 0);GB(d, e, t);OB(d, 32, k, u, m ^ 8192);e = v;\n }g: do if ((w | 0) == 87) if (!d) if (!p) j = 0;else {\n j = 1;while (1) {\n e = c[i + (j << 2) >> 2] | 0;if (!e) break;IB(g + (j << 3) | 0, e, f);j = j + 1 | 0;if ((j | 0) >= 10) {\n j = 1;break g;\n }\n }while (1) {\n if (c[i + (j << 2) >> 2] | 0) {\n j = -1;break g;\n }j = j + 1 | 0;if ((j | 0) >= 10) {\n j = 1;break;\n }\n }\n } while (0);l = H;return j | 0;\n }function EB(a) {\n a = a | 0;return 0;\n }function FB(a) {\n a = a | 0;return;\n }function GB(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;if (!(c[a >> 2] & 32)) aC(b, d, a) | 0;return;\n }function HB(b) {\n b = b | 0;var d = 0,\n e = 0,\n f = 0;e = c[b >> 2] | 0;f = (a[e >> 0] | 0) + -48 | 0;if (f >>> 0 < 10) {\n d = 0;do {\n d = f + (d * 10 | 0) | 0;e = e + 1 | 0;c[b >> 2] = e;f = (a[e >> 0] | 0) + -48 | 0;\n } while (f >>> 0 < 10);\n } else d = 0;return d | 0;\n }function IB(a, b, d) {\n a = a | 0;b = b | 0;d = d | 0;var e = 0,\n f = 0,\n g = 0.0;a: do if (b >>> 0 <= 20) do switch (b | 0) {case 9:\n {\n e = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);b = c[e >> 2] | 0;c[d >> 2] = e + 4;c[a >> 2] = b;break a;\n }case 10:\n {\n e = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);b = c[e >> 2] | 0;c[d >> 2] = e + 4;e = a;c[e >> 2] = b;c[e + 4 >> 2] = ((b | 0) < 0) << 31 >> 31;break a;\n }case 11:\n {\n e = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);b = c[e >> 2] | 0;c[d >> 2] = e + 4;e = a;c[e >> 2] = b;c[e + 4 >> 2] = 0;break a;\n }case 12:\n {\n e = (c[d >> 2] | 0) + (8 - 1) & ~(8 - 1);b = e;f = c[b >> 2] | 0;b = c[b + 4 >> 2] | 0;c[d >> 2] = e + 8;e = a;c[e >> 2] = f;c[e + 4 >> 2] = b;break a;\n }case 13:\n {\n f = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);e = c[f >> 2] | 0;c[d >> 2] = f + 4;e = (e & 65535) << 16 >> 16;f = a;c[f >> 2] = e;c[f + 4 >> 2] = ((e | 0) < 0) << 31 >> 31;break a;\n }case 14:\n {\n f = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);e = c[f >> 2] | 0;c[d >> 2] = f + 4;f = a;c[f >> 2] = e & 65535;c[f + 4 >> 2] = 0;break a;\n }case 15:\n {\n f = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);e = c[f >> 2] | 0;c[d >> 2] = f + 4;e = (e & 255) << 24 >> 24;f = a;c[f >> 2] = e;c[f + 4 >> 2] = ((e | 0) < 0) << 31 >> 31;break a;\n }case 16:\n {\n f = (c[d >> 2] | 0) + (4 - 1) & ~(4 - 1);e = c[f >> 2] | 0;c[d >> 2] = f + 4;f = a;c[f >> 2] = e & 255;c[f + 4 >> 2] = 0;break a;\n }case 17:\n {\n f = (c[d >> 2] | 0) + (8 - 1) & ~(8 - 1);g = +h[f >> 3];c[d >> 2] = f + 8;h[a >> 3] = g;break a;\n }case 18:\n {\n f = (c[d >> 2] | 0) + (8 - 1) & ~(8 - 1);g = +h[f >> 3];c[d >> 2] = f + 8;h[a >> 3] = g;break a;\n }default:\n break a;} while (0); while (0);return;\n }function JB(b, c, e, f) {\n b = b | 0;c = c | 0;e = e | 0;f = f | 0;if (!((b | 0) == 0 & (c | 0) == 0)) do {\n e = e + -1 | 0;a[e >> 0] = d[5694 + (b & 15) >> 0] | 0 | f;b = AC(b | 0, c | 0, 4) | 0;c = A;\n } while (!((b | 0) == 0 & (c | 0) == 0));return e | 0;\n }function KB(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;if (!((b | 0) == 0 & (c | 0) == 0)) do {\n d = d + -1 | 0;a[d >> 0] = b & 7 | 48;b = AC(b | 0, c | 0, 3) | 0;c = A;\n } while (!((b | 0) == 0 & (c | 0) == 0));return d | 0;\n }function LB(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;var e = 0;if (c >>> 0 > 0 | (c | 0) == 0 & b >>> 0 > 4294967295) {\n while (1) {\n e = HC(b | 0, c | 0, 10, 0) | 0;d = d + -1 | 0;a[d >> 0] = e & 255 | 48;e = b;b = EC(b | 0, c | 0, 10, 0) | 0;if (!(c >>> 0 > 9 | (c | 0) == 9 & e >>> 0 > 4294967295)) break;else c = A;\n }c = b;\n } else c = b;if (c) while (1) {\n d = d + -1 | 0;a[d >> 0] = (c >>> 0) % 10 | 0 | 48;if (c >>> 0 < 10) break;else c = (c >>> 0) / 10 | 0;\n }return d | 0;\n }function MB(a) {\n a = a | 0;return XB(a, c[(WB() | 0) + 188 >> 2] | 0) | 0;\n }function NB(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;h = d & 255;f = (e | 0) != 0;a: do if (f & (b & 3 | 0) != 0) {\n g = d & 255;while (1) {\n if ((a[b >> 0] | 0) == g << 24 >> 24) {\n i = 6;break a;\n }b = b + 1 | 0;e = e + -1 | 0;f = (e | 0) != 0;if (!(f & (b & 3 | 0) != 0)) {\n i = 5;break;\n }\n }\n } else i = 5; while (0);if ((i | 0) == 5) if (f) i = 6;else e = 0;b: do if ((i | 0) == 6) {\n g = d & 255;if ((a[b >> 0] | 0) != g << 24 >> 24) {\n f = P(h, 16843009) | 0;c: do if (e >>> 0 > 3) while (1) {\n h = c[b >> 2] ^ f;if ((h & -2139062144 ^ -2139062144) & h + -16843009 | 0) break;b = b + 4 | 0;e = e + -4 | 0;if (e >>> 0 <= 3) {\n i = 11;break c;\n }\n } else i = 11; while (0);if ((i | 0) == 11) if (!e) {\n e = 0;break;\n }while (1) {\n if ((a[b >> 0] | 0) == g << 24 >> 24) break b;b = b + 1 | 0;e = e + -1 | 0;if (!e) {\n e = 0;break;\n }\n }\n }\n } while (0);return (e | 0 ? b : 0) | 0;\n }function OB(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = l;l = l + 256 | 0;f = g;if ((c | 0) > (d | 0) & (e & 73728 | 0) == 0) {\n e = c - d | 0;yC(f | 0, b | 0, (e >>> 0 < 256 ? e : 256) | 0) | 0;if (e >>> 0 > 255) {\n b = c - d | 0;do {\n GB(a, f, 256);e = e + -256 | 0;\n } while (e >>> 0 > 255);e = b & 255;\n }GB(a, f, e);\n }l = g;return;\n }function PB(a, b) {\n a = a | 0;b = b | 0;if (!a) a = 0;else a = UB(a, b, 0) | 0;return a | 0;\n }function QB(b, e, f, g, h, i) {\n b = b | 0;e = +e;f = f | 0;g = g | 0;h = h | 0;i = i | 0;var j = 0,\n k = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0,\n q = 0,\n r = 0.0,\n s = 0,\n t = 0,\n u = 0,\n v = 0,\n w = 0,\n x = 0,\n y = 0,\n z = 0,\n B = 0,\n C = 0,\n D = 0,\n E = 0,\n F = 0,\n G = 0,\n H = 0;H = l;l = l + 560 | 0;m = H + 8 | 0;u = H;G = H + 524 | 0;F = G;n = H + 512 | 0;c[u >> 2] = 0;E = n + 12 | 0;RB(e) | 0;if ((A | 0) < 0) {\n e = -e;C = 1;B = 5659;\n } else {\n C = (h & 2049 | 0) != 0 & 1;B = (h & 2048 | 0) == 0 ? (h & 1 | 0) == 0 ? 5660 : 5665 : 5662;\n }RB(e) | 0;D = A & 2146435072;do if (D >>> 0 < 2146435072 | (D | 0) == 2146435072 & 0 < 0) {\n r = +SB(e, u) * 2.0;j = r != 0.0;if (j) c[u >> 2] = (c[u >> 2] | 0) + -1;w = i | 32;if ((w | 0) == 97) {\n s = i & 32;q = (s | 0) == 0 ? B : B + 9 | 0;p = C | 2;j = 12 - g | 0;do if (!(g >>> 0 > 11 | (j | 0) == 0)) {\n e = 8.0;do {\n j = j + -1 | 0;e = e * 16.0;\n } while ((j | 0) != 0);if ((a[q >> 0] | 0) == 45) {\n e = -(e + (-r - e));break;\n } else {\n e = r + e - e;break;\n }\n } else e = r; while (0);k = c[u >> 2] | 0;j = (k | 0) < 0 ? 0 - k | 0 : k;j = LB(j, ((j | 0) < 0) << 31 >> 31, E) | 0;if ((j | 0) == (E | 0)) {\n j = n + 11 | 0;a[j >> 0] = 48;\n }a[j + -1 >> 0] = (k >> 31 & 2) + 43;o = j + -2 | 0;a[o >> 0] = i + 15;n = (g | 0) < 1;m = (h & 8 | 0) == 0;j = G;do {\n D = ~~e;k = j + 1 | 0;a[j >> 0] = d[5694 + D >> 0] | s;e = (e - +(D | 0)) * 16.0;if ((k - F | 0) == 1 ? !(m & (n & e == 0.0)) : 0) {\n a[k >> 0] = 46;j = j + 2 | 0;\n } else j = k;\n } while (e != 0.0);D = j - F | 0;F = E - o | 0;E = (g | 0) != 0 & (D + -2 | 0) < (g | 0) ? g + 2 | 0 : D;j = F + p + E | 0;OB(b, 32, f, j, h);GB(b, q, p);OB(b, 48, f, j, h ^ 65536);GB(b, G, D);OB(b, 48, E - D | 0, 0, 0);GB(b, o, F);OB(b, 32, f, j, h ^ 8192);break;\n }k = (g | 0) < 0 ? 6 : g;if (j) {\n j = (c[u >> 2] | 0) + -28 | 0;c[u >> 2] = j;e = r * 268435456.0;\n } else {\n e = r;j = c[u >> 2] | 0;\n }D = (j | 0) < 0 ? m : m + 288 | 0;m = D;do {\n y = ~~e >>> 0;c[m >> 2] = y;m = m + 4 | 0;e = (e - +(y >>> 0)) * 1.0e9;\n } while (e != 0.0);if ((j | 0) > 0) {\n n = D;p = m;while (1) {\n o = (j | 0) < 29 ? j : 29;j = p + -4 | 0;if (j >>> 0 >= n >>> 0) {\n m = 0;do {\n x = zC(c[j >> 2] | 0, 0, o | 0) | 0;x = xC(x | 0, A | 0, m | 0, 0) | 0;y = A;v = HC(x | 0, y | 0, 1e9, 0) | 0;c[j >> 2] = v;m = EC(x | 0, y | 0, 1e9, 0) | 0;j = j + -4 | 0;\n } while (j >>> 0 >= n >>> 0);if (m) {\n n = n + -4 | 0;c[n >> 2] = m;\n }\n }m = p;while (1) {\n if (m >>> 0 <= n >>> 0) break;j = m + -4 | 0;if (!(c[j >> 2] | 0)) m = j;else break;\n }j = (c[u >> 2] | 0) - o | 0;c[u >> 2] = j;if ((j | 0) > 0) p = m;else break;\n }\n } else n = D;if ((j | 0) < 0) {\n g = ((k + 25 | 0) / 9 | 0) + 1 | 0;t = (w | 0) == 102;do {\n s = 0 - j | 0;s = (s | 0) < 9 ? s : 9;if (n >>> 0 < m >>> 0) {\n o = (1 << s) + -1 | 0;p = 1e9 >>> s;q = 0;j = n;do {\n y = c[j >> 2] | 0;c[j >> 2] = (y >>> s) + q;q = P(y & o, p) | 0;j = j + 4 | 0;\n } while (j >>> 0 < m >>> 0);j = (c[n >> 2] | 0) == 0 ? n + 4 | 0 : n;if (!q) {\n n = j;j = m;\n } else {\n c[m >> 2] = q;n = j;j = m + 4 | 0;\n }\n } else {\n n = (c[n >> 2] | 0) == 0 ? n + 4 | 0 : n;j = m;\n }m = t ? D : n;m = (j - m >> 2 | 0) > (g | 0) ? m + (g << 2) | 0 : j;j = (c[u >> 2] | 0) + s | 0;c[u >> 2] = j;\n } while ((j | 0) < 0);j = n;g = m;\n } else {\n j = n;g = m;\n }y = D;if (j >>> 0 < g >>> 0) {\n m = (y - j >> 2) * 9 | 0;o = c[j >> 2] | 0;if (o >>> 0 >= 10) {\n n = 10;do {\n n = n * 10 | 0;m = m + 1 | 0;\n } while (o >>> 0 >= n >>> 0);\n }\n } else m = 0;t = (w | 0) == 103;v = (k | 0) != 0;n = k - ((w | 0) != 102 ? m : 0) + ((v & t) << 31 >> 31) | 0;if ((n | 0) < (((g - y >> 2) * 9 | 0) + -9 | 0)) {\n n = n + 9216 | 0;s = D + 4 + (((n | 0) / 9 | 0) + -1024 << 2) | 0;n = ((n | 0) % 9 | 0) + 1 | 0;if ((n | 0) < 9) {\n o = 10;do {\n o = o * 10 | 0;n = n + 1 | 0;\n } while ((n | 0) != 9);\n } else o = 10;p = c[s >> 2] | 0;q = (p >>> 0) % (o >>> 0) | 0;n = (s + 4 | 0) == (g | 0);if (!(n & (q | 0) == 0)) {\n r = (((p >>> 0) / (o >>> 0) | 0) & 1 | 0) == 0 ? 9007199254740992.0 : 9007199254740994.0;x = (o | 0) / 2 | 0;e = q >>> 0 < x >>> 0 ? .5 : n & (q | 0) == (x | 0) ? 1.0 : 1.5;if (C) {\n x = (a[B >> 0] | 0) == 45;e = x ? -e : e;r = x ? -r : r;\n }n = p - q | 0;c[s >> 2] = n;if (r + e != r) {\n x = n + o | 0;c[s >> 2] = x;if (x >>> 0 > 999999999) {\n m = s;while (1) {\n n = m + -4 | 0;c[m >> 2] = 0;if (n >>> 0 < j >>> 0) {\n j = j + -4 | 0;c[j >> 2] = 0;\n }x = (c[n >> 2] | 0) + 1 | 0;c[n >> 2] = x;if (x >>> 0 > 999999999) m = n;else break;\n }\n } else n = s;m = (y - j >> 2) * 9 | 0;p = c[j >> 2] | 0;if (p >>> 0 >= 10) {\n o = 10;do {\n o = o * 10 | 0;m = m + 1 | 0;\n } while (p >>> 0 >= o >>> 0);\n }\n } else n = s;\n } else n = s;n = n + 4 | 0;n = g >>> 0 > n >>> 0 ? n : g;x = j;\n } else {\n n = g;x = j;\n }w = n;while (1) {\n if (w >>> 0 <= x >>> 0) {\n u = 0;break;\n }j = w + -4 | 0;if (!(c[j >> 2] | 0)) w = j;else {\n u = 1;break;\n }\n }g = 0 - m | 0;do if (t) {\n j = ((v ^ 1) & 1) + k | 0;if ((j | 0) > (m | 0) & (m | 0) > -5) {\n o = i + -1 | 0;k = j + -1 - m | 0;\n } else {\n o = i + -2 | 0;k = j + -1 | 0;\n }j = h & 8;if (!j) {\n if (u ? (z = c[w + -4 >> 2] | 0, (z | 0) != 0) : 0) {\n if (!((z >>> 0) % 10 | 0)) {\n n = 0;j = 10;do {\n j = j * 10 | 0;n = n + 1 | 0;\n } while (!((z >>> 0) % (j >>> 0) | 0 | 0));\n } else n = 0;\n } else n = 9;j = ((w - y >> 2) * 9 | 0) + -9 | 0;if ((o | 32 | 0) == 102) {\n s = j - n | 0;s = (s | 0) > 0 ? s : 0;k = (k | 0) < (s | 0) ? k : s;s = 0;break;\n } else {\n s = j + m - n | 0;s = (s | 0) > 0 ? s : 0;k = (k | 0) < (s | 0) ? k : s;s = 0;break;\n }\n } else s = j;\n } else {\n o = i;s = h & 8;\n } while (0);t = k | s;p = (t | 0) != 0 & 1;q = (o | 32 | 0) == 102;if (q) {\n v = 0;j = (m | 0) > 0 ? m : 0;\n } else {\n j = (m | 0) < 0 ? g : m;j = LB(j, ((j | 0) < 0) << 31 >> 31, E) | 0;n = E;if ((n - j | 0) < 2) do {\n j = j + -1 | 0;a[j >> 0] = 48;\n } while ((n - j | 0) < 2);a[j + -1 >> 0] = (m >> 31 & 2) + 43;j = j + -2 | 0;a[j >> 0] = o;v = j;j = n - j | 0;\n }j = C + 1 + k + p + j | 0;OB(b, 32, f, j, h);GB(b, B, C);OB(b, 48, f, j, h ^ 65536);if (q) {\n o = x >>> 0 > D >>> 0 ? D : x;s = G + 9 | 0;p = s;q = G + 8 | 0;n = o;do {\n m = LB(c[n >> 2] | 0, 0, s) | 0;if ((n | 0) == (o | 0)) {\n if ((m | 0) == (s | 0)) {\n a[q >> 0] = 48;m = q;\n }\n } else if (m >>> 0 > G >>> 0) {\n yC(G | 0, 48, m - F | 0) | 0;do m = m + -1 | 0; while (m >>> 0 > G >>> 0);\n }GB(b, m, p - m | 0);n = n + 4 | 0;\n } while (n >>> 0 <= D >>> 0);if (t | 0) GB(b, 5710, 1);if (n >>> 0 < w >>> 0 & (k | 0) > 0) while (1) {\n m = LB(c[n >> 2] | 0, 0, s) | 0;if (m >>> 0 > G >>> 0) {\n yC(G | 0, 48, m - F | 0) | 0;do m = m + -1 | 0; while (m >>> 0 > G >>> 0);\n }GB(b, m, (k | 0) < 9 ? k : 9);n = n + 4 | 0;m = k + -9 | 0;if (!(n >>> 0 < w >>> 0 & (k | 0) > 9)) {\n k = m;break;\n } else k = m;\n }OB(b, 48, k + 9 | 0, 9, 0);\n } else {\n t = u ? w : x + 4 | 0;if ((k | 0) > -1) {\n u = G + 9 | 0;s = (s | 0) == 0;g = u;p = 0 - F | 0;q = G + 8 | 0;o = x;do {\n m = LB(c[o >> 2] | 0, 0, u) | 0;if ((m | 0) == (u | 0)) {\n a[q >> 0] = 48;m = q;\n }do if ((o | 0) == (x | 0)) {\n n = m + 1 | 0;GB(b, m, 1);if (s & (k | 0) < 1) {\n m = n;break;\n }GB(b, 5710, 1);m = n;\n } else {\n if (m >>> 0 <= G >>> 0) break;yC(G | 0, 48, m + p | 0) | 0;do m = m + -1 | 0; while (m >>> 0 > G >>> 0);\n } while (0);F = g - m | 0;GB(b, m, (k | 0) > (F | 0) ? F : k);k = k - F | 0;o = o + 4 | 0;\n } while (o >>> 0 < t >>> 0 & (k | 0) > -1);\n }OB(b, 48, k + 18 | 0, 18, 0);GB(b, v, E - v | 0);\n }OB(b, 32, f, j, h ^ 8192);\n } else {\n G = (i & 32 | 0) != 0;j = C + 3 | 0;OB(b, 32, f, j, h & -65537);GB(b, B, C);GB(b, e != e | 0.0 != 0.0 ? G ? 5686 : 5690 : G ? 5678 : 5682, 3);OB(b, 32, f, j, h ^ 8192);\n } while (0);l = H;return ((j | 0) < (f | 0) ? f : j) | 0;\n }function RB(a) {\n a = +a;var b = 0;h[j >> 3] = a;b = c[j >> 2] | 0;A = c[j + 4 >> 2] | 0;return b | 0;\n }function SB(a, b) {\n a = +a;b = b | 0;return + +TB(a, b);\n }function TB(a, b) {\n a = +a;b = b | 0;var d = 0,\n e = 0,\n f = 0;h[j >> 3] = a;d = c[j >> 2] | 0;e = c[j + 4 >> 2] | 0;f = AC(d | 0, e | 0, 52) | 0;switch (f & 2047) {case 0:\n {\n if (a != 0.0) {\n a = +TB(a * 18446744073709551616.0, b);d = (c[b >> 2] | 0) + -64 | 0;\n } else d = 0;c[b >> 2] = d;break;\n }case 2047:\n break;default:\n {\n c[b >> 2] = (f & 2047) + -1022;c[j >> 2] = d;c[j + 4 >> 2] = e & -2146435073 | 1071644672;a = +h[j >> 3];\n }}return +a;\n }function UB(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;do if (b) {\n if (d >>> 0 < 128) {\n a[b >> 0] = d;b = 1;break;\n }if (!(c[c[(VB() | 0) + 188 >> 2] >> 2] | 0)) if ((d & -128 | 0) == 57216) {\n a[b >> 0] = d;b = 1;break;\n } else {\n c[(vB() | 0) >> 2] = 84;b = -1;break;\n }if (d >>> 0 < 2048) {\n a[b >> 0] = d >>> 6 | 192;a[b + 1 >> 0] = d & 63 | 128;b = 2;break;\n }if (d >>> 0 < 55296 | (d & -8192 | 0) == 57344) {\n a[b >> 0] = d >>> 12 | 224;a[b + 1 >> 0] = d >>> 6 & 63 | 128;a[b + 2 >> 0] = d & 63 | 128;b = 3;break;\n }if ((d + -65536 | 0) >>> 0 < 1048576) {\n a[b >> 0] = d >>> 18 | 240;a[b + 1 >> 0] = d >>> 12 & 63 | 128;a[b + 2 >> 0] = d >>> 6 & 63 | 128;a[b + 3 >> 0] = d & 63 | 128;b = 4;break;\n } else {\n c[(vB() | 0) >> 2] = 84;b = -1;break;\n }\n } else b = 1; while (0);return b | 0;\n }function VB() {\n return xB() | 0;\n }function WB() {\n return xB() | 0;\n }function XB(b, e) {\n b = b | 0;e = e | 0;var f = 0,\n g = 0;g = 0;while (1) {\n if ((d[5712 + g >> 0] | 0) == (b | 0)) {\n b = 2;break;\n }f = g + 1 | 0;if ((f | 0) == 87) {\n f = 5800;g = 87;b = 5;break;\n } else g = f;\n }if ((b | 0) == 2) if (!g) f = 5800;else {\n f = 5800;b = 5;\n }if ((b | 0) == 5) while (1) {\n do {\n b = f;f = f + 1 | 0;\n } while ((a[b >> 0] | 0) != 0);g = g + -1 | 0;if (!g) break;else b = 5;\n }return YB(f, c[e + 20 >> 2] | 0) | 0;\n }function YB(a, b) {\n a = a | 0;b = b | 0;return ZB(a, b) | 0;\n }function ZB(a, b) {\n a = a | 0;b = b | 0;if (!b) b = 0;else b = _B(c[b >> 2] | 0, c[b + 4 >> 2] | 0, a) | 0;return (b | 0 ? b : a) | 0;\n }function _B(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n l = 0,\n m = 0,\n n = 0,\n o = 0;o = (c[b >> 2] | 0) + 1794895138 | 0;h = $B(c[b + 8 >> 2] | 0, o) | 0;f = $B(c[b + 12 >> 2] | 0, o) | 0;g = $B(c[b + 16 >> 2] | 0, o) | 0;a: do if ((h >>> 0 < d >>> 2 >>> 0 ? (n = d - (h << 2) | 0, f >>> 0 < n >>> 0 & g >>> 0 < n >>> 0) : 0) ? ((g | f) & 3 | 0) == 0 : 0) {\n n = f >>> 2;m = g >>> 2;l = 0;while (1) {\n j = h >>> 1;k = l + j | 0;i = k << 1;g = i + n | 0;f = $B(c[b + (g << 2) >> 2] | 0, o) | 0;g = $B(c[b + (g + 1 << 2) >> 2] | 0, o) | 0;if (!(g >>> 0 < d >>> 0 & f >>> 0 < (d - g | 0) >>> 0)) {\n f = 0;break a;\n }if (a[b + (g + f) >> 0] | 0) {\n f = 0;break a;\n }f = AB(e, b + g | 0) | 0;if (!f) break;f = (f | 0) < 0;if ((h | 0) == 1) {\n f = 0;break a;\n } else {\n l = f ? l : k;h = f ? j : h - j | 0;\n }\n }f = i + m | 0;g = $B(c[b + (f << 2) >> 2] | 0, o) | 0;f = $B(c[b + (f + 1 << 2) >> 2] | 0, o) | 0;if (f >>> 0 < d >>> 0 & g >>> 0 < (d - f | 0) >>> 0) f = (a[b + (f + g) >> 0] | 0) == 0 ? b + f | 0 : 0;else f = 0;\n } else f = 0; while (0);return f | 0;\n }function $B(a, b) {\n a = a | 0;b = b | 0;var c = 0;c = IC(a | 0) | 0;return ((b | 0) == 0 ? a : c) | 0;\n }function aC(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0,\n j = 0;f = e + 16 | 0;g = c[f >> 2] | 0;if (!g) {\n if (!(bC(e) | 0)) {\n g = c[f >> 2] | 0;h = 5;\n } else f = 0;\n } else h = 5;a: do if ((h | 0) == 5) {\n j = e + 20 | 0;i = c[j >> 2] | 0;f = i;if ((g - i | 0) >>> 0 < d >>> 0) {\n f = sb[c[e + 36 >> 2] & 7](e, b, d) | 0;break;\n }b: do if ((a[e + 75 >> 0] | 0) > -1) {\n i = d;while (1) {\n if (!i) {\n h = 0;g = b;break b;\n }g = i + -1 | 0;if ((a[b + g >> 0] | 0) == 10) break;else i = g;\n }f = sb[c[e + 36 >> 2] & 7](e, b, i) | 0;if (f >>> 0 < i >>> 0) break a;h = i;g = b + i | 0;d = d - i | 0;f = c[j >> 2] | 0;\n } else {\n h = 0;g = b;\n } while (0);BC(f | 0, g | 0, d | 0) | 0;c[j >> 2] = (c[j >> 2] | 0) + d;f = h + d | 0;\n } while (0);return f | 0;\n }function bC(b) {\n b = b | 0;var d = 0,\n e = 0;d = b + 74 | 0;e = a[d >> 0] | 0;a[d >> 0] = e + 255 | e;d = c[b >> 2] | 0;if (!(d & 8)) {\n c[b + 8 >> 2] = 0;c[b + 4 >> 2] = 0;e = c[b + 44 >> 2] | 0;c[b + 28 >> 2] = e;c[b + 20 >> 2] = e;c[b + 16 >> 2] = e + (c[b + 48 >> 2] | 0);b = 0;\n } else {\n c[b >> 2] = d | 32;b = -1;\n }return b | 0;\n }function cC(a, b) {\n a = T(a);b = T(b);var c = 0,\n d = 0;c = dC(a) | 0;do if ((c & 2147483647) >>> 0 <= 2139095040) {\n d = dC(b) | 0;if ((d & 2147483647) >>> 0 <= 2139095040) if ((d ^ c | 0) < 0) {\n a = (c | 0) < 0 ? b : a;break;\n } else {\n a = a < b ? b : a;break;\n }\n } else a = b; while (0);return T(a);\n }function dC(a) {\n a = T(a);return (g[j >> 2] = a, c[j >> 2] | 0) | 0;\n }function eC(a, b) {\n a = T(a);b = T(b);var c = 0,\n d = 0;c = fC(a) | 0;do if ((c & 2147483647) >>> 0 <= 2139095040) {\n d = fC(b) | 0;if ((d & 2147483647) >>> 0 <= 2139095040) if ((d ^ c | 0) < 0) {\n a = (c | 0) < 0 ? a : b;break;\n } else {\n a = a < b ? a : b;break;\n }\n } else a = b; while (0);return T(a);\n }function fC(a) {\n a = T(a);return (g[j >> 2] = a, c[j >> 2] | 0) | 0;\n }function gC(a, b) {\n a = T(a);b = T(b);var d = 0,\n e = 0,\n f = 0,\n h = 0,\n i = 0,\n k = 0,\n l = 0,\n m = 0;h = (g[j >> 2] = a, c[j >> 2] | 0);k = (g[j >> 2] = b, c[j >> 2] | 0);d = h >>> 23 & 255;i = k >>> 23 & 255;l = h & -2147483648;f = k << 1;a: do if ((f | 0) != 0 ? !((d | 0) == 255 | ((hC(b) | 0) & 2147483647) >>> 0 > 2139095040) : 0) {\n e = h << 1;if (e >>> 0 <= f >>> 0) {\n b = T(a * T(0.0));return T((e | 0) == (f | 0) ? b : a);\n }if (!d) {\n d = h << 9;if ((d | 0) > -1) {\n e = d;d = 0;do {\n d = d + -1 | 0;e = e << 1;\n } while ((e | 0) > -1);\n } else d = 0;e = h << 1 - d;\n } else e = h & 8388607 | 8388608;if (!i) {\n h = k << 9;if ((h | 0) > -1) {\n f = 0;do {\n f = f + -1 | 0;h = h << 1;\n } while ((h | 0) > -1);\n } else f = 0;i = f;k = k << 1 - f;\n } else k = k & 8388607 | 8388608;f = e - k | 0;h = (f | 0) > -1;b: do if ((d | 0) > (i | 0)) {\n while (1) {\n if (h) if (!f) break;else e = f;e = e << 1;d = d + -1 | 0;f = e - k | 0;h = (f | 0) > -1;if ((d | 0) <= (i | 0)) break b;\n }b = T(a * T(0.0));break a;\n } while (0);if (h) if (!f) {\n b = T(a * T(0.0));break;\n } else e = f;if (e >>> 0 < 8388608) do {\n e = e << 1;d = d + -1 | 0;\n } while (e >>> 0 < 8388608);if ((d | 0) > 0) d = e + -8388608 | d << 23;else d = e >>> (1 - d | 0);b = (c[j >> 2] = d | l, T(g[j >> 2]));\n } else m = 3; while (0);if ((m | 0) == 3) {\n b = T(a * b);b = T(b / b);\n }return T(b);\n }function hC(a) {\n a = T(a);return (g[j >> 2] = a, c[j >> 2] | 0) | 0;\n }function iC(a, b) {\n a = a | 0;b = b | 0;return CB(c[582] | 0, a, b) | 0;\n }function jC(a) {\n a = a | 0;Ta();\n }function kC(a) {\n a = a | 0;return;\n }function lC(a, b) {\n a = a | 0;b = b | 0;return 0;\n }function mC(a) {\n a = a | 0;if ((nC(a + 4 | 0) | 0) == -1) {\n nb[c[(c[a >> 2] | 0) + 8 >> 2] & 127](a);a = 1;\n } else a = 0;return a | 0;\n }function nC(a) {\n a = a | 0;var b = 0;b = c[a >> 2] | 0;c[a >> 2] = b + -1;return b + -1 | 0;\n }function oC(a) {\n a = a | 0;if (mC(a) | 0) pC(a);return;\n }function pC(a) {\n a = a | 0;var b = 0;b = a + 8 | 0;if (!((c[b >> 2] | 0) != 0 ? (nC(b) | 0) != -1 : 0)) nb[c[(c[a >> 2] | 0) + 16 >> 2] & 127](a);return;\n }function qC(a) {\n a = a | 0;var b = 0;b = (a | 0) == 0 ? 1 : a;while (1) {\n a = oB(b) | 0;if (a | 0) break;a = uC() | 0;if (!a) {\n a = 0;break;\n }Fb[a & 0]();\n }return a | 0;\n }function rC(a) {\n a = a | 0;return qC(a) | 0;\n }function sC(a) {\n a = a | 0;pB(a);return;\n }function tC(b) {\n b = b | 0;if ((a[b + 11 >> 0] | 0) < 0) sC(c[b >> 2] | 0);return;\n }function uC() {\n var a = 0;a = c[2923] | 0;c[2923] = a + 0;return a | 0;\n }function vC() {}function wC(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;d = b - d - (c >>> 0 > a >>> 0 | 0) >>> 0;return (A = d, a - c >>> 0 | 0) | 0;\n }function xC(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;c = a + c >>> 0;return (A = b + d + (c >>> 0 < a >>> 0 | 0) >>> 0, c | 0) | 0;\n }function yC(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0,\n i = 0;h = b + e | 0;d = d & 255;if ((e | 0) >= 67) {\n while (b & 3) {\n a[b >> 0] = d;b = b + 1 | 0;\n }f = h & -4 | 0;g = f - 64 | 0;i = d | d << 8 | d << 16 | d << 24;while ((b | 0) <= (g | 0)) {\n c[b >> 2] = i;c[b + 4 >> 2] = i;c[b + 8 >> 2] = i;c[b + 12 >> 2] = i;c[b + 16 >> 2] = i;c[b + 20 >> 2] = i;c[b + 24 >> 2] = i;c[b + 28 >> 2] = i;c[b + 32 >> 2] = i;c[b + 36 >> 2] = i;c[b + 40 >> 2] = i;c[b + 44 >> 2] = i;c[b + 48 >> 2] = i;c[b + 52 >> 2] = i;c[b + 56 >> 2] = i;c[b + 60 >> 2] = i;b = b + 64 | 0;\n }while ((b | 0) < (f | 0)) {\n c[b >> 2] = i;b = b + 4 | 0;\n }\n }while ((b | 0) < (h | 0)) {\n a[b >> 0] = d;b = b + 1 | 0;\n }return h - e | 0;\n }function zC(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;if ((c | 0) < 32) {\n A = b << c | (a & (1 << c) - 1 << 32 - c) >>> 32 - c;return a << c;\n }A = a << c - 32;return 0;\n }function AC(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;if ((c | 0) < 32) {\n A = b >>> c;return a >>> c | (b & (1 << c) - 1) << 32 - c;\n }A = 0;return b >>> c - 32 | 0;\n }function BC(b, d, e) {\n b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0,\n h = 0;if ((e | 0) >= 8192) return Oa(b | 0, d | 0, e | 0) | 0;h = b | 0;g = b + e | 0;if ((b & 3) == (d & 3)) {\n while (b & 3) {\n if (!e) return h | 0;a[b >> 0] = a[d >> 0] | 0;b = b + 1 | 0;d = d + 1 | 0;e = e - 1 | 0;\n }e = g & -4 | 0;f = e - 64 | 0;while ((b | 0) <= (f | 0)) {\n c[b >> 2] = c[d >> 2];c[b + 4 >> 2] = c[d + 4 >> 2];c[b + 8 >> 2] = c[d + 8 >> 2];c[b + 12 >> 2] = c[d + 12 >> 2];c[b + 16 >> 2] = c[d + 16 >> 2];c[b + 20 >> 2] = c[d + 20 >> 2];c[b + 24 >> 2] = c[d + 24 >> 2];c[b + 28 >> 2] = c[d + 28 >> 2];c[b + 32 >> 2] = c[d + 32 >> 2];c[b + 36 >> 2] = c[d + 36 >> 2];c[b + 40 >> 2] = c[d + 40 >> 2];c[b + 44 >> 2] = c[d + 44 >> 2];c[b + 48 >> 2] = c[d + 48 >> 2];c[b + 52 >> 2] = c[d + 52 >> 2];c[b + 56 >> 2] = c[d + 56 >> 2];c[b + 60 >> 2] = c[d + 60 >> 2];b = b + 64 | 0;d = d + 64 | 0;\n }while ((b | 0) < (e | 0)) {\n c[b >> 2] = c[d >> 2];b = b + 4 | 0;d = d + 4 | 0;\n }\n } else {\n e = g - 4 | 0;while ((b | 0) < (e | 0)) {\n a[b >> 0] = a[d >> 0] | 0;a[b + 1 >> 0] = a[d + 1 >> 0] | 0;a[b + 2 >> 0] = a[d + 2 >> 0] | 0;a[b + 3 >> 0] = a[d + 3 >> 0] | 0;b = b + 4 | 0;d = d + 4 | 0;\n }\n }while ((b | 0) < (g | 0)) {\n a[b >> 0] = a[d >> 0] | 0;b = b + 1 | 0;d = d + 1 | 0;\n }return h | 0;\n }function CC(b) {\n b = b | 0;var c = 0;c = a[n + (b & 255) >> 0] | 0;if ((c | 0) < 8) return c | 0;c = a[n + (b >> 8 & 255) >> 0] | 0;if ((c | 0) < 8) return c + 8 | 0;c = a[n + (b >> 16 & 255) >> 0] | 0;if ((c | 0) < 8) return c + 16 | 0;return (a[n + (b >>> 24) >> 0] | 0) + 24 | 0;\n }function DC(a, b, d, e, f) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;f = f | 0;var g = 0,\n h = 0,\n i = 0,\n j = 0,\n k = 0,\n l = 0,\n m = 0,\n n = 0,\n o = 0,\n p = 0;l = a;j = b;k = j;h = d;n = e;i = n;if (!k) {\n g = (f | 0) != 0;if (!i) {\n if (g) {\n c[f >> 2] = (l >>> 0) % (h >>> 0);c[f + 4 >> 2] = 0;\n }n = 0;f = (l >>> 0) / (h >>> 0) >>> 0;return (A = n, f) | 0;\n } else {\n if (!g) {\n n = 0;f = 0;return (A = n, f) | 0;\n }c[f >> 2] = a | 0;c[f + 4 >> 2] = b & 0;n = 0;f = 0;return (A = n, f) | 0;\n }\n }g = (i | 0) == 0;do if (h) {\n if (!g) {\n g = (S(i | 0) | 0) - (S(k | 0) | 0) | 0;if (g >>> 0 <= 31) {\n m = g + 1 | 0;i = 31 - g | 0;b = g - 31 >> 31;h = m;a = l >>> (m >>> 0) & b | k << i;b = k >>> (m >>> 0) & b;g = 0;i = l << i;break;\n }if (!f) {\n n = 0;f = 0;return (A = n, f) | 0;\n }c[f >> 2] = a | 0;c[f + 4 >> 2] = j | b & 0;n = 0;f = 0;return (A = n, f) | 0;\n }g = h - 1 | 0;if (g & h | 0) {\n i = (S(h | 0) | 0) + 33 - (S(k | 0) | 0) | 0;p = 64 - i | 0;m = 32 - i | 0;j = m >> 31;o = i - 32 | 0;b = o >> 31;h = i;a = m - 1 >> 31 & k >>> (o >>> 0) | (k << m | l >>> (i >>> 0)) & b;b = b & k >>> (i >>> 0);g = l << p & j;i = (k << p | l >>> (o >>> 0)) & j | l << m & i - 33 >> 31;break;\n }if (f | 0) {\n c[f >> 2] = g & l;c[f + 4 >> 2] = 0;\n }if ((h | 0) == 1) {\n o = j | b & 0;p = a | 0 | 0;return (A = o, p) | 0;\n } else {\n p = CC(h | 0) | 0;o = k >>> (p >>> 0) | 0;p = k << 32 - p | l >>> (p >>> 0) | 0;return (A = o, p) | 0;\n }\n } else {\n if (g) {\n if (f | 0) {\n c[f >> 2] = (k >>> 0) % (h >>> 0);c[f + 4 >> 2] = 0;\n }o = 0;p = (k >>> 0) / (h >>> 0) >>> 0;return (A = o, p) | 0;\n }if (!l) {\n if (f | 0) {\n c[f >> 2] = 0;c[f + 4 >> 2] = (k >>> 0) % (i >>> 0);\n }o = 0;p = (k >>> 0) / (i >>> 0) >>> 0;return (A = o, p) | 0;\n }g = i - 1 | 0;if (!(g & i)) {\n if (f | 0) {\n c[f >> 2] = a | 0;c[f + 4 >> 2] = g & k | b & 0;\n }o = 0;p = k >>> ((CC(i | 0) | 0) >>> 0);return (A = o, p) | 0;\n }g = (S(i | 0) | 0) - (S(k | 0) | 0) | 0;if (g >>> 0 <= 30) {\n b = g + 1 | 0;i = 31 - g | 0;h = b;a = k << i | l >>> (b >>> 0);b = k >>> (b >>> 0);g = 0;i = l << i;break;\n }if (!f) {\n o = 0;p = 0;return (A = o, p) | 0;\n }c[f >> 2] = a | 0;c[f + 4 >> 2] = j | b & 0;o = 0;p = 0;return (A = o, p) | 0;\n } while (0);if (!h) {\n k = i;j = 0;i = 0;\n } else {\n m = d | 0 | 0;l = n | e & 0;k = xC(m | 0, l | 0, -1, -1) | 0;d = A;j = i;i = 0;do {\n e = j;j = g >>> 31 | j << 1;g = i | g << 1;e = a << 1 | e >>> 31 | 0;n = a >>> 31 | b << 1 | 0;wC(k | 0, d | 0, e | 0, n | 0) | 0;p = A;o = p >> 31 | ((p | 0) < 0 ? -1 : 0) << 1;i = o & 1;a = wC(e | 0, n | 0, o & m | 0, (((p | 0) < 0 ? -1 : 0) >> 31 | ((p | 0) < 0 ? -1 : 0) << 1) & l | 0) | 0;b = A;h = h - 1 | 0;\n } while ((h | 0) != 0);k = j;j = 0;\n }h = 0;if (f | 0) {\n c[f >> 2] = a;c[f + 4 >> 2] = b;\n }o = (g | 0) >>> 31 | (k | h) << 1 | (h << 1 | g >>> 31) & 0 | j;p = (g << 1 | 0 >>> 31) & -2 | i;return (A = o, p) | 0;\n }function EC(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;return DC(a, b, c, d, 0) | 0;\n }function FC(a) {\n a = a | 0;var b = 0,\n d = 0;d = a + 15 & -16 | 0;b = c[i >> 2] | 0;a = b + d | 0;if ((d | 0) > 0 & (a | 0) < (b | 0) | (a | 0) < 0) {\n Y() | 0;Qa(12);return -1;\n }c[i >> 2] = a;if ((a | 0) > (X() | 0) ? (W() | 0) == 0 : 0) {\n c[i >> 2] = b;Qa(12);return -1;\n }return b | 0;\n }function GC(b, c, d) {\n b = b | 0;c = c | 0;d = d | 0;var e = 0;if ((c | 0) < (b | 0) & (b | 0) < (c + d | 0)) {\n e = b;c = c + d | 0;b = b + d | 0;while ((d | 0) > 0) {\n b = b - 1 | 0;c = c - 1 | 0;d = d - 1 | 0;a[b >> 0] = a[c >> 0] | 0;\n }b = e;\n } else BC(b, c, d) | 0;return b | 0;\n }function HC(a, b, d, e) {\n a = a | 0;b = b | 0;d = d | 0;e = e | 0;var f = 0,\n g = 0;g = l;l = l + 16 | 0;f = g | 0;DC(a, b, d, e, f) | 0;l = g;return (A = c[f + 4 >> 2] | 0, c[f >> 2] | 0) | 0;\n }function IC(a) {\n a = a | 0;return (a & 255) << 24 | (a >> 8 & 255) << 16 | (a >> 16 & 255) << 8 | a >>> 24 | 0;\n }function JC(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;jb[a & 1](b | 0, c | 0, d | 0, e | 0, f | 0);\n }function KC(a, b, c) {\n a = a | 0;b = b | 0;c = T(c);kb[a & 1](b | 0, T(c));\n }function LC(a, b, c) {\n a = a | 0;b = b | 0;c = +c;lb[a & 31](b | 0, +c);\n }function MC(a, b, c, d) {\n a = a | 0;b = b | 0;c = T(c);d = T(d);return T(mb[a & 0](b | 0, T(c), T(d)));\n }function NC(a, b) {\n a = a | 0;b = b | 0;nb[a & 127](b | 0);\n }function OC(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;ob[a & 31](b | 0, c | 0);\n }function PC(a, b) {\n a = a | 0;b = b | 0;return pb[a & 31](b | 0) | 0;\n }function QC(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = +c;d = +d;e = e | 0;qb[a & 1](b | 0, +c, +d, e | 0);\n }function RC(a, b, c, d) {\n a = a | 0;b = b | 0;c = +c;d = +d;rb[a & 1](b | 0, +c, +d);\n }function SC(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;return sb[a & 7](b | 0, c | 0, d | 0) | 0;\n }function TC(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;return +tb[a & 1](b | 0, c | 0, d | 0);\n }function UC(a, b) {\n a = a | 0;b = b | 0;return +ub[a & 15](b | 0);\n }function VC(a, b, c) {\n a = a | 0;b = b | 0;c = +c;return vb[a & 1](b | 0, +c) | 0;\n }function WC(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;return wb[a & 15](b | 0, c | 0) | 0;\n }function XC(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = c | 0;d = +d;e = +e;f = f | 0;xb[a & 1](b | 0, c | 0, +d, +e, f | 0);\n }function YC(a, b, c, d, e, f, g) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;g = g | 0;yb[a & 1](b | 0, c | 0, d | 0, e | 0, f | 0, g | 0);\n }function ZC(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;return +zb[a & 7](b | 0, c | 0);\n }function _C(a) {\n a = a | 0;return Ab[a & 7]() | 0;\n }function $C(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;return Bb[a & 1](b | 0, c | 0, d | 0, e | 0, f | 0) | 0;\n }function aD(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = +e;Cb[a & 1](b | 0, c | 0, d | 0, +e);\n }function bD(a, b, c, d, e, f, g) {\n a = a | 0;b = b | 0;c = c | 0;d = T(d);e = e | 0;f = T(f);g = g | 0;Db[a & 1](b | 0, c | 0, T(d), e | 0, T(f), g | 0);\n }function cD(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;Eb[a & 15](b | 0, c | 0, d | 0);\n }function dD(a) {\n a = a | 0;Fb[a & 0]();\n }function eD(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = +d;Gb[a & 15](b | 0, c | 0, +d);\n }function fD(a, b, c) {\n a = a | 0;b = +b;c = +c;return Hb[a & 1](+b, +c) | 0;\n }function gD(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;Ib[a & 15](b | 0, c | 0, d | 0, e | 0);\n }function hD(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;U(0);\n }function iD(a, b) {\n a = a | 0;b = T(b);U(1);\n }function jD(a, b) {\n a = a | 0;b = +b;U(2);\n }function kD(a, b, c) {\n a = a | 0;b = T(b);c = T(c);U(3);return ib;\n }function lD(a) {\n a = a | 0;U(4);\n }function mD(a, b) {\n a = a | 0;b = b | 0;U(5);\n }function nD(a) {\n a = a | 0;U(6);return 0;\n }function oD(a, b, c, d) {\n a = a | 0;b = +b;c = +c;d = d | 0;U(7);\n }function pD(a, b, c) {\n a = a | 0;b = +b;c = +c;U(8);\n }function qD(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;U(9);return 0;\n }function rD(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;U(10);return 0.0;\n }function sD(a) {\n a = a | 0;U(11);return 0.0;\n }function tD(a, b) {\n a = a | 0;b = +b;U(12);return 0;\n }function uD(a, b) {\n a = a | 0;b = b | 0;U(13);return 0;\n }function vD(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = +c;d = +d;e = e | 0;U(14);\n }function wD(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;f = f | 0;U(15);\n }function xD(a, b) {\n a = a | 0;b = b | 0;U(16);return 0.0;\n }function yD() {\n U(17);return 0;\n }function zD(a, b, c, d, e) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;e = e | 0;U(18);return 0;\n }function AD(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = +d;U(19);\n }function BD(a, b, c, d, e, f) {\n a = a | 0;b = b | 0;c = T(c);d = d | 0;e = T(e);f = f | 0;U(20);\n }function CD(a, b, c) {\n a = a | 0;b = b | 0;c = c | 0;U(21);\n }function DD() {\n U(22);\n }function ED(a, b, c) {\n a = a | 0;b = b | 0;c = +c;U(23);\n }function FD(a, b) {\n a = +a;b = +b;U(24);return 0;\n }function GD(a, b, c, d) {\n a = a | 0;b = b | 0;c = c | 0;d = d | 0;U(25);\n }\n\n // EMSCRIPTEN_END_FUNCS\n var jb = [hD, Uw];var kb = [iD, of];var lb = [jD, Of, Pf, Qf, Rf, Sf, Tf, Uf, Wf, Xf, Zf, _f, $f, ag, bg, cg, dg, eg, fg, jD, jD, jD, jD, jD, jD, jD, jD, jD, jD, jD, jD, jD];var mb = [kD];var nb = [lD, kC, Ki, Li, Mi, rn, sn, tn, Pu, Qu, Ru, Cw, Dw, Ew, DA, EA, FA, Rb, tf, yf, Vf, Yf, hh, ih, ri, Ui, kj, Jj, bk, zk, Wk, nl, Hl, bm, um, Nm, en, Nn, fo, yo, Ro, ip, Bp, Xp, nq, Eq, Zq, lf, Hr, _r, us, Ps, ft, Ct, Ot, Rt, ju, mu, Eu, Uu, Xu, pv, Kv, Vi, $x, Ky, az, sz, Rz, hA, tA, wA, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD, lD];var ob = [mD, zf, Af, Df, Ef, Ff, Gf, Hf, If, Lf, Mf, Nf, wg, zg, Ag, Bg, Cg, Dg, Eg, Jg, Ng, rh, $p, qq, Ts, cy, Sv, xy, mD, mD, mD, mD];var pb = [nD, rB, sf, jg, ng, og, pg, qg, rg, sg, ug, vg, Kg, Lg, jh, ar, jt, sv, hy, jy, nD, nD, nD, nD, nD, nD, nD, nD, nD, nD, nD, nD];var qb = [oD, kh];var rb = [pD, Hu];var sb = [qD, sB, tB, zB, Dk, Rn, Lr, wz];var tb = [rD, ym];var ub = [sD, xg, yg, Fg, lh, mh, nh, oh, ph, qh, sD, sD, sD, sD, sD, sD];var vb = [tD, Kt];var wb = [uD, lC, Mg, xi, Nj, _k, rl, jn, jo, Iq, pf, ez, uD, uD, uD, uD];var xb = [vD, oj];var yb = [wD, Vz];var zb = [xD, Gg, sh, th, uh, Rm, xD, xD];var Ab = [yD, vh, qf, jf, Wt, qu, av, AA];var Bb = [zD, ee];var Cb = [AD, Vo];var Db = [BD, Pg];var Eb = [CD, kg, tg, Hg, Ig, fk, Ll, mp, Fp, nf, vx, Oy, lA, CD, CD, CD];var Fb = [DD];var Gb = [ED, Bf, Cf, Jf, Kf, gg, hg, ig, Co, cs, Ft, ED, ED, ED, ED, ED];var Hb = [FD, Mu];var Ib = [GD, fm, ir, ys, st, au, wu, hv, Pv, oy, LA, GD, GD, GD, GD, GD];return { _llvm_bswap_i32: IC, dynCall_idd: fD, dynCall_i: _C, _i64Subtract: wC, ___udivdi3: EC, dynCall_vif: KC, setThrew: Nb, dynCall_viii: cD, _bitshift64Lshr: AC, _bitshift64Shl: zC, dynCall_vi: NC, dynCall_viiddi: XC, dynCall_diii: TC, dynCall_iii: WC, _memset: yC, _sbrk: FC, _memcpy: BC, __GLOBAL__sub_I_Yoga_cpp: hf, dynCall_vii: OC, ___uremdi3: HC, dynCall_vid: LC, stackAlloc: Jb, _nbind_init: _A, getTempRet0: Pb, dynCall_di: UC, dynCall_iid: VC, setTempRet0: Ob, _i64Add: xC, dynCall_fiff: MC, dynCall_iiii: SC, _emscripten_get_global_libc: qB, dynCall_viid: eD, dynCall_viiid: aD, dynCall_viififi: bD, dynCall_ii: PC, __GLOBAL__sub_I_Binding_cc: Sx, dynCall_viiii: gD, dynCall_iiiiii: $C, stackSave: Kb, dynCall_viiiii: JC, __GLOBAL__sub_I_nbind_cc: wh, dynCall_vidd: RC, _free: pB, runPostSets: vC, dynCall_viiiiii: YC, establishStackSpace: Mb, _memmove: GC, stackRestore: Lb, _malloc: oB, __GLOBAL__sub_I_common_cc: Bv, dynCall_viddi: QC, dynCall_dii: ZC, dynCall_v: dD };\n }(\n\n // EMSCRIPTEN_END_ASM\n Module.asmGlobalArg, Module.asmLibraryArg, buffer);var _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = asm[\"_llvm_bswap_i32\"];var getTempRet0 = Module[\"getTempRet0\"] = asm[\"getTempRet0\"];var ___udivdi3 = Module[\"___udivdi3\"] = asm[\"___udivdi3\"];var setThrew = Module[\"setThrew\"] = asm[\"setThrew\"];var _bitshift64Lshr = Module[\"_bitshift64Lshr\"] = asm[\"_bitshift64Lshr\"];var _bitshift64Shl = Module[\"_bitshift64Shl\"] = asm[\"_bitshift64Shl\"];var _memset = Module[\"_memset\"] = asm[\"_memset\"];var _sbrk = Module[\"_sbrk\"] = asm[\"_sbrk\"];var _memcpy = Module[\"_memcpy\"] = asm[\"_memcpy\"];var stackAlloc = Module[\"stackAlloc\"] = asm[\"stackAlloc\"];var ___uremdi3 = Module[\"___uremdi3\"] = asm[\"___uremdi3\"];var _nbind_init = Module[\"_nbind_init\"] = asm[\"_nbind_init\"];var _i64Subtract = Module[\"_i64Subtract\"] = asm[\"_i64Subtract\"];var setTempRet0 = Module[\"setTempRet0\"] = asm[\"setTempRet0\"];var _i64Add = Module[\"_i64Add\"] = asm[\"_i64Add\"];var _emscripten_get_global_libc = Module[\"_emscripten_get_global_libc\"] = asm[\"_emscripten_get_global_libc\"];var __GLOBAL__sub_I_Yoga_cpp = Module[\"__GLOBAL__sub_I_Yoga_cpp\"] = asm[\"__GLOBAL__sub_I_Yoga_cpp\"];var __GLOBAL__sub_I_Binding_cc = Module[\"__GLOBAL__sub_I_Binding_cc\"] = asm[\"__GLOBAL__sub_I_Binding_cc\"];var stackSave = Module[\"stackSave\"] = asm[\"stackSave\"];var __GLOBAL__sub_I_nbind_cc = Module[\"__GLOBAL__sub_I_nbind_cc\"] = asm[\"__GLOBAL__sub_I_nbind_cc\"];var _free = Module[\"_free\"] = asm[\"_free\"];var runPostSets = Module[\"runPostSets\"] = asm[\"runPostSets\"];var establishStackSpace = Module[\"establishStackSpace\"] = asm[\"establishStackSpace\"];var _memmove = Module[\"_memmove\"] = asm[\"_memmove\"];var stackRestore = Module[\"stackRestore\"] = asm[\"stackRestore\"];var _malloc = Module[\"_malloc\"] = asm[\"_malloc\"];var __GLOBAL__sub_I_common_cc = Module[\"__GLOBAL__sub_I_common_cc\"] = asm[\"__GLOBAL__sub_I_common_cc\"];var dynCall_viiiii = Module[\"dynCall_viiiii\"] = asm[\"dynCall_viiiii\"];var dynCall_vif = Module[\"dynCall_vif\"] = asm[\"dynCall_vif\"];var dynCall_vid = Module[\"dynCall_vid\"] = asm[\"dynCall_vid\"];var dynCall_fiff = Module[\"dynCall_fiff\"] = asm[\"dynCall_fiff\"];var dynCall_vi = Module[\"dynCall_vi\"] = asm[\"dynCall_vi\"];var dynCall_vii = Module[\"dynCall_vii\"] = asm[\"dynCall_vii\"];var dynCall_ii = Module[\"dynCall_ii\"] = asm[\"dynCall_ii\"];var dynCall_viddi = Module[\"dynCall_viddi\"] = asm[\"dynCall_viddi\"];var dynCall_vidd = Module[\"dynCall_vidd\"] = asm[\"dynCall_vidd\"];var dynCall_iiii = Module[\"dynCall_iiii\"] = asm[\"dynCall_iiii\"];var dynCall_diii = Module[\"dynCall_diii\"] = asm[\"dynCall_diii\"];var dynCall_di = Module[\"dynCall_di\"] = asm[\"dynCall_di\"];var dynCall_iid = Module[\"dynCall_iid\"] = asm[\"dynCall_iid\"];var dynCall_iii = Module[\"dynCall_iii\"] = asm[\"dynCall_iii\"];var dynCall_viiddi = Module[\"dynCall_viiddi\"] = asm[\"dynCall_viiddi\"];var dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = asm[\"dynCall_viiiiii\"];var dynCall_dii = Module[\"dynCall_dii\"] = asm[\"dynCall_dii\"];var dynCall_i = Module[\"dynCall_i\"] = asm[\"dynCall_i\"];var dynCall_iiiiii = Module[\"dynCall_iiiiii\"] = asm[\"dynCall_iiiiii\"];var dynCall_viiid = Module[\"dynCall_viiid\"] = asm[\"dynCall_viiid\"];var dynCall_viififi = Module[\"dynCall_viififi\"] = asm[\"dynCall_viififi\"];var dynCall_viii = Module[\"dynCall_viii\"] = asm[\"dynCall_viii\"];var dynCall_v = Module[\"dynCall_v\"] = asm[\"dynCall_v\"];var dynCall_viid = Module[\"dynCall_viid\"] = asm[\"dynCall_viid\"];var dynCall_idd = Module[\"dynCall_idd\"] = asm[\"dynCall_idd\"];var dynCall_viiii = Module[\"dynCall_viiii\"] = asm[\"dynCall_viiii\"];Runtime.stackAlloc = Module[\"stackAlloc\"];Runtime.stackSave = Module[\"stackSave\"];Runtime.stackRestore = Module[\"stackRestore\"];Runtime.establishStackSpace = Module[\"establishStackSpace\"];Runtime.setTempRet0 = Module[\"setTempRet0\"];Runtime.getTempRet0 = Module[\"getTempRet0\"];Module[\"asm\"] = asm;function ExitStatus(status) {\n this.name = \"ExitStatus\";this.message = \"Program terminated with exit(\" + status + \")\";this.status = status;\n }ExitStatus.prototype = new Error();ExitStatus.prototype.constructor = ExitStatus;var initialStackTop;var preloadStartTime = null;var calledMain = false;dependenciesFulfilled = function runCaller() {\n if (!Module[\"calledRun\"]) run();if (!Module[\"calledRun\"]) dependenciesFulfilled = runCaller;\n };Module[\"callMain\"] = Module.callMain = function callMain(args) {\n args = args || [];ensureInitRuntime();var argc = args.length + 1;function pad() {\n for (var i = 0; i < 4 - 1; i++) {\n argv.push(0);\n }\n }var argv = [allocate(intArrayFromString(Module[\"thisProgram\"]), \"i8\", ALLOC_NORMAL)];pad();for (var i = 0; i < argc - 1; i = i + 1) {\n argv.push(allocate(intArrayFromString(args[i]), \"i8\", ALLOC_NORMAL));pad();\n }argv.push(0);argv = allocate(argv, \"i32\", ALLOC_NORMAL);try {\n var ret = Module[\"_main\"](argc, argv, 0);exit(ret, true);\n } catch (e) {\n if (e instanceof ExitStatus) {\n return;\n } else if (e == \"SimulateInfiniteLoop\") {\n Module[\"noExitRuntime\"] = true;return;\n } else {\n var toLog = e;if (e && typeof e === \"object\" && e.stack) {\n toLog = [e, e.stack];\n }Module.printErr(\"exception thrown: \" + toLog);Module[\"quit\"](1, e);\n }\n } finally {\n calledMain = true;\n }\n };function run(args) {\n args = args || Module[\"arguments\"];if (preloadStartTime === null) preloadStartTime = Date.now();if (runDependencies > 0) {\n return;\n }preRun();if (runDependencies > 0) return;if (Module[\"calledRun\"]) return;function doRun() {\n if (Module[\"calledRun\"]) return;Module[\"calledRun\"] = true;if (ABORT) return;ensureInitRuntime();preMain();if (Module[\"onRuntimeInitialized\"]) Module[\"onRuntimeInitialized\"]();if (Module[\"_main\"] && shouldRunNow) Module[\"callMain\"](args);postRun();\n }if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");setTimeout(function () {\n setTimeout(function () {\n Module[\"setStatus\"](\"\");\n }, 1);doRun();\n }, 1);\n } else {\n doRun();\n }\n }Module[\"run\"] = Module.run = run;function exit(status, implicit) {\n if (implicit && Module[\"noExitRuntime\"]) {\n return;\n }if (Module[\"noExitRuntime\"]) {} else {\n ABORT = true;EXITSTATUS = status;STACKTOP = initialStackTop;exitRuntime();if (Module[\"onExit\"]) Module[\"onExit\"](status);\n }if (ENVIRONMENT_IS_NODE) {\n process[\"exit\"](status);\n }Module[\"quit\"](status, new ExitStatus(status));\n }Module[\"exit\"] = Module.exit = exit;var abortDecorators = [];function abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }if (what !== undefined) {\n Module.print(what);Module.printErr(what);what = JSON.stringify(what);\n } else {\n what = \"\";\n }ABORT = true;EXITSTATUS = 1;var extra = \"\\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.\";var output = \"abort(\" + what + \") at \" + stackTrace() + extra;if (abortDecorators) {\n abortDecorators.forEach(function (decorator) {\n output = decorator(output, what);\n });\n }throw output;\n }Module[\"abort\"] = Module.abort = abort;if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [Module[\"preInit\"]];while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n }var shouldRunNow = true;if (Module[\"noInitialRun\"]) {\n shouldRunNow = false;\n }run();\n});\n","\"use strict\";\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @format\n */\n\nvar CONSTANTS = {\n ALIGN_COUNT: 8,\n ALIGN_AUTO: 0,\n ALIGN_FLEX_START: 1,\n ALIGN_CENTER: 2,\n ALIGN_FLEX_END: 3,\n ALIGN_STRETCH: 4,\n ALIGN_BASELINE: 5,\n ALIGN_SPACE_BETWEEN: 6,\n ALIGN_SPACE_AROUND: 7,\n\n DIMENSION_COUNT: 2,\n DIMENSION_WIDTH: 0,\n DIMENSION_HEIGHT: 1,\n\n DIRECTION_COUNT: 3,\n DIRECTION_INHERIT: 0,\n DIRECTION_LTR: 1,\n DIRECTION_RTL: 2,\n\n DISPLAY_COUNT: 2,\n DISPLAY_FLEX: 0,\n DISPLAY_NONE: 1,\n\n EDGE_COUNT: 9,\n EDGE_LEFT: 0,\n EDGE_TOP: 1,\n EDGE_RIGHT: 2,\n EDGE_BOTTOM: 3,\n EDGE_START: 4,\n EDGE_END: 5,\n EDGE_HORIZONTAL: 6,\n EDGE_VERTICAL: 7,\n EDGE_ALL: 8,\n\n EXPERIMENTAL_FEATURE_COUNT: 1,\n EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: 0,\n\n FLEX_DIRECTION_COUNT: 4,\n FLEX_DIRECTION_COLUMN: 0,\n FLEX_DIRECTION_COLUMN_REVERSE: 1,\n FLEX_DIRECTION_ROW: 2,\n FLEX_DIRECTION_ROW_REVERSE: 3,\n\n JUSTIFY_COUNT: 6,\n JUSTIFY_FLEX_START: 0,\n JUSTIFY_CENTER: 1,\n JUSTIFY_FLEX_END: 2,\n JUSTIFY_SPACE_BETWEEN: 3,\n JUSTIFY_SPACE_AROUND: 4,\n JUSTIFY_SPACE_EVENLY: 5,\n\n LOG_LEVEL_COUNT: 6,\n LOG_LEVEL_ERROR: 0,\n LOG_LEVEL_WARN: 1,\n LOG_LEVEL_INFO: 2,\n LOG_LEVEL_DEBUG: 3,\n LOG_LEVEL_VERBOSE: 4,\n LOG_LEVEL_FATAL: 5,\n\n MEASURE_MODE_COUNT: 3,\n MEASURE_MODE_UNDEFINED: 0,\n MEASURE_MODE_EXACTLY: 1,\n MEASURE_MODE_AT_MOST: 2,\n\n NODE_TYPE_COUNT: 2,\n NODE_TYPE_DEFAULT: 0,\n NODE_TYPE_TEXT: 1,\n\n OVERFLOW_COUNT: 3,\n OVERFLOW_VISIBLE: 0,\n OVERFLOW_HIDDEN: 1,\n OVERFLOW_SCROLL: 2,\n\n POSITION_TYPE_COUNT: 2,\n POSITION_TYPE_RELATIVE: 0,\n POSITION_TYPE_ABSOLUTE: 1,\n\n PRINT_OPTIONS_COUNT: 3,\n PRINT_OPTIONS_LAYOUT: 1,\n PRINT_OPTIONS_STYLE: 2,\n PRINT_OPTIONS_CHILDREN: 4,\n\n UNIT_COUNT: 4,\n UNIT_UNDEFINED: 0,\n UNIT_POINT: 1,\n UNIT_PERCENT: 2,\n UNIT_AUTO: 3,\n\n WRAP_COUNT: 3,\n WRAP_NO_WRAP: 0,\n WRAP_WRAP: 1,\n WRAP_WRAP_REVERSE: 2\n};\n\nmodule.exports = CONSTANTS;","'use strict';\n\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @format\n */\n\nvar Yoga = require('./entry-common');\nvar nbind = require('../build/Release/nbind.js');\n\nvar ran = false;\nvar ret = null;\n\nnbind({}, function (err, result) {\n if (ran) {\n return;\n }\n\n ran = true;\n\n if (err) {\n throw err;\n }\n\n ret = result;\n});\n\nif (!ran) {\n throw new Error(\"Failed to load the yoga module - it needed to be loaded synchronously, but didn't\");\n}\n\n// $FlowFixMe ret will not be null here\nmodule.exports = Yoga(ret.bind, ret.lib);","'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\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\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n * @format\n */\n\nvar CONSTANTS = require('./YGEnums');\n\nvar Layout = function () {\n function Layout(left, right, top, bottom, width, height) {\n _classCallCheck(this, Layout);\n\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n this.width = width;\n this.height = height;\n }\n\n _createClass(Layout, [{\n key: 'fromJS',\n value: function fromJS(expose) {\n expose(this.left, this.right, this.top, this.bottom, this.width, this.height);\n }\n }, {\n key: 'toString',\n value: function toString() {\n return '';\n }\n }]);\n\n return Layout;\n}();\n\nvar Size = function () {\n _createClass(Size, null, [{\n key: 'fromJS',\n value: function fromJS(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return new Size(width, height);\n }\n }]);\n\n function Size(width, height) {\n _classCallCheck(this, Size);\n\n this.width = width;\n this.height = height;\n }\n\n _createClass(Size, [{\n key: 'fromJS',\n value: function fromJS(expose) {\n expose(this.width, this.height);\n }\n }, {\n key: 'toString',\n value: function toString() {\n return '';\n }\n }]);\n\n return Size;\n}();\n\nvar Value = function () {\n function Value(unit, value) {\n _classCallCheck(this, Value);\n\n this.unit = unit;\n this.value = value;\n }\n\n _createClass(Value, [{\n key: 'fromJS',\n value: function fromJS(expose) {\n expose(this.unit, this.value);\n }\n }, {\n key: 'toString',\n value: function toString() {\n switch (this.unit) {\n case CONSTANTS.UNIT_POINT:\n return String(this.value);\n case CONSTANTS.UNIT_PERCENT:\n return this.value + '%';\n case CONSTANTS.UNIT_AUTO:\n return 'auto';\n default:\n {\n return this.value + '?';\n }\n }\n }\n }, {\n key: 'valueOf',\n value: function valueOf() {\n return this.value;\n }\n }]);\n\n return Value;\n}();\n\nmodule.exports = function (bind, lib) {\n function patch(prototype, name, fn) {\n var original = prototype[name];\n\n prototype[name] = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return fn.call.apply(fn, [this, original].concat(args));\n };\n }\n\n var _arr = ['setPosition', 'setMargin', 'setFlexBasis', 'setWidth', 'setHeight', 'setMinWidth', 'setMinHeight', 'setMaxWidth', 'setMaxHeight', 'setPadding'];\n\n var _loop = function _loop() {\n var _methods;\n\n var fnName = _arr[_i];\n var methods = (_methods = {}, _defineProperty(_methods, CONSTANTS.UNIT_POINT, lib.Node.prototype[fnName]), _defineProperty(_methods, CONSTANTS.UNIT_PERCENT, lib.Node.prototype[fnName + 'Percent']), _defineProperty(_methods, CONSTANTS.UNIT_AUTO, lib.Node.prototype[fnName + 'Auto']), _methods);\n\n patch(lib.Node.prototype, fnName, function (original) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n // We patch all these functions to add support for the following calls:\n // .setWidth(100) / .setWidth(\"100%\") / .setWidth(.getWidth()) / .setWidth(\"auto\")\n\n var value = args.pop();\n var unit = void 0,\n asNumber = void 0;\n\n if (value === 'auto') {\n unit = CONSTANTS.UNIT_AUTO;\n asNumber = undefined;\n } else if (value instanceof Value) {\n unit = value.unit;\n asNumber = value.valueOf();\n } else {\n unit = typeof value === 'string' && value.endsWith('%') ? CONSTANTS.UNIT_PERCENT : CONSTANTS.UNIT_POINT;\n asNumber = parseFloat(value);\n if (!Number.isNaN(value) && Number.isNaN(asNumber)) {\n throw new Error('Invalid value ' + value + ' for ' + fnName);\n }\n }\n\n if (!methods[unit]) throw new Error('Failed to execute \"' + fnName + '\": Unsupported unit \\'' + value + '\\'');\n\n if (asNumber !== undefined) {\n var _methods$unit;\n\n return (_methods$unit = methods[unit]).call.apply(_methods$unit, [this].concat(args, [asNumber]));\n } else {\n var _methods$unit2;\n\n return (_methods$unit2 = methods[unit]).call.apply(_methods$unit2, [this].concat(args));\n }\n });\n };\n\n for (var _i = 0; _i < _arr.length; _i++) {\n _loop();\n }\n\n patch(lib.Config.prototype, 'free', function () {\n // Since we handle the memory allocation ourselves (via lib.Config.create),\n // we also need to handle the deallocation\n lib.Config.destroy(this);\n });\n\n patch(lib.Node, 'create', function (_, config) {\n // We decide the constructor we want to call depending on the parameters\n return config ? lib.Node.createWithConfig(config) : lib.Node.createDefault();\n });\n\n patch(lib.Node.prototype, 'free', function () {\n // Since we handle the memory allocation ourselves (via lib.Node.create),\n // we also need to handle the deallocation\n lib.Node.destroy(this);\n });\n\n patch(lib.Node.prototype, 'freeRecursive', function () {\n for (var t = 0, T = this.getChildCount(); t < T; ++t) {\n this.getChild(0).freeRecursive();\n }\n this.free();\n });\n\n patch(lib.Node.prototype, 'setMeasureFunc', function (original, measureFunc) {\n // This patch is just a convenience patch, since it helps write more\n // idiomatic source code (such as .setMeasureFunc(null))\n // We also automatically convert the return value of the measureFunc\n // to a Size object, so that we can return anything that has .width and\n // .height properties\n if (measureFunc) {\n return original.call(this, function () {\n return Size.fromJS(measureFunc.apply(undefined, arguments));\n });\n } else {\n return this.unsetMeasureFunc();\n }\n });\n\n patch(lib.Node.prototype, 'calculateLayout', function (original) {\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var height = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NaN;\n var direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : CONSTANTS.DIRECTION_LTR;\n\n // Just a small patch to add support for the function default parameters\n return original.call(this, width, height, direction);\n });\n\n return _extends({\n Config: lib.Config,\n Node: lib.Node,\n Layout: bind('Layout', Layout),\n Size: bind('Size', Size),\n Value: bind('Value', Value),\n getInstanceCount: function getInstanceCount() {\n return lib.getInstanceCount.apply(lib, arguments);\n }\n }, CONSTANTS);\n};","\nmodule.exports = absolutize\n\n/**\n * redefine `path` with absolute coordinates\n *\n * @param {Array} path\n * @return {Array}\n */\n\nfunction absolutize(path){\n\tvar startX = 0\n\tvar startY = 0\n\tvar x = 0\n\tvar y = 0\n\n\treturn path.map(function(seg){\n\t\tseg = seg.slice()\n\t\tvar type = seg[0]\n\t\tvar command = type.toUpperCase()\n\n\t\t// is relative\n\t\tif (type != command) {\n\t\t\tseg[0] = command\n\t\t\tswitch (type) {\n\t\t\t\tcase 'a':\n\t\t\t\t\tseg[6] += x\n\t\t\t\t\tseg[7] += y\n\t\t\t\t\tbreak\n\t\t\t\tcase 'v':\n\t\t\t\t\tseg[1] += y\n\t\t\t\t\tbreak\n\t\t\t\tcase 'h':\n\t\t\t\t\tseg[1] += x\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tfor (var i = 1; i < seg.length;) {\n\t\t\t\t\t\tseg[i++] += x\n\t\t\t\t\t\tseg[i++] += y\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// update cursor state\n\t\tswitch (command) {\n\t\t\tcase 'Z':\n\t\t\t\tx = startX\n\t\t\t\ty = startY\n\t\t\t\tbreak\n\t\t\tcase 'H':\n\t\t\t\tx = seg[1]\n\t\t\t\tbreak\n\t\t\tcase 'V':\n\t\t\t\ty = seg[1]\n\t\t\t\tbreak\n\t\t\tcase 'M':\n\t\t\t\tx = startX = seg[1]\n\t\t\t\ty = startY = seg[2]\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tx = seg[seg.length - 2]\n\t\t\t\ty = seg[seg.length - 1]\n\t\t}\n\n\t\treturn seg\n\t})\n}\n","\n/**\n * Array#filter.\n *\n * @param {Array} arr\n * @param {Function} fn\n * @param {Object=} self\n * @return {Array}\n * @throw TypeError\n */\n\nmodule.exports = function (arr, fn, self) {\n if (arr.filter) return arr.filter(fn, self);\n if (void 0 === arr || null === arr) throw new TypeError;\n if ('function' != typeof fn) throw new TypeError;\n var ret = [];\n for (var i = 0; i < arr.length; i++) {\n if (!hasOwn.call(arr, i)) continue;\n var val = arr[i];\n if (fn.call(self, val, i, arr)) ret.push(val);\n }\n return ret;\n};\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { 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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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 _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 _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 _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\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 _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { 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\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { 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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { 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\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar filter = require('array-filter');\n\nmodule.exports = function availableTypedArrays() {\n\treturn filter([\n\t\t'BigInt64Array',\n\t\t'BigUint64Array',\n\t\t'Float32Array',\n\t\t'Float64Array',\n\t\t'Int16Array',\n\t\t'Int32Array',\n\t\t'Int8Array',\n\t\t'Uint16Array',\n\t\t'Uint32Array',\n\t\t'Uint8Array',\n\t\t'Uint8ClampedArray'\n\t], function (typedArray) {\n\t\treturn typeof global[typedArray] === 'function';\n\t});\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function 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 (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","/**\n * Copyright (c) 2014-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// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-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!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","module.exports = require(\"regenerator-runtime\");\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var WritableStream = require('stream').Writable;\nvar util = require('util');\nvar Blob = require('blob');\nvar URL = global.URL || global.webkitURL || global.mozURL;\n\nfunction BlobStream() {\n if (!(this instanceof BlobStream))\n return new BlobStream;\n \n WritableStream.call(this);\n this._chunks = [];\n this._blob = null;\n this.length = 0;\n}\n\nutil.inherits(BlobStream, WritableStream);\n\nBlobStream.prototype._write = function(chunk, encoding, callback) {\n // convert chunks to Uint8Arrays (e.g. Buffer when array fallback is being used)\n if (!(chunk instanceof Uint8Array))\n chunk = new Uint8Array(chunk);\n \n this.length += chunk.length;\n this._chunks.push(chunk);\n callback();\n};\n\nBlobStream.prototype.toBlob = function(type) {\n type = type || 'application/octet-stream';\n \n // cache the blob if needed\n if (!this._blob) {\n this._blob = new Blob(this._chunks, {\n type: type\n });\n \n this._chunks = []; // free memory\n }\n \n // if the cached blob's type doesn't match the requested type, make a new blob\n if (this._blob.type !== type)\n this._blob = new Blob([this._blob], { type: type });\n \n return this._blob;\n};\n\nBlobStream.prototype.toBlobURL = function(type) {\n return URL.createObjectURL(this.toBlob(type));\n};\n\nmodule.exports = BlobStream;\n","/**\n * Create a blob builder even when vendor prefixes exist\n */\n\nvar BlobBuilder = global.BlobBuilder\n || global.WebKitBlobBuilder\n || global.MSBlobBuilder\n || global.MozBlobBuilder;\n\n/**\n * Check if Blob constructor is supported\n */\n\nvar blobSupported = (function() {\n try {\n var a = new Blob(['hi']);\n return a.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if Blob constructor supports ArrayBufferViews\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\n */\n\nvar blobSupportsArrayBufferView = blobSupported && (function() {\n try {\n var b = new Blob([new Uint8Array([1,2])]);\n return b.size === 2;\n } catch(e) {\n return false;\n }\n})();\n\n/**\n * Check if BlobBuilder is supported\n */\n\nvar blobBuilderSupported = BlobBuilder\n && BlobBuilder.prototype.append\n && BlobBuilder.prototype.getBlob;\n\n/**\n * Helper function that maps ArrayBufferViews to ArrayBuffers\n * Used by BlobBuilder constructor and old browsers that didn't\n * support it in the Blob constructor.\n */\n\nfunction mapArrayBufferViews(ary) {\n for (var i = 0; i < ary.length; i++) {\n var chunk = ary[i];\n if (chunk.buffer instanceof ArrayBuffer) {\n var buf = chunk.buffer;\n\n // if this is a subarray, make a copy so we only\n // include the subarray region from the underlying buffer\n if (chunk.byteLength !== buf.byteLength) {\n var copy = new Uint8Array(chunk.byteLength);\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\n buf = copy.buffer;\n }\n\n ary[i] = buf;\n }\n }\n}\n\nfunction BlobBuilderConstructor(ary, options) {\n options = options || {};\n\n var bb = new BlobBuilder();\n mapArrayBufferViews(ary);\n\n for (var i = 0; i < ary.length; i++) {\n bb.append(ary[i]);\n }\n\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\n};\n\nfunction BlobConstructor(ary, options) {\n mapArrayBufferViews(ary);\n return new Blob(ary, options || {});\n};\n\nmodule.exports = (function() {\n if (blobSupported) {\n return blobSupportsArrayBufferView ? global.Blob : BlobConstructor;\n } else if (blobBuilderSupported) {\n return BlobBuilderConstructor;\n } else {\n return undefined;\n }\n})();\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = require('./browser/algorithms.json')\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'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;","'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);","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\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","var clone = (function() {\n'use strict';\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n*/\nfunction clone(parent, circular, depth, prototype) {\n var filter;\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n filter = circular.filter;\n circular = circular.circular\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth == 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n};\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n};\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n};\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n};\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n};\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\n\nvar reverseNames = {};\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (colorNames.hasOwnProperty(name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar keyword = /(\\D+)/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\n\t\tif (!rgb) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = (parseFloat(match[1]) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = num.toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }())\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var i = 0; i < thatSigBytes; i += 4) {\n\t thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/getUrl.js\";\nimport ___CSS_LOADER_URL_IMPORT_0___ from \"../assets/fonts/FuturaBT-Bold.eot\";\nimport ___CSS_LOADER_URL_IMPORT_1___ from \"../assets/fonts/FuturaBT-Bold.woff\";\nimport ___CSS_LOADER_URL_IMPORT_2___ from \"../assets/fonts/FuturaBT-Bold.ttf\";\nimport ___CSS_LOADER_URL_IMPORT_3___ from \"../assets/fonts/FeltTipRoman.eot\";\nimport ___CSS_LOADER_URL_IMPORT_4___ from \"../assets/fonts/FeltTipRoman.woff\";\nimport ___CSS_LOADER_URL_IMPORT_5___ from \"../assets/fonts/FeltTipRoman.ttf\";\nimport ___CSS_LOADER_URL_IMPORT_6___ from \"../assets/gfx/module1-bg1.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_7___ from \"../assets/gfx/module1-bg2.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_8___ from \"../assets/gfx/module1-bg3.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_9___ from \"../assets/gfx/module2-bg1.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_10___ from \"../assets/gfx/module2-bg2.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_11___ from \"../assets/gfx/module3-bg3.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_12___ from \"../assets/gfx/module3-bg5.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_13___ from \"../assets/gfx/module3-bg7.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_14___ from \"../assets/gfx/module4-bg5.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_15___ from \"../assets/gfx/module4-bg8.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_16___ from \"../assets/gfx/04_meeting.jpg\";\nimport ___CSS_LOADER_URL_IMPORT_17___ from \"../assets/gfx/03_writing.jpg\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { hash: \"?#iefix\" });\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@font-face{font-family:\\\"FuturaBT-Bold\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \") format(\\\"truetype\\\");font-weight:700;font-style:normal}@font-face{font-family:\\\"FeltTipRoman\\\";src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \");src:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \") format(\\\"embedded-opentype\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \") format(\\\"woff\\\"),url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \") format(\\\"truetype\\\");font-weight:normal;font-style:normal}.bottom-arrowed::after{content:\\\"\\\";display:block;position:absolute;bottom:0rem;left:calc(50% - 1rem);margin:0 auto;border-top:1rem solid transparent;border-left:1rem solid #fff;border-right:1rem solid #fff}.bottom-arrow::after{content:\\\"\\\";position:absolute;bottom:calc(-0.5rem - 1px);left:calc(50% - 0.5rem);border-bottom:1px solid rgba(0,0,0,.125);border-right:1px solid rgba(0,0,0,.125);background-color:#fff;width:1rem;height:1rem;transform:rotate(45deg)}.section-arrows{clip-path:polygon(0 0, calc(50% - 1rem) 0, 50% 1rem, calc(50% + 1rem) 0, 100% 0, 100% calc(100% - 1rem), calc(50% + 1rem) calc(100% - 1rem), 50% 100%, calc(50% - 1rem) calc(100% - 1rem), 0% calc(100% - 1rem))}.text-underline{text-decoration:underline}.bg-overlay-blueberry-dark{background:rgba(0,76,151,.9)}.video-caption{display:block;margin-bottom:1.5rem;font-weight:400}.tooltip.show{opacity:.95}.tooltip .arrow::before{border-top-color:#f2b298}.tooltip-inner{max-width:min(400px, 50vw);padding:.5rem;background-color:#f2b298;color:#000;opacity:1}@media screen and (min-width: 768px){.w-md-75{width:75%}}@media screen and (min-width: 992px){.w-lg-50{width:50%}}@media screen and (min-width: 992px){.w-lg-100{width:100% !important}}.module1__bg1{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \");background-position:center center;background-size:cover}.module1__bg2{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \");background-position:center center;background-size:cover}.module1__bg3{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \");background-position:center center;background-size:cover}.module2__bg1{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \");background-position:center center;background-size:cover}.module2__bg2{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \");background-position:center center;background-size:cover}.module3__bg3{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \");background-position:center center;background-size:cover}.module3__bg5{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \");background-position:center center;background-size:cover}.module3__bg7{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \");background-position:center center;background-size:cover}.module3__bg9{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \");background-position:center center;background-size:cover}.module4__bg5{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \");background-position:center center;background-size:cover}.module4__bg8{background:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \");background-position:center center;background-size:cover}.training-header{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \");background-size:cover;background-position:center;background-repeat:no-repeat}.subscribe-header{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \");background-size:cover;background-position:center top;background-repeat:no-repeat}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/styles/_fonts.scss\",\"webpack://./src/styles/_common.scss\",\"webpack://./src/styles/_module1.scss\",\"webpack://./src/styles/_module2.scss\",\"webpack://./src/styles/_module3.scss\",\"webpack://./src/styles/_module4.scss\",\"webpack://./src/styles/_programmeFinish.scss\"],\"names\":[],\"mappings\":\"AAAA,WACE,2BAAA,CACA,2CAAA,CACA,yLAAA,CAIA,eAAA,CACA,iBAAA,CAGF,WACE,0BAAA,CACA,2CAAA,CACA,yLAAA,CAIA,kBAAA,CACA,iBAAA,CCnBF,uBACE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,WAAA,CACA,qBAAA,CACA,aAAA,CACA,iCAAA,CACA,2BAAA,CACA,4BAAA,CAGF,qBACE,UAAA,CACA,iBAAA,CACA,0BAAA,CACA,uBAAA,CACA,wCAAA,CACA,uCAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,uBAAA,CAGF,gBACE,gNAAA,CAcF,gBACE,yBAAA,CAGF,2BACE,4BAAA,CAGF,eACE,aAAA,CACA,oBAAA,CACA,eAAA,CAIF,cACE,WAAA,CAEF,wBACE,wBAAA,CAEF,eACE,0BAAA,CACA,aAAA,CACA,wBAAA,CACA,UAAA,CACA,SAAA,CAIA,qCADF,SAEI,SAAA,CAAA,CAKF,qCADF,SAEI,SAAA,CAAA,CAKF,qCADF,UAEI,qBAAA,CAAA,CCnFJ,cACI,kDAAA,CACA,iCAAA,CACA,qBAAA,CAGJ,cACI,kDAAA,CACA,iCAAA,CACA,qBAAA,CAGJ,cACI,mDAAA,CACA,iCAAA,CACA,qBAAA,CCfJ,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CAGF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CCTF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CAGF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CAGF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CAGF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CCrBF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CAGF,cACE,mDAAA,CACA,iCAAA,CACA,qBAAA,CCTF,iBACE,yDAAA,CACA,qBAAA,CACA,0BAAA,CACA,2BAAA,CAGF,kBACE,yDAAA,CACA,qBAAA,CACA,8BAAA,CACA,2BAAA\",\"sourcesContent\":[\"@font-face {\\r\\n font-family: \\\"FuturaBT-Bold\\\";\\r\\n src: url(\\\"../assets/fonts/FuturaBT-Bold.eot\\\");\\r\\n src: url(\\\"../assets/fonts/FuturaBT-Bold.eot?#iefix\\\")\\r\\n format(\\\"embedded-opentype\\\"),\\r\\n url(\\\"../assets/fonts/FuturaBT-Bold.woff\\\") format(\\\"woff\\\"),\\r\\n url(\\\"../assets/fonts/FuturaBT-Bold.ttf\\\") format(\\\"truetype\\\");\\r\\n font-weight: 700;\\r\\n font-style: normal;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: \\\"FeltTipRoman\\\";\\r\\n src: url(\\\"../assets/fonts/FeltTipRoman.eot\\\");\\r\\n src: url(\\\"../assets/fonts/FeltTipRoman.eot?#iefix\\\")\\r\\n format(\\\"embedded-opentype\\\"),\\r\\n url(\\\"../assets/fonts/FeltTipRoman.woff\\\") format(\\\"woff\\\"),\\r\\n url(\\\"../assets/fonts/FeltTipRoman.ttf\\\") format(\\\"truetype\\\");\\r\\n font-weight: normal;\\r\\n font-style: normal;\\r\\n}\\r\\n\",\".bottom-arrowed::after {\\r\\n content: \\\"\\\";\\r\\n display: block;\\r\\n position: absolute;\\r\\n bottom: 0rem;\\r\\n left: calc(50% - 1rem);\\r\\n margin: 0 auto;\\r\\n border-top: 1rem solid transparent;\\r\\n border-left: 1rem solid white;\\r\\n border-right: 1rem solid white;\\r\\n}\\r\\n\\r\\n.bottom-arrow::after {\\r\\n content: \\\"\\\";\\r\\n position: absolute;\\r\\n bottom: calc(-0.5rem - 1px);\\r\\n left: calc(50% - 0.5rem);\\r\\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\\r\\n border-right: 1px solid rgba(0, 0, 0, 0.125);\\r\\n background-color: white;\\r\\n width: 1rem;\\r\\n height: 1rem;\\r\\n transform: rotate(45deg);\\r\\n}\\r\\n\\r\\n.section-arrows {\\r\\n clip-path: polygon(\\r\\n 0 0,\\r\\n calc(50% - 1rem) 0,\\r\\n 50% 1rem,\\r\\n calc(50% + 1rem) 0,\\r\\n 100% 0,\\r\\n 100% calc(100% - 1rem),\\r\\n calc(50% + 1rem) calc(100% - 1rem),\\r\\n 50% 100%,\\r\\n calc(50% - 1rem) calc(100% - 1rem),\\r\\n 0% calc(100% - 1rem)\\r\\n );\\r\\n}\\r\\n\\r\\n.text-underline {\\r\\n text-decoration: underline;\\r\\n}\\r\\n\\r\\n.bg-overlay-blueberry-dark {\\r\\n background: fade-out($info, 0.1);\\r\\n}\\r\\n\\r\\n.video-caption {\\r\\n display: block;\\r\\n margin-bottom: 1.5rem;\\r\\n font-weight: 400;\\r\\n}\\r\\n\\r\\n// Tooltips\\r\\n.tooltip.show {\\r\\n opacity: 0.95;\\r\\n}\\r\\n.tooltip .arrow::before {\\r\\n border-top-color: #f2b298;\\r\\n}\\r\\n.tooltip-inner {\\r\\n max-width: min(400px, 50vw);\\r\\n padding: 0.5rem;\\r\\n background-color: #f2b298;\\r\\n color: black;\\r\\n opacity: 1;\\r\\n}\\r\\n\\r\\n.w-md-75 {\\r\\n @media screen and (min-width: 768px) {\\r\\n width: 75%;\\r\\n }\\r\\n}\\r\\n\\r\\n.w-lg-50 {\\r\\n @media screen and (min-width: 992px) {\\r\\n width: 50%;\\r\\n }\\r\\n}\\r\\n\\r\\n.w-lg-100 {\\r\\n @media screen and (min-width: 992px) {\\r\\n width: 100% !important;\\r\\n }\\r\\n}\\r\\n\",\".module1__bg1 {\\r\\n background: url(\\\"../assets/gfx/module1-bg1.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module1__bg2 {\\r\\n background: url(\\\"../assets/gfx/module1-bg2.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module1__bg3 {\\r\\n background: url(\\\"../assets/gfx/module1-bg3.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\",\".module2__bg1 {\\r\\n background: url(\\\"../assets/gfx/module2-bg1.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module2__bg2 {\\r\\n background: url(\\\"../assets/gfx/module2-bg2.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\",\".module3__bg3 {\\r\\n background: url(\\\"../assets/gfx/module3-bg3.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module3__bg5 {\\r\\n background: url(\\\"../assets/gfx/module3-bg5.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module3__bg7 {\\r\\n background: url(\\\"../assets/gfx/module3-bg7.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module3__bg9 {\\r\\n background: url(\\\"../assets/gfx/module2-bg1.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\",\".module4__bg5 {\\r\\n background: url(\\\"../assets/gfx/module4-bg5.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\\r\\n.module4__bg8 {\\r\\n background: url(\\\"../assets/gfx/module4-bg8.jpg\\\");\\r\\n background-position: center center;\\r\\n background-size: cover;\\r\\n}\\r\\n\",\".training-header {\\r\\n background-image: url(\\\"../assets/gfx/04_meeting.jpg\\\");\\r\\n background-size: cover;\\r\\n background-position: center;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.subscribe-header {\\r\\n background-image: url(\\\"../assets/gfx/03_writing.jpg\\\");\\r\\n background-size: cover;\\r\\n background-position: center top;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== \"string\") {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n\n return url;\n};","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _slicedToArray = _interopDefault(require('babel-runtime/helpers/slicedToArray'));\nvar _getIterator = _interopDefault(require('babel-runtime/core-js/get-iterator'));\nvar _defineProperty = _interopDefault(require('babel-runtime/helpers/defineProperty'));\nvar _regeneratorRuntime = _interopDefault(require('babel-runtime/regenerator'));\nvar _Symbol$iterator = _interopDefault(require('babel-runtime/core-js/symbol/iterator'));\nvar _classCallCheck = _interopDefault(require('babel-runtime/helpers/classCallCheck'));\nvar _createClass = _interopDefault(require('babel-runtime/helpers/createClass'));\n\nvar INITIAL_STATE = 1;\nvar FAIL_STATE = 0;\n\n/**\n * A StateMachine represents a deterministic finite automaton.\n * It can perform matches over a sequence of values, similar to a regular expression.\n */\n\nvar StateMachine = function () {\n function StateMachine(dfa) {\n _classCallCheck(this, StateMachine);\n\n this.stateTable = dfa.stateTable;\n this.accepting = dfa.accepting;\n this.tags = dfa.tags;\n }\n\n /**\n * Returns an iterable object that yields pattern matches over the input sequence.\n * Matches are of the form [startIndex, endIndex, tags].\n */\n\n\n _createClass(StateMachine, [{\n key: 'match',\n value: function match(str) {\n var self = this;\n return _defineProperty({}, _Symbol$iterator, _regeneratorRuntime.mark(function _callee() {\n var state, startRun, lastAccepting, lastState, p, c;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n state = INITIAL_STATE;\n startRun = null;\n lastAccepting = null;\n lastState = null;\n p = 0;\n\n case 5:\n if (!(p < str.length)) {\n _context.next = 21;\n break;\n }\n\n c = str[p];\n\n\n lastState = state;\n state = self.stateTable[state][c];\n\n if (!(state === FAIL_STATE)) {\n _context.next = 15;\n break;\n }\n\n if (!(startRun != null && lastAccepting != null && lastAccepting >= startRun)) {\n _context.next = 13;\n break;\n }\n\n _context.next = 13;\n return [startRun, lastAccepting, self.tags[lastState]];\n\n case 13:\n\n // reset the state as if we started over from the initial state\n state = self.stateTable[INITIAL_STATE][c];\n startRun = null;\n\n case 15:\n\n // start a run if not in the failure state\n if (state !== FAIL_STATE && startRun == null) {\n startRun = p;\n }\n\n // if accepting, mark the potential match end\n if (self.accepting[state]) {\n lastAccepting = p;\n }\n\n // reset the state to the initial state if we get into the failure state\n if (state === FAIL_STATE) {\n state = INITIAL_STATE;\n }\n\n case 18:\n p++;\n _context.next = 5;\n break;\n\n case 21:\n if (!(startRun != null && lastAccepting != null && lastAccepting >= startRun)) {\n _context.next = 24;\n break;\n }\n\n _context.next = 24;\n return [startRun, lastAccepting, self.tags[state]];\n\n case 24:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }\n\n /**\n * For each match over the input sequence, action functions matching\n * the tag definitions in the input pattern are called with the startIndex,\n * endIndex, and sub-match sequence.\n */\n\n }, {\n key: 'apply',\n value: function apply(str, actions) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = _getIterator(this.match(str)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _step$value = _slicedToArray(_step.value, 3);\n\n var start = _step$value[0];\n var end = _step$value[1];\n var tags = _step$value[2];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = _getIterator(tags), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var tag = _step2.value;\n\n if (typeof actions[tag] === 'function') {\n actions[tag](start, end, str.slice(start, end + 1));\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\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\n return StateMachine;\n}();\n\nmodule.exports = StateMachine;\n//# sourceMappingURL=index.js.map\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\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","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","/**\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","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","// In our case, there's only one dependency\n\nvar toRgb = require('hsl-to-rgb-for-reals')\n\n// Typically all dependencies should be declared at the top of the file.\n\n// Now let's define an API for our module, we're taking hue, saturation and luminosity values and outputting a CSS compatible hex string.\n// Hue is in degrees, between 0 and 359. Since degrees a cyclical in nature, we'll support numbers greater than 359 or less than 0 by \"spinning\" them around until they fall within the 0 to 359 range.\n// Saturation and luminosity are both percentages, we'll represent these percentages with whole numbers between 0 and 100. For these numbers we'll need to enforce a maximum and a minimum, anything below 0 will become 0, anything above 100 will become 100.\n// Let's write some utility functions to handle this logic:\n\nfunction max (val, n) {\n return (val > n) ? n : val\n}\n\nfunction min (val, n) {\n return (val < n) ? n : val\n}\n\nfunction cycle (val) {\n // for safety:\n val = max(val, 1e7)\n val = min(val, -1e7)\n // cycle value:\n while (val < 0) { val += 360 }\n while (val > 359) { val -= 360 }\n return val\n}\n\n// Now for the main piece, the `hsl` function:\n\nfunction hsl (hue, saturation, luminosity) {\n // resolve degrees to 0 - 359 range\n hue = cycle(hue)\n\n // enforce constraints\n saturation = min(max(saturation, 100), 0)\n luminosity = min(max(luminosity, 100), 0)\n\n // convert to 0 to 1 range used by hsl-to-rgb-for-reals\n saturation /= 100\n luminosity /= 100\n\n // let hsl-to-rgb-for-reals do the hard work\n var rgb = toRgb(hue, saturation, luminosity)\n\n // convert each value in the returned RGB array\n // to a 2 character hex value, join the array into\n // a string, prefixed with a hash\n return '#' + rgb\n .map(function (n) {\n return (256 + n).toString(16).substr(-2)\n })\n .join('')\n}\n\n// In order to make our code into a bona fide module we have to export it:\n\nmodule.exports = hsl\n","// expected hue range: [0, 360)\n// expected saturation range: [0, 1]\n// expected lightness range: [0, 1]\nvar hslToRgb = function(hue, saturation, lightness){\n // based on algorithm from http://en.wikipedia.org/wiki/HSL_and_HSV#Converting_to_RGB\n if( hue == undefined ){\n return [0, 0, 0];\n }\n\n var chroma = (1 - Math.abs((2 * lightness) - 1)) * saturation;\n var huePrime = hue / 60;\n var secondComponent = chroma * (1 - Math.abs((huePrime % 2) - 1));\n\n huePrime = Math.floor(huePrime);\n var red;\n var green;\n var blue;\n\n if( huePrime === 0 ){\n red = chroma;\n green = secondComponent;\n blue = 0;\n }else if( huePrime === 1 ){\n red = secondComponent;\n green = chroma;\n blue = 0;\n }else if( huePrime === 2 ){\n red = 0;\n green = chroma;\n blue = secondComponent;\n }else if( huePrime === 3 ){\n red = 0;\n green = secondComponent;\n blue = chroma;\n }else if( huePrime === 4 ){\n red = secondComponent;\n green = 0;\n blue = chroma;\n }else if( huePrime === 5 ){\n red = chroma;\n green = 0;\n blue = secondComponent;\n }\n\n var lightnessAdjustment = lightness - (chroma / 2);\n red += lightnessAdjustment;\n green += lightnessAdjustment;\n blue += lightnessAdjustment;\n\n return [\n Math.abs(Math.round(red * 255)),\n Math.abs(Math.round(green * 255)),\n Math.abs(Math.round(blue * 255))\n ];\n\n};\n\nmodule.exports = hslToRgb;\n","/** Text hyphenation in Javascript.\n * Copyright (C) 2021 Yevhen Tiurin (yevhentiurin@gmail.com)\n * https://github.com/ytiurin/hyphen\n *\n * Released under the ISC license\n * https://github.com/ytiurin/hyphen/blob/master/LICENSE\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.createHyphenator = factory();\n }\n})(this, function () {\n var SETTING_DEFAULT_ASYNC = false,\n SETTING_DEFAULT_DEBUG = false,\n SETTING_DEFAULT_HTML = false,\n SETTING_DEFAULT_HYPH_CHAR = \"\\u00AD\",\n SETTING_DEFAULT_MIN_WORD_LENGTH = 5,\n SETTING_NAME_ASYNC = \"async\",\n SETTING_NAME_DEBUG = \"debug\",\n SETTING_NAME_HTML = \"html\",\n SETTING_NAME_HYPH_CHAR = \"hyphenChar\",\n SETTING_NAME_MIN_WORD_LENGTH = \"minWordLength\";\n\n var _global =\n typeof global === \"object\"\n ? global\n : typeof window === \"object\"\n ? window\n : typeof this === \"object\"\n ? this\n : {};\n\n function cloneObj(source) {\n var target = {};\n for (var key in source) {\n target[key] = source[key];\n }\n return target;\n }\n\n function keyOrDefault(object, key, defaultValue) {\n if (key in object) {\n return object[key];\n }\n return defaultValue;\n }\n\n function exceptionsFromDefinition(patternsDefinition, hyphenChar) {\n return patternsDefinition.exceptions.reduce(function (\n exceptions,\n exception\n ) {\n exceptions[exception.replace(/\\-/g, \"\")] = exception.replace(\n /\\-/g,\n hyphenChar\n );\n return exceptions;\n },\n {});\n }\n\n function createHyphenator(patternsDefinition, options) {\n options = options || {};\n var //\n asyncMode = keyOrDefault(\n options,\n SETTING_NAME_ASYNC,\n SETTING_DEFAULT_ASYNC\n ),\n caches = {},\n debug = keyOrDefault(options, SETTING_NAME_DEBUG, SETTING_DEFAULT_DEBUG),\n exceptions = {},\n hyphenChar = keyOrDefault(\n options,\n SETTING_NAME_HYPH_CHAR,\n SETTING_DEFAULT_HYPH_CHAR\n ),\n patterns = patternsDefinition.patterns.map(preprocessPattern),\n minWordLength =\n keyOrDefault(\n options,\n SETTING_NAME_MIN_WORD_LENGTH,\n SETTING_DEFAULT_MIN_WORD_LENGTH\n ) >> 0,\n skipHTML = keyOrDefault(options, SETTING_NAME_HTML, SETTING_DEFAULT_HTML);\n\n // Prepare cache\n var cacheKey = hyphenChar + minWordLength;\n exceptions[cacheKey] = exceptionsFromDefinition(\n patternsDefinition,\n hyphenChar\n );\n caches[cacheKey] = cloneObj(exceptions[cacheKey]);\n\n if (asyncMode && !(\"Promise\" in _global)) {\n throw new Error(\n \"Failed to create hyphenator: Could not find global Promise object, needed for hyphenator to work in async mode\"\n );\n }\n\n return function (text, options) {\n options = options || {};\n\n var localDebug = keyOrDefault(options, SETTING_NAME_DEBUG, debug),\n localHyphenChar = keyOrDefault(\n options,\n SETTING_NAME_HYPH_CHAR,\n hyphenChar\n ),\n localMinWordLength =\n keyOrDefault(options, SETTING_NAME_MIN_WORD_LENGTH, minWordLength) >>\n 0,\n cacheKey = localHyphenChar + localMinWordLength;\n\n if (!exceptions[cacheKey]) {\n exceptions[cacheKey] = exceptionsFromDefinition(\n patternsDefinition,\n localHyphenChar\n );\n }\n\n if (!caches[cacheKey]) {\n caches[cacheKey] = cloneObj(exceptions[cacheKey]);\n }\n\n return start(\n text,\n patterns,\n caches[cacheKey],\n localDebug,\n localHyphenChar,\n skipHTML,\n localMinWordLength,\n asyncMode\n );\n };\n }\n function createTextChunkReader(text, hyphenChar, skipHTML, minWordLength) {\n function readNextTextChunk() {\n var nextTextChunk = \"\";\n\n shouldHyphenate = void 0;\n\n chunkReader: while (nextCharIndex <= text.length) {\n var //\n nextChar = text.charAt(nextCharIndex++),\n charIsLetter =\n !!nextChar && !/\\s|[\\!-\\@\\[-\\`\\{-\\~\\u2013-\\u203C]/.test(nextChar),\n charIsAngleOpen = nextChar === \"<\",\n charIsAngleClose = nextChar === \">\",\n charIsHyphen = nextChar === hyphenChar;\n\n do {\n if (state === STATE_READ_TAG) {\n if (charIsAngleClose) {\n state = STATE_RETURN_UNTOUCHED;\n }\n break;\n }\n\n if (charIsHyphen) {\n shouldHyphenate = SHOULD_SKIP;\n state = STATE_READ_WORD;\n break;\n }\n\n if (charIsLetter) {\n state = STATE_READ_WORD;\n break;\n }\n\n if (state === STATE_READ_WORD) {\n state = STATE_RETURN_WORD;\n shouldHyphenate =\n shouldHyphenate ||\n (nextTextChunk.length >= minWordLength && SHOULD_HYPHENATE);\n break;\n }\n\n shouldHyphenate = SHOULD_SKIP;\n state = STATE_RETURN_UNTOUCHED;\n } while (0);\n\n if (\n charIsAngleOpen &&\n state !== STATE_RETURN_WORD &&\n skipHTML &&\n !isSpacelike(text.charAt(nextCharIndex))\n ) {\n shouldHyphenate = SHOULD_SKIP;\n state = STATE_READ_TAG;\n }\n\n switch (state) {\n case STATE_READ_TAG:\n nextTextChunk += nextChar;\n break;\n\n case STATE_READ_WORD:\n nextTextChunk += nextChar;\n break;\n\n case STATE_RETURN_UNTOUCHED:\n nextTextChunk += nextChar;\n break chunkReader;\n\n case STATE_RETURN_WORD:\n nextCharIndex--;\n break chunkReader;\n }\n }\n return nextTextChunk || void 0;\n }\n\n function shouldNextHyphenate() {\n return shouldHyphenate === SHOULD_HYPHENATE;\n }\n\n var isSpacelike = RegExp.prototype.test.bind(/\\s/);\n\n var //\n nextCharIndex = 0,\n SHOULD_HYPHENATE = 1,\n SHOULD_SKIP = 2,\n shouldHyphenate,\n STATE_READ_TAG = 1,\n STATE_READ_WORD = 2,\n STATE_RETURN_UNTOUCHED = 3,\n STATE_RETURN_WORD = 4,\n state;\n\n return [readNextTextChunk, shouldNextHyphenate];\n }\n function hyphenateWord(text, patterns, debug, hyphenChar) {\n var //\n levels = new Array(text.length + 1),\n loweredText = text.toLocaleLowerCase(),\n p = [],\n patternData,\n patternIndex = 0;\n\n for (var i = levels.length; i--; ) levels[i] = 0;\n\n while ((patternData = patterns[patternIndex++])) {\n var //\n fromChar = 0,\n endPattern = false;\n while (!endPattern) {\n var //\n patternEntityIndex = loweredText.indexOf(patternData.text, fromChar),\n patternFits =\n patternEntityIndex > -1 &&\n (patternData.stickToLeft ? patternEntityIndex === 0 : true) &&\n (patternData.stickToRight\n ? patternEntityIndex + patternData.text.length === text.length\n : true);\n\n if (patternFits) {\n p.push(patternData.pattern + \">\" + patternData.levels.join(\"\"));\n\n for (var i = 0; i < patternData.levels.length; i++)\n levels[patternEntityIndex + i] = Math.max(\n patternData.levels[i],\n levels[patternEntityIndex + i]\n );\n }\n if (patternEntityIndex > -1 && patternData.text.length > 0) {\n fromChar = patternEntityIndex + patternData.text.length + 1;\n } else {\n endPattern = true;\n }\n }\n }\n\n levels[0] = levels[1] = levels[levels.length - 1] = levels[\n levels.length - 2\n ] = 0;\n\n var //\n hyphenatedText = \"\",\n leveledText = \"\",\n debugHyphenatedText = \"\";\n\n for (var i = 0; i < levels.length; i++) {\n hyphenatedText +=\n (levels[i] % 2 === 1 ? hyphenChar : \"\") + text.charAt(i);\n debugHyphenatedText += (levels[i] % 2 === 1 ? \"-\" : \"\") + text.charAt(i);\n leveledText += (levels[i] > 0 ? levels[i] : \"\") + text.charAt(i);\n }\n\n if (debug)\n console.log.apply(\n console,\n [text, \"->\"]\n .concat(p)\n .concat([\"->\"])\n .concat(levels)\n .concat([\"->\", leveledText])\n .concat([\"->\", debugHyphenatedText])\n );\n\n return hyphenatedText;\n }\n function preprocessPattern(pattern) {\n var //\n patternCharIndex = 0,\n patternChar,\n patternData = {\n pattern: pattern,\n text: \"\",\n levels: [],\n stickToLeft: 0,\n stickToRight: 0\n },\n states = { alphabet: 1, level: 2, stickToLeft: 3, stickToRight: 4 };\n\n while ((patternChar = pattern.charAt(patternCharIndex++))) {\n var //\n charIsDot = patternChar === \".\",\n charIsNumber = !charIsDot && /\\d/.test(patternChar),\n state = charIsDot\n ? patternCharIndex - 1 === 0\n ? states.stickToLeft\n : states.stickToRight\n : charIsNumber\n ? states.level\n : states.alphabet;\n\n switch (state) {\n case states.alphabet:\n !prevCharIsNumber && patternData.levels.push(0);\n patternData.text += patternChar;\n break;\n\n case states.level:\n patternData.levels.push(parseInt(patternChar));\n break;\n\n case states.stickToLeft:\n patternData.stickToLeft = true;\n break;\n\n case states.stickToRight:\n patternData.stickToRight = true;\n break;\n }\n\n var prevCharIsNumber = charIsNumber;\n }\n\n return patternData;\n }\n function start(\n text,\n patterns,\n cache,\n debug,\n hyphenChar,\n skipHTML,\n minWordLength,\n isAsync\n ) {\n function done() {\n allTime = new Date() - allTime;\n resolveNewText(newText);\n\n if (debug) {\n console.log(\n \"----------------\\nHyphenation stats: \" +\n processedN +\n \" text chunks processed, \" +\n hyphenatedN +\n \" words hyphenated\"\n );\n console.log(\"Work time: \" + workTime / 1000);\n console.log(\"Wait time: \" + (allTime - workTime) / 1000);\n console.log(\"All time: \" + allTime / 1000);\n }\n }\n\n var //\n cacheKey,\n newText = \"\",\n textChunk,\n reader = createTextChunkReader(text, hyphenChar, skipHTML, minWordLength),\n readNextTextChunk = reader[0],\n shouldNextHyphenate = reader[1],\n processedN = 0,\n hyphenatedN = 0;\n\n var //\n allTime = new Date(),\n workTime = 0;\n\n var resolveNewText = function () {};\n\n function nextTick() {\n var loopStart = new Date();\n\n while (\n (!isAsync || new Date() - loopStart < 10) &&\n (textChunk = readNextTextChunk())\n ) {\n cacheKey = textChunk.length ? \"$\" + textChunk : \"\";\n\n if (shouldNextHyphenate()) {\n if (cache[cacheKey] === undefined) {\n cache[cacheKey] = hyphenateWord(\n textChunk,\n patterns,\n debug,\n hyphenChar\n );\n }\n\n if (textChunk !== cache[cacheKey]) {\n hyphenatedN++;\n }\n\n textChunk = cache[cacheKey];\n }\n\n newText += textChunk;\n processedN++;\n }\n\n workTime += new Date() - loopStart;\n\n if (!textChunk) {\n done();\n } else {\n setTimeout(nextTick);\n }\n }\n\n if (isAsync) {\n setTimeout(nextTick);\n return new Promise(function (resolve) {\n resolveNewText = resolve;\n });\n } else {\n nextTick();\n return newText;\n }\n }\n\n return createHyphenator;\n});\n","module.exports = require(\"./hyphen.js\");\r\n","(function (root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n } else if (typeof module === \"object\" && module.exports) {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory();\r\n } else {\r\n // Browser globals (root is window)\r\n root.hyphenationPatternsEnUs = factory();\r\n }\r\n})(this, function () {\r\n var patterns = [],\r\n hyphenation = [];\r\n\r\n // title: Hyphenation patterns for American English\r\n // copyright: Copyright (C) 1990, 2004, 2005 Gerard D.C. Kuiken\r\n // notice: This file is part of the hyph-utf8 package.\r\n // See http://www.hyphenation.org/tex for more information.\r\n // language:\r\n // name: English, American spelling\r\n // tag: en-us\r\n // version: 2005-05-30\r\n // authors:\r\n // -\r\n // name: Gerard D.C. Kuiken\r\n // licence:\r\n // text: >\r\n // Copying and distribution of this file, with or without modification,\r\n // are permitted in any medium without royalty provided the copyright\r\n // notice and this notice are preserved.\r\n // changes:\r\n // March 1, 1990 Initial release\r\n // May 30, 2005 Added copyright notice, no patterns change.\r\n // ==========================================\r\n //\r\n // ushyphmax.tex -- patterns for more hyphenation pattern memory (12000+).\r\n // Also known as ushyphen.max.\r\n //\r\n // Needs extended pattern memory.\r\n // Hyphenation trie becomes 7283 with 377 ops.\r\n //\r\n // These patterns are based on the Hyphenation Exception Log\r\n // published in TUGboat, Volume 10 (1989), No. 3, pp. 337-341,\r\n // and a large number of incorrectly hyphenated words not yet published.\r\n // If added to Liang's before the closing bracket } of \\patterns,\r\n // the patterns run errorfree as far as known at this moment.\r\n //\r\n // These patterns find all admissible hyphens of the words in\r\n // the Exception Log. ushyph2.tex is a smaller set.\r\n //\r\n // Please send bugs or suggestions to tex-live (at) tug.org.\r\n //\r\n // 2005-05-30 (karl): in the past, ushyphmax.tex was a file containing\r\n // only the additional patterns, without the \\patterns command, etc.\r\n // This turned out not to be very useful, since in practice the TeX\r\n // distributions need one self-contained file for a language. Therefore,\r\n // ushyphmax.tex now contains both the additional patterns from\r\n // Dr. Kuiken, and the original patterns and hyphenations from Knuth's\r\n // hyphen.tex.\r\n //\r\n // The Plain TeX hyphenation tables.\r\n var patterns = [\r\n \" \", // just type if you're not using INITEX\r\n \".ach4\",\r\n \".ad4der\",\r\n \".af1t\",\r\n \".al3t\",\r\n \".am5at\",\r\n \".an5c\",\r\n \".ang4\",\r\n \".ani5m\",\r\n \".ant4\",\r\n \".an3te\",\r\n \".anti5s\",\r\n \".ar5s\",\r\n \".ar4tie\",\r\n \".ar4ty\",\r\n \".as3c\",\r\n \".as1p\",\r\n \".as1s\",\r\n \".aster5\",\r\n \".atom5\",\r\n \".au1d\",\r\n \".av4i\",\r\n \".awn4\",\r\n \".ba4g\",\r\n \".ba5na\",\r\n \".bas4e\",\r\n \".ber4\",\r\n \".be5ra\",\r\n \".be3sm\",\r\n \".be5sto\",\r\n \".bri2\",\r\n \".but4ti\",\r\n \".cam4pe\",\r\n \".can5c\",\r\n \".capa5b\",\r\n \".car5ol\",\r\n \".ca4t\",\r\n \".ce4la\",\r\n \".ch4\",\r\n \".chill5i\",\r\n \".ci2\",\r\n \".cit5r\",\r\n \".co3e\",\r\n \".co4r\",\r\n \".cor5ner\",\r\n \".de4moi\",\r\n \".de3o\",\r\n \".de3ra\",\r\n \".de3ri\",\r\n \".des4c\",\r\n \".dictio5\",\r\n \".do4t\",\r\n \".du4c\",\r\n \".dumb5\",\r\n \".earth5\",\r\n \".eas3i\",\r\n \".eb4\",\r\n \".eer4\",\r\n \".eg2\",\r\n \".el5d\",\r\n \".el3em\",\r\n \".enam3\",\r\n \".en3g\",\r\n \".en3s\",\r\n \".eq5ui5t\",\r\n \".er4ri\",\r\n \".es3\",\r\n \".eu3\",\r\n \".eye5\",\r\n \".fes3\",\r\n \".for5mer\",\r\n \".ga2\",\r\n \".ge2\",\r\n \".gen3t4\",\r\n \".ge5og\",\r\n \".gi5a\",\r\n \".gi4b\",\r\n \".go4r\",\r\n \".hand5i\",\r\n \".han5k\",\r\n \".he2\",\r\n \".hero5i\",\r\n \".hes3\",\r\n \".het3\",\r\n \".hi3b\",\r\n \".hi3er\",\r\n \".hon5ey\",\r\n \".hon3o\",\r\n \".hov5\",\r\n \".id4l\",\r\n \".idol3\",\r\n \".im3m\",\r\n \".im5pin\",\r\n \".in1\",\r\n \".in3ci\",\r\n \".ine2\",\r\n \".in2k\",\r\n \".in3s\",\r\n \".ir5r\",\r\n \".is4i\",\r\n \".ju3r\",\r\n \".la4cy\",\r\n \".la4m\",\r\n \".lat5er\",\r\n \".lath5\",\r\n \".le2\",\r\n \".leg5e\",\r\n \".len4\",\r\n \".lep5\",\r\n \".lev1\",\r\n \".li4g\",\r\n \".lig5a\",\r\n \".li2n\",\r\n \".li3o\",\r\n \".li4t\",\r\n \".mag5a5\",\r\n \".mal5o\",\r\n \".man5a\",\r\n \".mar5ti\",\r\n \".me2\",\r\n \".mer3c\",\r\n \".me5ter\",\r\n \".mis1\",\r\n \".mist5i\",\r\n \".mon3e\",\r\n \".mo3ro\",\r\n \".mu5ta\",\r\n \".muta5b\",\r\n \".ni4c\",\r\n \".od2\",\r\n \".odd5\",\r\n \".of5te\",\r\n \".or5ato\",\r\n \".or3c\",\r\n \".or1d\",\r\n \".or3t\",\r\n \".os3\",\r\n \".os4tl\",\r\n \".oth3\",\r\n \".out3\",\r\n \".ped5al\",\r\n \".pe5te\",\r\n \".pe5tit\",\r\n \".pi4e\",\r\n \".pio5n\",\r\n \".pi2t\",\r\n \".pre3m\",\r\n \".ra4c\",\r\n \".ran4t\",\r\n \".ratio5na\",\r\n \".ree2\",\r\n \".re5mit\",\r\n \".res2\",\r\n \".re5stat\",\r\n \".ri4g\",\r\n \".rit5u\",\r\n \".ro4q\",\r\n \".ros5t\",\r\n \".row5d\",\r\n \".ru4d\",\r\n \".sci3e\",\r\n \".self5\",\r\n \".sell5\",\r\n \".se2n\",\r\n \".se5rie\",\r\n \".sh2\",\r\n \".si2\",\r\n \".sing4\",\r\n \".st4\",\r\n \".sta5bl\",\r\n \".sy2\",\r\n \".ta4\",\r\n \".te4\",\r\n \".ten5an\",\r\n \".th2\",\r\n \".ti2\",\r\n \".til4\",\r\n \".tim5o5\",\r\n \".ting4\",\r\n \".tin5k\",\r\n \".ton4a\",\r\n \".to4p\",\r\n \".top5i\",\r\n \".tou5s\",\r\n \".trib5ut\",\r\n \".un1a\",\r\n \".un3ce\",\r\n \".under5\",\r\n \".un1e\",\r\n \".un5k\",\r\n \".un5o\",\r\n \".un3u\",\r\n \".up3\",\r\n \".ure3\",\r\n \".us5a\",\r\n \".ven4de\",\r\n \".ve5ra\",\r\n \".wil5i\",\r\n \".ye4\",\r\n \"4ab.\",\r\n \"a5bal\",\r\n \"a5ban\",\r\n \"abe2\",\r\n \"ab5erd\",\r\n \"abi5a\",\r\n \"ab5it5ab\",\r\n \"ab5lat\",\r\n \"ab5o5liz\",\r\n \"4abr\",\r\n \"ab5rog\",\r\n \"ab3ul\",\r\n \"a4car\",\r\n \"ac5ard\",\r\n \"ac5aro\",\r\n \"a5ceou\",\r\n \"ac1er\",\r\n \"a5chet\",\r\n \"4a2ci\",\r\n \"a3cie\",\r\n \"ac1in\",\r\n \"a3cio\",\r\n \"ac5rob\",\r\n \"act5if\",\r\n \"ac3ul\",\r\n \"ac4um\",\r\n \"a2d\",\r\n \"ad4din\",\r\n \"ad5er.\",\r\n \"2adi\",\r\n \"a3dia\",\r\n \"ad3ica\",\r\n \"adi4er\",\r\n \"a3dio\",\r\n \"a3dit\",\r\n \"a5diu\",\r\n \"ad4le\",\r\n \"ad3ow\",\r\n \"ad5ran\",\r\n \"ad4su\",\r\n \"4adu\",\r\n \"a3duc\",\r\n \"ad5um\",\r\n \"ae4r\",\r\n \"aeri4e\",\r\n \"a2f\",\r\n \"aff4\",\r\n \"a4gab\",\r\n \"aga4n\",\r\n \"ag5ell\",\r\n \"age4o\",\r\n \"4ageu\",\r\n \"ag1i\",\r\n \"4ag4l\",\r\n \"ag1n\",\r\n \"a2go\",\r\n \"3agog\",\r\n \"ag3oni\",\r\n \"a5guer\",\r\n \"ag5ul\",\r\n \"a4gy\",\r\n \"a3ha\",\r\n \"a3he\",\r\n \"ah4l\",\r\n \"a3ho\",\r\n \"ai2\",\r\n \"a5ia\",\r\n \"a3ic.\",\r\n \"ai5ly\",\r\n \"a4i4n\",\r\n \"ain5in\",\r\n \"ain5o\",\r\n \"ait5en\",\r\n \"a1j\",\r\n \"ak1en\",\r\n \"al5ab\",\r\n \"al3ad\",\r\n \"a4lar\",\r\n \"4aldi\",\r\n \"2ale\",\r\n \"al3end\",\r\n \"a4lenti\",\r\n \"a5le5o\",\r\n \"al1i\",\r\n \"al4ia.\",\r\n \"ali4e\",\r\n \"al5lev\",\r\n \"4allic\",\r\n \"4alm\",\r\n \"a5log.\",\r\n \"a4ly.\",\r\n \"4alys\",\r\n \"5a5lyst\",\r\n \"5alyt\",\r\n \"3alyz\",\r\n \"4ama\",\r\n \"am5ab\",\r\n \"am3ag\",\r\n \"ama5ra\",\r\n \"am5asc\",\r\n \"a4matis\",\r\n \"a4m5ato\",\r\n \"am5era\",\r\n \"am3ic\",\r\n \"am5if\",\r\n \"am5ily\",\r\n \"am1in\",\r\n \"ami4no\",\r\n \"a2mo\",\r\n \"a5mon\",\r\n \"amor5i\",\r\n \"amp5en\",\r\n \"a2n\",\r\n \"an3age\",\r\n \"3analy\",\r\n \"a3nar\",\r\n \"an3arc\",\r\n \"anar4i\",\r\n \"a3nati\",\r\n \"4and\",\r\n \"ande4s\",\r\n \"an3dis\",\r\n \"an1dl\",\r\n \"an4dow\",\r\n \"a5nee\",\r\n \"a3nen\",\r\n \"an5est.\",\r\n \"a3neu\",\r\n \"2ang\",\r\n \"ang5ie\",\r\n \"an1gl\",\r\n \"a4n1ic\",\r\n \"a3nies\",\r\n \"an3i3f\",\r\n \"an4ime\",\r\n \"a5nimi\",\r\n \"a5nine\",\r\n \"an3io\",\r\n \"a3nip\",\r\n \"an3ish\",\r\n \"an3it\",\r\n \"a3niu\",\r\n \"an4kli\",\r\n \"5anniz\",\r\n \"ano4\",\r\n \"an5ot\",\r\n \"anoth5\",\r\n \"an2sa\",\r\n \"an4sco\",\r\n \"an4sn\",\r\n \"an2sp\",\r\n \"ans3po\",\r\n \"an4st\",\r\n \"an4sur\",\r\n \"antal4\",\r\n \"an4tie\",\r\n \"4anto\",\r\n \"an2tr\",\r\n \"an4tw\",\r\n \"an3ua\",\r\n \"an3ul\",\r\n \"a5nur\",\r\n \"4ao\",\r\n \"apar4\",\r\n \"ap5at\",\r\n \"ap5ero\",\r\n \"a3pher\",\r\n \"4aphi\",\r\n \"a4pilla\",\r\n \"ap5illar\",\r\n \"ap3in\",\r\n \"ap3ita\",\r\n \"a3pitu\",\r\n \"a2pl\",\r\n \"apoc5\",\r\n \"ap5ola\",\r\n \"apor5i\",\r\n \"apos3t\",\r\n \"aps5es\",\r\n \"a3pu\",\r\n \"aque5\",\r\n \"2a2r\",\r\n \"ar3act\",\r\n \"a5rade\",\r\n \"ar5adis\",\r\n \"ar3al\",\r\n \"a5ramete\",\r\n \"aran4g\",\r\n \"ara3p\",\r\n \"ar4at\",\r\n \"a5ratio\",\r\n \"ar5ativ\",\r\n \"a5rau\",\r\n \"ar5av4\",\r\n \"araw4\",\r\n \"arbal4\",\r\n \"ar4chan\",\r\n \"ar5dine\",\r\n \"ar4dr\",\r\n \"ar5eas\",\r\n \"a3ree\",\r\n \"ar3ent\",\r\n \"a5ress\",\r\n \"ar4fi\",\r\n \"ar4fl\",\r\n \"ar1i\",\r\n \"ar5ial\",\r\n \"ar3ian\",\r\n \"a3riet\",\r\n \"ar4im\",\r\n \"ar5inat\",\r\n \"ar3io\",\r\n \"ar2iz\",\r\n \"ar2mi\",\r\n \"ar5o5d\",\r\n \"a5roni\",\r\n \"a3roo\",\r\n \"ar2p\",\r\n \"ar3q\",\r\n \"arre4\",\r\n \"ar4sa\",\r\n \"ar2sh\",\r\n \"4as.\",\r\n \"as4ab\",\r\n \"as3ant\",\r\n \"ashi4\",\r\n \"a5sia.\",\r\n \"a3sib\",\r\n \"a3sic\",\r\n \"5a5si4t\",\r\n \"ask3i\",\r\n \"as4l\",\r\n \"a4soc\",\r\n \"as5ph\",\r\n \"as4sh\",\r\n \"as3ten\",\r\n \"as1tr\",\r\n \"asur5a\",\r\n \"a2ta\",\r\n \"at3abl\",\r\n \"at5ac\",\r\n \"at3alo\",\r\n \"at5ap\",\r\n \"ate5c\",\r\n \"at5ech\",\r\n \"at3ego\",\r\n \"at3en.\",\r\n \"at3era\",\r\n \"ater5n\",\r\n \"a5terna\",\r\n \"at3est\",\r\n \"at5ev\",\r\n \"4ath\",\r\n \"ath5em\",\r\n \"a5then\",\r\n \"at4ho\",\r\n \"ath5om\",\r\n \"4ati.\",\r\n \"a5tia\",\r\n \"at5i5b\",\r\n \"at1ic\",\r\n \"at3if\",\r\n \"ation5ar\",\r\n \"at3itu\",\r\n \"a4tog\",\r\n \"a2tom\",\r\n \"at5omiz\",\r\n \"a4top\",\r\n \"a4tos\",\r\n \"a1tr\",\r\n \"at5rop\",\r\n \"at4sk\",\r\n \"at4tag\",\r\n \"at5te\",\r\n \"at4th\",\r\n \"a2tu\",\r\n \"at5ua\",\r\n \"at5ue\",\r\n \"at3ul\",\r\n \"at3ura\",\r\n \"a2ty\",\r\n \"au4b\",\r\n \"augh3\",\r\n \"au3gu\",\r\n \"au4l2\",\r\n \"aun5d\",\r\n \"au3r\",\r\n \"au5sib\",\r\n \"aut5en\",\r\n \"au1th\",\r\n \"a2va\",\r\n \"av3ag\",\r\n \"a5van\",\r\n \"ave4no\",\r\n \"av3era\",\r\n \"av5ern\",\r\n \"av5ery\",\r\n \"av1i\",\r\n \"avi4er\",\r\n \"av3ig\",\r\n \"av5oc\",\r\n \"a1vor\",\r\n \"3away\",\r\n \"aw3i\",\r\n \"aw4ly\",\r\n \"aws4\",\r\n \"ax4ic\",\r\n \"ax4id\",\r\n \"ay5al\",\r\n \"aye4\",\r\n \"ays4\",\r\n \"azi4er\",\r\n \"azz5i\",\r\n \"5ba.\",\r\n \"bad5ger\",\r\n \"ba4ge\",\r\n \"bal1a\",\r\n \"ban5dag\",\r\n \"ban4e\",\r\n \"ban3i\",\r\n \"barbi5\",\r\n \"bari4a\",\r\n \"bas4si\",\r\n \"1bat\",\r\n \"ba4z\",\r\n \"2b1b\",\r\n \"b2be\",\r\n \"b3ber\",\r\n \"bbi4na\",\r\n \"4b1d\",\r\n \"4be.\",\r\n \"beak4\",\r\n \"beat3\",\r\n \"4be2d\",\r\n \"be3da\",\r\n \"be3de\",\r\n \"be3di\",\r\n \"be3gi\",\r\n \"be5gu\",\r\n \"1bel\",\r\n \"be1li\",\r\n \"be3lo\",\r\n \"4be5m\",\r\n \"be5nig\",\r\n \"be5nu\",\r\n \"4bes4\",\r\n \"be3sp\",\r\n \"be5str\",\r\n \"3bet\",\r\n \"bet5iz\",\r\n \"be5tr\",\r\n \"be3tw\",\r\n \"be3w\",\r\n \"be5yo\",\r\n \"2bf\",\r\n \"4b3h\",\r\n \"bi2b\",\r\n \"bi4d\",\r\n \"3bie\",\r\n \"bi5en\",\r\n \"bi4er\",\r\n \"2b3if\",\r\n \"1bil\",\r\n \"bi3liz\",\r\n \"bina5r4\",\r\n \"bin4d\",\r\n \"bi5net\",\r\n \"bi3ogr\",\r\n \"bi5ou\",\r\n \"bi2t\",\r\n \"3bi3tio\",\r\n \"bi3tr\",\r\n \"3bit5ua\",\r\n \"b5itz\",\r\n \"b1j\",\r\n \"bk4\",\r\n \"b2l2\",\r\n \"blath5\",\r\n \"b4le.\",\r\n \"blen4\",\r\n \"5blesp\",\r\n \"b3lis\",\r\n \"b4lo\",\r\n \"blun4t\",\r\n \"4b1m\",\r\n \"4b3n\",\r\n \"bne5g\",\r\n \"3bod\",\r\n \"bod3i\",\r\n \"bo4e\",\r\n \"bol3ic\",\r\n \"bom4bi\",\r\n \"bon4a\",\r\n \"bon5at\",\r\n \"3boo\",\r\n \"5bor.\",\r\n \"4b1ora\",\r\n \"bor5d\",\r\n \"5bore\",\r\n \"5bori\",\r\n \"5bos4\",\r\n \"b5ota\",\r\n \"both5\",\r\n \"bo4to\",\r\n \"bound3\",\r\n \"4bp\",\r\n \"4brit\",\r\n \"broth3\",\r\n \"2b5s2\",\r\n \"bsor4\",\r\n \"2bt\",\r\n \"bt4l\",\r\n \"b4to\",\r\n \"b3tr\",\r\n \"buf4fer\",\r\n \"bu4ga\",\r\n \"bu3li\",\r\n \"bumi4\",\r\n \"bu4n\",\r\n \"bunt4i\",\r\n \"bu3re\",\r\n \"bus5ie\",\r\n \"buss4e\",\r\n \"5bust\",\r\n \"4buta\",\r\n \"3butio\",\r\n \"b5uto\",\r\n \"b1v\",\r\n \"4b5w\",\r\n \"5by.\",\r\n \"bys4\",\r\n \"1ca\",\r\n \"cab3in\",\r\n \"ca1bl\",\r\n \"cach4\",\r\n \"ca5den\",\r\n \"4cag4\",\r\n \"2c5ah\",\r\n \"ca3lat\",\r\n \"cal4la\",\r\n \"call5in\",\r\n \"4calo\",\r\n \"can5d\",\r\n \"can4e\",\r\n \"can4ic\",\r\n \"can5is\",\r\n \"can3iz\",\r\n \"can4ty\",\r\n \"cany4\",\r\n \"ca5per\",\r\n \"car5om\",\r\n \"cast5er\",\r\n \"cas5tig\",\r\n \"4casy\",\r\n \"ca4th\",\r\n \"4cativ\",\r\n \"cav5al\",\r\n \"c3c\",\r\n \"ccha5\",\r\n \"cci4a\",\r\n \"ccompa5\",\r\n \"ccon4\",\r\n \"ccou3t\",\r\n \"2ce.\",\r\n \"4ced.\",\r\n \"4ceden\",\r\n \"3cei\",\r\n \"5cel.\",\r\n \"3cell\",\r\n \"1cen\",\r\n \"3cenc\",\r\n \"2cen4e\",\r\n \"4ceni\",\r\n \"3cent\",\r\n \"3cep\",\r\n \"ce5ram\",\r\n \"4cesa\",\r\n \"3cessi\",\r\n \"ces5si5b\",\r\n \"ces5t\",\r\n \"cet4\",\r\n \"c5e4ta\",\r\n \"cew4\",\r\n \"2ch\",\r\n \"4ch.\",\r\n \"4ch3ab\",\r\n \"5chanic\",\r\n \"ch5a5nis\",\r\n \"che2\",\r\n \"cheap3\",\r\n \"4ched\",\r\n \"che5lo\",\r\n \"3chemi\",\r\n \"ch5ene\",\r\n \"ch3er.\",\r\n \"ch3ers\",\r\n \"4ch1in\",\r\n \"5chine.\",\r\n \"ch5iness\",\r\n \"5chini\",\r\n \"5chio\",\r\n \"3chit\",\r\n \"chi2z\",\r\n \"3cho2\",\r\n \"ch4ti\",\r\n \"1ci\",\r\n \"3cia\",\r\n \"ci2a5b\",\r\n \"cia5r\",\r\n \"ci5c\",\r\n \"4cier\",\r\n \"5cific.\",\r\n \"4cii\",\r\n \"ci4la\",\r\n \"3cili\",\r\n \"2cim\",\r\n \"2cin\",\r\n \"c4ina\",\r\n \"3cinat\",\r\n \"cin3em\",\r\n \"c1ing\",\r\n \"c5ing.\",\r\n \"5cino\",\r\n \"cion4\",\r\n \"4cipe\",\r\n \"ci3ph\",\r\n \"4cipic\",\r\n \"4cista\",\r\n \"4cisti\",\r\n \"2c1it\",\r\n \"cit3iz\",\r\n \"5ciz\",\r\n \"ck1\",\r\n \"ck3i\",\r\n \"1c4l4\",\r\n \"4clar\",\r\n \"c5laratio\",\r\n \"5clare\",\r\n \"cle4m\",\r\n \"4clic\",\r\n \"clim4\",\r\n \"cly4\",\r\n \"c5n\",\r\n \"1co\",\r\n \"co5ag\",\r\n \"coe2\",\r\n \"2cog\",\r\n \"co4gr\",\r\n \"coi4\",\r\n \"co3inc\",\r\n \"col5i\",\r\n \"5colo\",\r\n \"col3or\",\r\n \"com5er\",\r\n \"con4a\",\r\n \"c4one\",\r\n \"con3g\",\r\n \"con5t\",\r\n \"co3pa\",\r\n \"cop3ic\",\r\n \"co4pl\",\r\n \"4corb\",\r\n \"coro3n\",\r\n \"cos4e\",\r\n \"cov1\",\r\n \"cove4\",\r\n \"cow5a\",\r\n \"coz5e\",\r\n \"co5zi\",\r\n \"c1q\",\r\n \"cras5t\",\r\n \"5crat.\",\r\n \"5cratic\",\r\n \"cre3at\",\r\n \"5cred\",\r\n \"4c3reta\",\r\n \"cre4v\",\r\n \"cri2\",\r\n \"cri5f\",\r\n \"c4rin\",\r\n \"cris4\",\r\n \"5criti\",\r\n \"cro4pl\",\r\n \"crop5o\",\r\n \"cros4e\",\r\n \"cru4d\",\r\n \"4c3s2\",\r\n \"2c1t\",\r\n \"cta4b\",\r\n \"ct5ang\",\r\n \"c5tant\",\r\n \"c2te\",\r\n \"c3ter\",\r\n \"c4ticu\",\r\n \"ctim3i\",\r\n \"ctu4r\",\r\n \"c4tw\",\r\n \"cud5\",\r\n \"c4uf\",\r\n \"c4ui\",\r\n \"cu5ity\",\r\n \"5culi\",\r\n \"cul4tis\",\r\n \"3cultu\",\r\n \"cu2ma\",\r\n \"c3ume\",\r\n \"cu4mi\",\r\n \"3cun\",\r\n \"cu3pi\",\r\n \"cu5py\",\r\n \"cur5a4b\",\r\n \"cu5ria\",\r\n \"1cus\",\r\n \"cuss4i\",\r\n \"3c4ut\",\r\n \"cu4tie\",\r\n \"4c5utiv\",\r\n \"4cutr\",\r\n \"1cy\",\r\n \"cze4\",\r\n \"1d2a\",\r\n \"5da.\",\r\n \"2d3a4b\",\r\n \"dach4\",\r\n \"4daf\",\r\n \"2dag\",\r\n \"da2m2\",\r\n \"dan3g\",\r\n \"dard5\",\r\n \"dark5\",\r\n \"4dary\",\r\n \"3dat\",\r\n \"4dativ\",\r\n \"4dato\",\r\n \"5dav4\",\r\n \"dav5e\",\r\n \"5day\",\r\n \"d1b\",\r\n \"d5c\",\r\n \"d1d4\",\r\n \"2de.\",\r\n \"deaf5\",\r\n \"deb5it\",\r\n \"de4bon\",\r\n \"decan4\",\r\n \"de4cil\",\r\n \"de5com\",\r\n \"2d1ed\",\r\n \"4dee.\",\r\n \"de5if\",\r\n \"deli4e\",\r\n \"del5i5q\",\r\n \"de5lo\",\r\n \"d4em\",\r\n \"5dem.\",\r\n \"3demic\",\r\n \"dem5ic.\",\r\n \"de5mil\",\r\n \"de4mons\",\r\n \"demor5\",\r\n \"1den\",\r\n \"de4nar\",\r\n \"de3no\",\r\n \"denti5f\",\r\n \"de3nu\",\r\n \"de1p\",\r\n \"de3pa\",\r\n \"depi4\",\r\n \"de2pu\",\r\n \"d3eq\",\r\n \"d4erh\",\r\n \"5derm\",\r\n \"dern5iz\",\r\n \"der5s\",\r\n \"des2\",\r\n \"d2es.\",\r\n \"de1sc\",\r\n \"de2s5o\",\r\n \"des3ti\",\r\n \"de3str\",\r\n \"de4su\",\r\n \"de1t\",\r\n \"de2to\",\r\n \"de1v\",\r\n \"dev3il\",\r\n \"4dey\",\r\n \"4d1f\",\r\n \"d4ga\",\r\n \"d3ge4t\",\r\n \"dg1i\",\r\n \"d2gy\",\r\n \"d1h2\",\r\n \"5di.\",\r\n \"1d4i3a\",\r\n \"dia5b\",\r\n \"di4cam\",\r\n \"d4ice\",\r\n \"3dict\",\r\n \"3did\",\r\n \"5di3en\",\r\n \"d1if\",\r\n \"di3ge\",\r\n \"di4lato\",\r\n \"d1in\",\r\n \"1dina\",\r\n \"3dine.\",\r\n \"5dini\",\r\n \"di5niz\",\r\n \"1dio\",\r\n \"dio5g\",\r\n \"di4pl\",\r\n \"dir2\",\r\n \"di1re\",\r\n \"dirt5i\",\r\n \"dis1\",\r\n \"5disi\",\r\n \"d4is3t\",\r\n \"d2iti\",\r\n \"1di1v\",\r\n \"d1j\",\r\n \"d5k2\",\r\n \"4d5la\",\r\n \"3dle.\",\r\n \"3dled\",\r\n \"3dles.\",\r\n \"4dless\",\r\n \"2d3lo\",\r\n \"4d5lu\",\r\n \"2dly\",\r\n \"d1m\",\r\n \"4d1n4\",\r\n \"1do\",\r\n \"3do.\",\r\n \"do5de\",\r\n \"5doe\",\r\n \"2d5of\",\r\n \"d4og\",\r\n \"do4la\",\r\n \"doli4\",\r\n \"do5lor\",\r\n \"dom5iz\",\r\n \"do3nat\",\r\n \"doni4\",\r\n \"doo3d\",\r\n \"dop4p\",\r\n \"d4or\",\r\n \"3dos\",\r\n \"4d5out\",\r\n \"do4v\",\r\n \"3dox\",\r\n \"d1p\",\r\n \"1dr\",\r\n \"drag5on\",\r\n \"4drai\",\r\n \"dre4\",\r\n \"drea5r\",\r\n \"5dren\",\r\n \"dri4b\",\r\n \"dril4\",\r\n \"dro4p\",\r\n \"4drow\",\r\n \"5drupli\",\r\n \"4dry\",\r\n \"2d1s2\",\r\n \"ds4p\",\r\n \"d4sw\",\r\n \"d4sy\",\r\n \"d2th\",\r\n \"1du\",\r\n \"d1u1a\",\r\n \"du2c\",\r\n \"d1uca\",\r\n \"duc5er\",\r\n \"4duct.\",\r\n \"4ducts\",\r\n \"du5el\",\r\n \"du4g\",\r\n \"d3ule\",\r\n \"dum4be\",\r\n \"du4n\",\r\n \"4dup\",\r\n \"du4pe\",\r\n \"d1v\",\r\n \"d1w\",\r\n \"d2y\",\r\n \"5dyn\",\r\n \"dy4se\",\r\n \"dys5p\",\r\n \"e1a4b\",\r\n \"e3act\",\r\n \"ead1\",\r\n \"ead5ie\",\r\n \"ea4ge\",\r\n \"ea5ger\",\r\n \"ea4l\",\r\n \"eal5er\",\r\n \"eal3ou\",\r\n \"eam3er\",\r\n \"e5and\",\r\n \"ear3a\",\r\n \"ear4c\",\r\n \"ear5es\",\r\n \"ear4ic\",\r\n \"ear4il\",\r\n \"ear5k\",\r\n \"ear2t\",\r\n \"eart3e\",\r\n \"ea5sp\",\r\n \"e3ass\",\r\n \"east3\",\r\n \"ea2t\",\r\n \"eat5en\",\r\n \"eath3i\",\r\n \"e5atif\",\r\n \"e4a3tu\",\r\n \"ea2v\",\r\n \"eav3en\",\r\n \"eav5i\",\r\n \"eav5o\",\r\n \"2e1b\",\r\n \"e4bel.\",\r\n \"e4bels\",\r\n \"e4ben\",\r\n \"e4bit\",\r\n \"e3br\",\r\n \"e4cad\",\r\n \"ecan5c\",\r\n \"ecca5\",\r\n \"e1ce\",\r\n \"ec5essa\",\r\n \"ec2i\",\r\n \"e4cib\",\r\n \"ec5ificat\",\r\n \"ec5ifie\",\r\n \"ec5ify\",\r\n \"ec3im\",\r\n \"eci4t\",\r\n \"e5cite\",\r\n \"e4clam\",\r\n \"e4clus\",\r\n \"e2col\",\r\n \"e4comm\",\r\n \"e4compe\",\r\n \"e4conc\",\r\n \"e2cor\",\r\n \"ec3ora\",\r\n \"eco5ro\",\r\n \"e1cr\",\r\n \"e4crem\",\r\n \"ec4tan\",\r\n \"ec4te\",\r\n \"e1cu\",\r\n \"e4cul\",\r\n \"ec3ula\",\r\n \"2e2da\",\r\n \"4ed3d\",\r\n \"e4d1er\",\r\n \"ede4s\",\r\n \"4edi\",\r\n \"e3dia\",\r\n \"ed3ib\",\r\n \"ed3ica\",\r\n \"ed3im\",\r\n \"ed1it\",\r\n \"edi5z\",\r\n \"4edo\",\r\n \"e4dol\",\r\n \"edon2\",\r\n \"e4dri\",\r\n \"e4dul\",\r\n \"ed5ulo\",\r\n \"ee2c\",\r\n \"eed3i\",\r\n \"ee2f\",\r\n \"eel3i\",\r\n \"ee4ly\",\r\n \"ee2m\",\r\n \"ee4na\",\r\n \"ee4p1\",\r\n \"ee2s4\",\r\n \"eest4\",\r\n \"ee4ty\",\r\n \"e5ex\",\r\n \"e1f\",\r\n \"e4f3ere\",\r\n \"1eff\",\r\n \"e4fic\",\r\n \"5efici\",\r\n \"efil4\",\r\n \"e3fine\",\r\n \"ef5i5nite\",\r\n \"3efit\",\r\n \"efor5es\",\r\n \"e4fuse.\",\r\n \"4egal\",\r\n \"eger4\",\r\n \"eg5ib\",\r\n \"eg4ic\",\r\n \"eg5ing\",\r\n \"e5git5\",\r\n \"eg5n\",\r\n \"e4go.\",\r\n \"e4gos\",\r\n \"eg1ul\",\r\n \"e5gur\",\r\n \"5egy\",\r\n \"e1h4\",\r\n \"eher4\",\r\n \"ei2\",\r\n \"e5ic\",\r\n \"ei5d\",\r\n \"eig2\",\r\n \"ei5gl\",\r\n \"e3imb\",\r\n \"e3inf\",\r\n \"e1ing\",\r\n \"e5inst\",\r\n \"eir4d\",\r\n \"eit3e\",\r\n \"ei3th\",\r\n \"e5ity\",\r\n \"e1j\",\r\n \"e4jud\",\r\n \"ej5udi\",\r\n \"eki4n\",\r\n \"ek4la\",\r\n \"e1la\",\r\n \"e4la.\",\r\n \"e4lac\",\r\n \"elan4d\",\r\n \"el5ativ\",\r\n \"e4law\",\r\n \"elaxa4\",\r\n \"e3lea\",\r\n \"el5ebra\",\r\n \"5elec\",\r\n \"e4led\",\r\n \"el3ega\",\r\n \"e5len\",\r\n \"e4l1er\",\r\n \"e1les\",\r\n \"el2f\",\r\n \"el2i\",\r\n \"e3libe\",\r\n \"e4l5ic.\",\r\n \"el3ica\",\r\n \"e3lier\",\r\n \"el5igib\",\r\n \"e5lim\",\r\n \"e4l3ing\",\r\n \"e3lio\",\r\n \"e2lis\",\r\n \"el5ish\",\r\n \"e3liv3\",\r\n \"4ella\",\r\n \"el4lab\",\r\n \"ello4\",\r\n \"e5loc\",\r\n \"el5og\",\r\n \"el3op.\",\r\n \"el2sh\",\r\n \"el4ta\",\r\n \"e5lud\",\r\n \"el5ug\",\r\n \"e4mac\",\r\n \"e4mag\",\r\n \"e5man\",\r\n \"em5ana\",\r\n \"em5b\",\r\n \"e1me\",\r\n \"e2mel\",\r\n \"e4met\",\r\n \"em3ica\",\r\n \"emi4e\",\r\n \"em5igra\",\r\n \"em1in2\",\r\n \"em5ine\",\r\n \"em3i3ni\",\r\n \"e4mis\",\r\n \"em5ish\",\r\n \"e5miss\",\r\n \"em3iz\",\r\n \"5emniz\",\r\n \"emo4g\",\r\n \"emoni5o\",\r\n \"em3pi\",\r\n \"e4mul\",\r\n \"em5ula\",\r\n \"emu3n\",\r\n \"e3my\",\r\n \"en5amo\",\r\n \"e4nant\",\r\n \"ench4er\",\r\n \"en3dic\",\r\n \"e5nea\",\r\n \"e5nee\",\r\n \"en3em\",\r\n \"en5ero\",\r\n \"en5esi\",\r\n \"en5est\",\r\n \"en3etr\",\r\n \"e3new\",\r\n \"en5ics\",\r\n \"e5nie\",\r\n \"e5nil\",\r\n \"e3nio\",\r\n \"en3ish\",\r\n \"en3it\",\r\n \"e5niu\",\r\n \"5eniz\",\r\n \"4enn\",\r\n \"4eno\",\r\n \"eno4g\",\r\n \"e4nos\",\r\n \"en3ov\",\r\n \"en4sw\",\r\n \"ent5age\",\r\n \"4enthes\",\r\n \"en3ua\",\r\n \"en5uf\",\r\n \"e3ny.\",\r\n \"4en3z\",\r\n \"e5of\",\r\n \"eo2g\",\r\n \"e4oi4\",\r\n \"e3ol\",\r\n \"eop3ar\",\r\n \"e1or\",\r\n \"eo3re\",\r\n \"eo5rol\",\r\n \"eos4\",\r\n \"e4ot\",\r\n \"eo4to\",\r\n \"e5out\",\r\n \"e5ow\",\r\n \"e2pa\",\r\n \"e3pai\",\r\n \"ep5anc\",\r\n \"e5pel\",\r\n \"e3pent\",\r\n \"ep5etitio\",\r\n \"ephe4\",\r\n \"e4pli\",\r\n \"e1po\",\r\n \"e4prec\",\r\n \"ep5reca\",\r\n \"e4pred\",\r\n \"ep3reh\",\r\n \"e3pro\",\r\n \"e4prob\",\r\n \"ep4sh\",\r\n \"ep5ti5b\",\r\n \"e4put\",\r\n \"ep5uta\",\r\n \"e1q\",\r\n \"equi3l\",\r\n \"e4q3ui3s\",\r\n \"er1a\",\r\n \"era4b\",\r\n \"4erand\",\r\n \"er3ar\",\r\n \"4erati.\",\r\n \"2erb\",\r\n \"er4bl\",\r\n \"er3ch\",\r\n \"er4che\",\r\n \"2ere.\",\r\n \"e3real\",\r\n \"ere5co\",\r\n \"ere3in\",\r\n \"er5el.\",\r\n \"er3emo\",\r\n \"er5ena\",\r\n \"er5ence\",\r\n \"4erene\",\r\n \"er3ent\",\r\n \"ere4q\",\r\n \"er5ess\",\r\n \"er3est\",\r\n \"eret4\",\r\n \"er1h\",\r\n \"er1i\",\r\n \"e1ria4\",\r\n \"5erick\",\r\n \"e3rien\",\r\n \"eri4er\",\r\n \"er3ine\",\r\n \"e1rio\",\r\n \"4erit\",\r\n \"er4iu\",\r\n \"eri4v\",\r\n \"e4riva\",\r\n \"er3m4\",\r\n \"er4nis\",\r\n \"4ernit\",\r\n \"5erniz\",\r\n \"er3no\",\r\n \"2ero\",\r\n \"er5ob\",\r\n \"e5roc\",\r\n \"ero4r\",\r\n \"er1ou\",\r\n \"er1s\",\r\n \"er3set\",\r\n \"ert3er\",\r\n \"4ertl\",\r\n \"er3tw\",\r\n \"4eru\",\r\n \"eru4t\",\r\n \"5erwau\",\r\n \"e1s4a\",\r\n \"e4sage.\",\r\n \"e4sages\",\r\n \"es2c\",\r\n \"e2sca\",\r\n \"es5can\",\r\n \"e3scr\",\r\n \"es5cu\",\r\n \"e1s2e\",\r\n \"e2sec\",\r\n \"es5ecr\",\r\n \"es5enc\",\r\n \"e4sert.\",\r\n \"e4serts\",\r\n \"e4serva\",\r\n \"4esh\",\r\n \"e3sha\",\r\n \"esh5en\",\r\n \"e1si\",\r\n \"e2sic\",\r\n \"e2sid\",\r\n \"es5iden\",\r\n \"es5igna\",\r\n \"e2s5im\",\r\n \"es4i4n\",\r\n \"esis4te\",\r\n \"esi4u\",\r\n \"e5skin\",\r\n \"es4mi\",\r\n \"e2sol\",\r\n \"es3olu\",\r\n \"e2son\",\r\n \"es5ona\",\r\n \"e1sp\",\r\n \"es3per\",\r\n \"es5pira\",\r\n \"es4pre\",\r\n \"2ess\",\r\n \"es4si4b\",\r\n \"estan4\",\r\n \"es3tig\",\r\n \"es5tim\",\r\n \"4es2to\",\r\n \"e3ston\",\r\n \"2estr\",\r\n \"e5stro\",\r\n \"estruc5\",\r\n \"e2sur\",\r\n \"es5urr\",\r\n \"es4w\",\r\n \"eta4b\",\r\n \"eten4d\",\r\n \"e3teo\",\r\n \"ethod3\",\r\n \"et1ic\",\r\n \"e5tide\",\r\n \"etin4\",\r\n \"eti4no\",\r\n \"e5tir\",\r\n \"e5titio\",\r\n \"et5itiv\",\r\n \"4etn\",\r\n \"et5ona\",\r\n \"e3tra\",\r\n \"e3tre\",\r\n \"et3ric\",\r\n \"et5rif\",\r\n \"et3rog\",\r\n \"et5ros\",\r\n \"et3ua\",\r\n \"et5ym\",\r\n \"et5z\",\r\n \"4eu\",\r\n \"e5un\",\r\n \"e3up\",\r\n \"eu3ro\",\r\n \"eus4\",\r\n \"eute4\",\r\n \"euti5l\",\r\n \"eu5tr\",\r\n \"eva2p5\",\r\n \"e2vas\",\r\n \"ev5ast\",\r\n \"e5vea\",\r\n \"ev3ell\",\r\n \"evel3o\",\r\n \"e5veng\",\r\n \"even4i\",\r\n \"ev1er\",\r\n \"e5verb\",\r\n \"e1vi\",\r\n \"ev3id\",\r\n \"evi4l\",\r\n \"e4vin\",\r\n \"evi4v\",\r\n \"e5voc\",\r\n \"e5vu\",\r\n \"e1wa\",\r\n \"e4wag\",\r\n \"e5wee\",\r\n \"e3wh\",\r\n \"ewil5\",\r\n \"ew3ing\",\r\n \"e3wit\",\r\n \"1exp\",\r\n \"5eyc\",\r\n \"5eye.\",\r\n \"eys4\",\r\n \"1fa\",\r\n \"fa3bl\",\r\n \"fab3r\",\r\n \"fa4ce\",\r\n \"4fag\",\r\n \"fain4\",\r\n \"fall5e\",\r\n \"4fa4ma\",\r\n \"fam5is\",\r\n \"5far\",\r\n \"far5th\",\r\n \"fa3ta\",\r\n \"fa3the\",\r\n \"4fato\",\r\n \"fault5\",\r\n \"4f5b\",\r\n \"4fd\",\r\n \"4fe.\",\r\n \"feas4\",\r\n \"feath3\",\r\n \"fe4b\",\r\n \"4feca\",\r\n \"5fect\",\r\n \"2fed\",\r\n \"fe3li\",\r\n \"fe4mo\",\r\n \"fen2d\",\r\n \"fend5e\",\r\n \"fer1\",\r\n \"5ferr\",\r\n \"fev4\",\r\n \"4f1f\",\r\n \"f4fes\",\r\n \"f4fie\",\r\n \"f5fin.\",\r\n \"f2f5is\",\r\n \"f4fly\",\r\n \"f2fy\",\r\n \"4fh\",\r\n \"1fi\",\r\n \"fi3a\",\r\n \"2f3ic.\",\r\n \"4f3ical\",\r\n \"f3ican\",\r\n \"4ficate\",\r\n \"f3icen\",\r\n \"fi3cer\",\r\n \"fic4i\",\r\n \"5ficia\",\r\n \"5ficie\",\r\n \"4fics\",\r\n \"fi3cu\",\r\n \"fi5del\",\r\n \"fight5\",\r\n \"fil5i\",\r\n \"fill5in\",\r\n \"4fily\",\r\n \"2fin\",\r\n \"5fina\",\r\n \"fin2d5\",\r\n \"fi2ne\",\r\n \"f1in3g\",\r\n \"fin4n\",\r\n \"fis4ti\",\r\n \"f4l2\",\r\n \"f5less\",\r\n \"flin4\",\r\n \"flo3re\",\r\n \"f2ly5\",\r\n \"4fm\",\r\n \"4fn\",\r\n \"1fo\",\r\n \"5fon\",\r\n \"fon4de\",\r\n \"fon4t\",\r\n \"fo2r\",\r\n \"fo5rat\",\r\n \"for5ay\",\r\n \"fore5t\",\r\n \"for4i\",\r\n \"fort5a\",\r\n \"fos5\",\r\n \"4f5p\",\r\n \"fra4t\",\r\n \"f5rea\",\r\n \"fres5c\",\r\n \"fri2\",\r\n \"fril4\",\r\n \"frol5\",\r\n \"2f3s\",\r\n \"2ft\",\r\n \"f4to\",\r\n \"f2ty\",\r\n \"3fu\",\r\n \"fu5el\",\r\n \"4fug\",\r\n \"fu4min\",\r\n \"fu5ne\",\r\n \"fu3ri\",\r\n \"fusi4\",\r\n \"fus4s\",\r\n \"4futa\",\r\n \"1fy\",\r\n \"1ga\",\r\n \"gaf4\",\r\n \"5gal.\",\r\n \"3gali\",\r\n \"ga3lo\",\r\n \"2gam\",\r\n \"ga5met\",\r\n \"g5amo\",\r\n \"gan5is\",\r\n \"ga3niz\",\r\n \"gani5za\",\r\n \"4gano\",\r\n \"gar5n4\",\r\n \"gass4\",\r\n \"gath3\",\r\n \"4gativ\",\r\n \"4gaz\",\r\n \"g3b\",\r\n \"gd4\",\r\n \"2ge.\",\r\n \"2ged\",\r\n \"geez4\",\r\n \"gel4in\",\r\n \"ge5lis\",\r\n \"ge5liz\",\r\n \"4gely\",\r\n \"1gen\",\r\n \"ge4nat\",\r\n \"ge5niz\",\r\n \"4geno\",\r\n \"4geny\",\r\n \"1geo\",\r\n \"ge3om\",\r\n \"g4ery\",\r\n \"5gesi\",\r\n \"geth5\",\r\n \"4geto\",\r\n \"ge4ty\",\r\n \"ge4v\",\r\n \"4g1g2\",\r\n \"g2ge\",\r\n \"g3ger\",\r\n \"gglu5\",\r\n \"ggo4\",\r\n \"gh3in\",\r\n \"gh5out\",\r\n \"gh4to\",\r\n \"5gi.\",\r\n \"1gi4a\",\r\n \"gia5r\",\r\n \"g1ic\",\r\n \"5gicia\",\r\n \"g4ico\",\r\n \"gien5\",\r\n \"5gies.\",\r\n \"gil4\",\r\n \"g3imen\",\r\n \"3g4in.\",\r\n \"gin5ge\",\r\n \"5g4ins\",\r\n \"5gio\",\r\n \"3gir\",\r\n \"gir4l\",\r\n \"g3isl\",\r\n \"gi4u\",\r\n \"5giv\",\r\n \"3giz\",\r\n \"gl2\",\r\n \"gla4\",\r\n \"glad5i\",\r\n \"5glas\",\r\n \"1gle\",\r\n \"gli4b\",\r\n \"g3lig\",\r\n \"3glo\",\r\n \"glo3r\",\r\n \"g1m\",\r\n \"g4my\",\r\n \"gn4a\",\r\n \"g4na.\",\r\n \"gnet4t\",\r\n \"g1ni\",\r\n \"g2nin\",\r\n \"g4nio\",\r\n \"g1no\",\r\n \"g4non\",\r\n \"1go\",\r\n \"3go.\",\r\n \"gob5\",\r\n \"5goe\",\r\n \"3g4o4g\",\r\n \"go3is\",\r\n \"gon2\",\r\n \"4g3o3na\",\r\n \"gondo5\",\r\n \"go3ni\",\r\n \"5goo\",\r\n \"go5riz\",\r\n \"gor5ou\",\r\n \"5gos.\",\r\n \"gov1\",\r\n \"g3p\",\r\n \"1gr\",\r\n \"4grada\",\r\n \"g4rai\",\r\n \"gran2\",\r\n \"5graph.\",\r\n \"g5rapher\",\r\n \"5graphic\",\r\n \"4graphy\",\r\n \"4gray\",\r\n \"gre4n\",\r\n \"4gress.\",\r\n \"4grit\",\r\n \"g4ro\",\r\n \"gruf4\",\r\n \"gs2\",\r\n \"g5ste\",\r\n \"gth3\",\r\n \"gu4a\",\r\n \"3guard\",\r\n \"2gue\",\r\n \"5gui5t\",\r\n \"3gun\",\r\n \"3gus\",\r\n \"4gu4t\",\r\n \"g3w\",\r\n \"1gy\",\r\n \"2g5y3n\",\r\n \"gy5ra\",\r\n \"h3ab4l\",\r\n \"hach4\",\r\n \"hae4m\",\r\n \"hae4t\",\r\n \"h5agu\",\r\n \"ha3la\",\r\n \"hala3m\",\r\n \"ha4m\",\r\n \"han4ci\",\r\n \"han4cy\",\r\n \"5hand.\",\r\n \"han4g\",\r\n \"hang5er\",\r\n \"hang5o\",\r\n \"h5a5niz\",\r\n \"han4k\",\r\n \"han4te\",\r\n \"hap3l\",\r\n \"hap5t\",\r\n \"ha3ran\",\r\n \"ha5ras\",\r\n \"har2d\",\r\n \"hard3e\",\r\n \"har4le\",\r\n \"harp5en\",\r\n \"har5ter\",\r\n \"has5s\",\r\n \"haun4\",\r\n \"5haz\",\r\n \"haz3a\",\r\n \"h1b\",\r\n \"1head\",\r\n \"3hear\",\r\n \"he4can\",\r\n \"h5ecat\",\r\n \"h4ed\",\r\n \"he5do5\",\r\n \"he3l4i\",\r\n \"hel4lis\",\r\n \"hel4ly\",\r\n \"h5elo\",\r\n \"hem4p\",\r\n \"he2n\",\r\n \"hena4\",\r\n \"hen5at\",\r\n \"heo5r\",\r\n \"hep5\",\r\n \"h4era\",\r\n \"hera3p\",\r\n \"her4ba\",\r\n \"here5a\",\r\n \"h3ern\",\r\n \"h5erou\",\r\n \"h3ery\",\r\n \"h1es\",\r\n \"he2s5p\",\r\n \"he4t\",\r\n \"het4ed\",\r\n \"heu4\",\r\n \"h1f\",\r\n \"h1h\",\r\n \"hi5an\",\r\n \"hi4co\",\r\n \"high5\",\r\n \"h4il2\",\r\n \"himer4\",\r\n \"h4ina\",\r\n \"hion4e\",\r\n \"hi4p\",\r\n \"hir4l\",\r\n \"hi3ro\",\r\n \"hir4p\",\r\n \"hir4r\",\r\n \"his3el\",\r\n \"his4s\",\r\n \"hith5er\",\r\n \"hi2v\",\r\n \"4hk\",\r\n \"4h1l4\",\r\n \"hlan4\",\r\n \"h2lo\",\r\n \"hlo3ri\",\r\n \"4h1m\",\r\n \"hmet4\",\r\n \"2h1n\",\r\n \"h5odiz\",\r\n \"h5ods\",\r\n \"ho4g\",\r\n \"hoge4\",\r\n \"hol5ar\",\r\n \"3hol4e\",\r\n \"ho4ma\",\r\n \"home3\",\r\n \"hon4a\",\r\n \"ho5ny\",\r\n \"3hood\",\r\n \"hoon4\",\r\n \"hor5at\",\r\n \"ho5ris\",\r\n \"hort3e\",\r\n \"ho5ru\",\r\n \"hos4e\",\r\n \"ho5sen\",\r\n \"hos1p\",\r\n \"1hous\",\r\n \"house3\",\r\n \"hov5el\",\r\n \"4h5p\",\r\n \"4hr4\",\r\n \"hree5\",\r\n \"hro5niz\",\r\n \"hro3po\",\r\n \"4h1s2\",\r\n \"h4sh\",\r\n \"h4tar\",\r\n \"ht1en\",\r\n \"ht5es\",\r\n \"h4ty\",\r\n \"hu4g\",\r\n \"hu4min\",\r\n \"hun5ke\",\r\n \"hun4t\",\r\n \"hus3t4\",\r\n \"hu4t\",\r\n \"h1w\",\r\n \"h4wart\",\r\n \"hy3pe\",\r\n \"hy3ph\",\r\n \"hy2s\",\r\n \"2i1a\",\r\n \"i2al\",\r\n \"iam4\",\r\n \"iam5ete\",\r\n \"i2an\",\r\n \"4ianc\",\r\n \"ian3i\",\r\n \"4ian4t\",\r\n \"ia5pe\",\r\n \"iass4\",\r\n \"i4ativ\",\r\n \"ia4tric\",\r\n \"i4atu\",\r\n \"ibe4\",\r\n \"ib3era\",\r\n \"ib5ert\",\r\n \"ib5ia\",\r\n \"ib3in\",\r\n \"ib5it.\",\r\n \"ib5ite\",\r\n \"i1bl\",\r\n \"ib3li\",\r\n \"i5bo\",\r\n \"i1br\",\r\n \"i2b5ri\",\r\n \"i5bun\",\r\n \"4icam\",\r\n \"5icap\",\r\n \"4icar\",\r\n \"i4car.\",\r\n \"i4cara\",\r\n \"icas5\",\r\n \"i4cay\",\r\n \"iccu4\",\r\n \"4iceo\",\r\n \"4ich\",\r\n \"2ici\",\r\n \"i5cid\",\r\n \"ic5ina\",\r\n \"i2cip\",\r\n \"ic3ipa\",\r\n \"i4cly\",\r\n \"i2c5oc\",\r\n \"4i1cr\",\r\n \"5icra\",\r\n \"i4cry\",\r\n \"ic4te\",\r\n \"ictu2\",\r\n \"ic4t3ua\",\r\n \"ic3ula\",\r\n \"ic4um\",\r\n \"ic5uo\",\r\n \"i3cur\",\r\n \"2id\",\r\n \"i4dai\",\r\n \"id5anc\",\r\n \"id5d\",\r\n \"ide3al\",\r\n \"ide4s\",\r\n \"i2di\",\r\n \"id5ian\",\r\n \"idi4ar\",\r\n \"i5die\",\r\n \"id3io\",\r\n \"idi5ou\",\r\n \"id1it\",\r\n \"id5iu\",\r\n \"i3dle\",\r\n \"i4dom\",\r\n \"id3ow\",\r\n \"i4dr\",\r\n \"i2du\",\r\n \"id5uo\",\r\n \"2ie4\",\r\n \"ied4e\",\r\n \"5ie5ga\",\r\n \"ield3\",\r\n \"ien5a4\",\r\n \"ien4e\",\r\n \"i5enn\",\r\n \"i3enti\",\r\n \"i1er.\",\r\n \"i3esc\",\r\n \"i1est\",\r\n \"i3et\",\r\n \"4if.\",\r\n \"if5ero\",\r\n \"iff5en\",\r\n \"if4fr\",\r\n \"4ific.\",\r\n \"i3fie\",\r\n \"i3fl\",\r\n \"4ift\",\r\n \"2ig\",\r\n \"iga5b\",\r\n \"ig3era\",\r\n \"ight3i\",\r\n \"4igi\",\r\n \"i3gib\",\r\n \"ig3il\",\r\n \"ig3in\",\r\n \"ig3it\",\r\n \"i4g4l\",\r\n \"i2go\",\r\n \"ig3or\",\r\n \"ig5ot\",\r\n \"i5gre\",\r\n \"igu5i\",\r\n \"ig1ur\",\r\n \"i3h\",\r\n \"4i5i4\",\r\n \"i3j\",\r\n \"4ik\",\r\n \"i1la\",\r\n \"il3a4b\",\r\n \"i4lade\",\r\n \"i2l5am\",\r\n \"ila5ra\",\r\n \"i3leg\",\r\n \"il1er\",\r\n \"ilev4\",\r\n \"il5f\",\r\n \"il1i\",\r\n \"il3ia\",\r\n \"il2ib\",\r\n \"il3io\",\r\n \"il4ist\",\r\n \"2ilit\",\r\n \"il2iz\",\r\n \"ill5ab\",\r\n \"4iln\",\r\n \"il3oq\",\r\n \"il4ty\",\r\n \"il5ur\",\r\n \"il3v\",\r\n \"i4mag\",\r\n \"im3age\",\r\n \"ima5ry\",\r\n \"imenta5r\",\r\n \"4imet\",\r\n \"im1i\",\r\n \"im5ida\",\r\n \"imi5le\",\r\n \"i5mini\",\r\n \"4imit\",\r\n \"im4ni\",\r\n \"i3mon\",\r\n \"i2mu\",\r\n \"im3ula\",\r\n \"2in.\",\r\n \"i4n3au\",\r\n \"4inav\",\r\n \"incel4\",\r\n \"in3cer\",\r\n \"4ind\",\r\n \"in5dling\",\r\n \"2ine\",\r\n \"i3nee\",\r\n \"iner4ar\",\r\n \"i5ness\",\r\n \"4inga\",\r\n \"4inge\",\r\n \"in5gen\",\r\n \"4ingi\",\r\n \"in5gling\",\r\n \"4ingo\",\r\n \"4ingu\",\r\n \"2ini\",\r\n \"i5ni.\",\r\n \"i4nia\",\r\n \"in3io\",\r\n \"in1is\",\r\n \"i5nite.\",\r\n \"5initio\",\r\n \"in3ity\",\r\n \"4ink\",\r\n \"4inl\",\r\n \"2inn\",\r\n \"2i1no\",\r\n \"i4no4c\",\r\n \"ino4s\",\r\n \"i4not\",\r\n \"2ins\",\r\n \"in3se\",\r\n \"insur5a\",\r\n \"2int.\",\r\n \"2in4th\",\r\n \"in1u\",\r\n \"i5nus\",\r\n \"4iny\",\r\n \"2io\",\r\n \"4io.\",\r\n \"ioge4\",\r\n \"io2gr\",\r\n \"i1ol\",\r\n \"io4m\",\r\n \"ion3at\",\r\n \"ion4ery\",\r\n \"ion3i\",\r\n \"io5ph\",\r\n \"ior3i\",\r\n \"i4os\",\r\n \"io5th\",\r\n \"i5oti\",\r\n \"io4to\",\r\n \"i4our\",\r\n \"2ip\",\r\n \"ipe4\",\r\n \"iphras4\",\r\n \"ip3i\",\r\n \"ip4ic\",\r\n \"ip4re4\",\r\n \"ip3ul\",\r\n \"i3qua\",\r\n \"iq5uef\",\r\n \"iq3uid\",\r\n \"iq3ui3t\",\r\n \"4ir\",\r\n \"i1ra\",\r\n \"ira4b\",\r\n \"i4rac\",\r\n \"ird5e\",\r\n \"ire4de\",\r\n \"i4ref\",\r\n \"i4rel4\",\r\n \"i4res\",\r\n \"ir5gi\",\r\n \"ir1i\",\r\n \"iri5de\",\r\n \"ir4is\",\r\n \"iri3tu\",\r\n \"5i5r2iz\",\r\n \"ir4min\",\r\n \"iro4g\",\r\n \"5iron.\",\r\n \"ir5ul\",\r\n \"2is.\",\r\n \"is5ag\",\r\n \"is3ar\",\r\n \"isas5\",\r\n \"2is1c\",\r\n \"is3ch\",\r\n \"4ise\",\r\n \"is3er\",\r\n \"3isf\",\r\n \"is5han\",\r\n \"is3hon\",\r\n \"ish5op\",\r\n \"is3ib\",\r\n \"isi4d\",\r\n \"i5sis\",\r\n \"is5itiv\",\r\n \"4is4k\",\r\n \"islan4\",\r\n \"4isms\",\r\n \"i2so\",\r\n \"iso5mer\",\r\n \"is1p\",\r\n \"is2pi\",\r\n \"is4py\",\r\n \"4is1s\",\r\n \"is4sal\",\r\n \"issen4\",\r\n \"is4ses\",\r\n \"is4ta.\",\r\n \"is1te\",\r\n \"is1ti\",\r\n \"ist4ly\",\r\n \"4istral\",\r\n \"i2su\",\r\n \"is5us\",\r\n \"4ita.\",\r\n \"ita4bi\",\r\n \"i4tag\",\r\n \"4ita5m\",\r\n \"i3tan\",\r\n \"i3tat\",\r\n \"2ite\",\r\n \"it3era\",\r\n \"i5teri\",\r\n \"it4es\",\r\n \"2ith\",\r\n \"i1ti\",\r\n \"4itia\",\r\n \"4i2tic\",\r\n \"it3ica\",\r\n \"5i5tick\",\r\n \"it3ig\",\r\n \"it5ill\",\r\n \"i2tim\",\r\n \"2itio\",\r\n \"4itis\",\r\n \"i4tism\",\r\n \"i2t5o5m\",\r\n \"4iton\",\r\n \"i4tram\",\r\n \"it5ry\",\r\n \"4itt\",\r\n \"it3uat\",\r\n \"i5tud\",\r\n \"it3ul\",\r\n \"4itz.\",\r\n \"i1u\",\r\n \"2iv\",\r\n \"iv3ell\",\r\n \"iv3en.\",\r\n \"i4v3er.\",\r\n \"i4vers.\",\r\n \"iv5il.\",\r\n \"iv5io\",\r\n \"iv1it\",\r\n \"i5vore\",\r\n \"iv3o3ro\",\r\n \"i4v3ot\",\r\n \"4i5w\",\r\n \"ix4o\",\r\n \"4iy\",\r\n \"4izar\",\r\n \"izi4\",\r\n \"5izont\",\r\n \"5ja\",\r\n \"jac4q\",\r\n \"ja4p\",\r\n \"1je\",\r\n \"jer5s\",\r\n \"4jestie\",\r\n \"4jesty\",\r\n \"jew3\",\r\n \"jo4p\",\r\n \"5judg\",\r\n \"3ka.\",\r\n \"k3ab\",\r\n \"k5ag\",\r\n \"kais4\",\r\n \"kal4\",\r\n \"k1b\",\r\n \"k2ed\",\r\n \"1kee\",\r\n \"ke4g\",\r\n \"ke5li\",\r\n \"k3en4d\",\r\n \"k1er\",\r\n \"kes4\",\r\n \"k3est.\",\r\n \"ke4ty\",\r\n \"k3f\",\r\n \"kh4\",\r\n \"k1i\",\r\n \"5ki.\",\r\n \"5k2ic\",\r\n \"k4ill\",\r\n \"kilo5\",\r\n \"k4im\",\r\n \"k4in.\",\r\n \"kin4de\",\r\n \"k5iness\",\r\n \"kin4g\",\r\n \"ki4p\",\r\n \"kis4\",\r\n \"k5ish\",\r\n \"kk4\",\r\n \"k1l\",\r\n \"4kley\",\r\n \"4kly\",\r\n \"k1m\",\r\n \"k5nes\",\r\n \"1k2no\",\r\n \"ko5r\",\r\n \"kosh4\",\r\n \"k3ou\",\r\n \"kro5n\",\r\n \"4k1s2\",\r\n \"k4sc\",\r\n \"ks4l\",\r\n \"k4sy\",\r\n \"k5t\",\r\n \"k1w\",\r\n \"lab3ic\",\r\n \"l4abo\",\r\n \"laci4\",\r\n \"l4ade\",\r\n \"la3dy\",\r\n \"lag4n\",\r\n \"lam3o\",\r\n \"3land\",\r\n \"lan4dl\",\r\n \"lan5et\",\r\n \"lan4te\",\r\n \"lar4g\",\r\n \"lar3i\",\r\n \"las4e\",\r\n \"la5tan\",\r\n \"4lateli\",\r\n \"4lativ\",\r\n \"4lav\",\r\n \"la4v4a\",\r\n \"2l1b\",\r\n \"lbin4\",\r\n \"4l1c2\",\r\n \"lce4\",\r\n \"l3ci\",\r\n \"2ld\",\r\n \"l2de\",\r\n \"ld4ere\",\r\n \"ld4eri\",\r\n \"ldi4\",\r\n \"ld5is\",\r\n \"l3dr\",\r\n \"l4dri\",\r\n \"le2a\",\r\n \"le4bi\",\r\n \"left5\",\r\n \"5leg.\",\r\n \"5legg\",\r\n \"le4mat\",\r\n \"lem5atic\",\r\n \"4len.\",\r\n \"3lenc\",\r\n \"5lene.\",\r\n \"1lent\",\r\n \"le3ph\",\r\n \"le4pr\",\r\n \"lera5b\",\r\n \"ler4e\",\r\n \"3lerg\",\r\n \"3l4eri\",\r\n \"l4ero\",\r\n \"les2\",\r\n \"le5sco\",\r\n \"5lesq\",\r\n \"3less\",\r\n \"5less.\",\r\n \"l3eva\",\r\n \"lev4er.\",\r\n \"lev4era\",\r\n \"lev4ers\",\r\n \"3ley\",\r\n \"4leye\",\r\n \"2lf\",\r\n \"l5fr\",\r\n \"4l1g4\",\r\n \"l5ga\",\r\n \"lgar3\",\r\n \"l4ges\",\r\n \"lgo3\",\r\n \"2l3h\",\r\n \"li4ag\",\r\n \"li2am\",\r\n \"liar5iz\",\r\n \"li4as\",\r\n \"li4ato\",\r\n \"li5bi\",\r\n \"5licio\",\r\n \"li4cor\",\r\n \"4lics\",\r\n \"4lict.\",\r\n \"l4icu\",\r\n \"l3icy\",\r\n \"l3ida\",\r\n \"lid5er\",\r\n \"3lidi\",\r\n \"lif3er\",\r\n \"l4iff\",\r\n \"li4fl\",\r\n \"5ligate\",\r\n \"3ligh\",\r\n \"li4gra\",\r\n \"3lik\",\r\n \"4l4i4l\",\r\n \"lim4bl\",\r\n \"lim3i\",\r\n \"li4mo\",\r\n \"l4im4p\",\r\n \"l4ina\",\r\n \"1l4ine\",\r\n \"lin3ea\",\r\n \"lin3i\",\r\n \"link5er\",\r\n \"li5og\",\r\n \"4l4iq\",\r\n \"lis4p\",\r\n \"l1it\",\r\n \"l2it.\",\r\n \"5litica\",\r\n \"l5i5tics\",\r\n \"liv3er\",\r\n \"l1iz\",\r\n \"4lj\",\r\n \"lka3\",\r\n \"l3kal\",\r\n \"lka4t\",\r\n \"l1l\",\r\n \"l4law\",\r\n \"l2le\",\r\n \"l5lea\",\r\n \"l3lec\",\r\n \"l3leg\",\r\n \"l3lel\",\r\n \"l3le4n\",\r\n \"l3le4t\",\r\n \"ll2i\",\r\n \"l2lin4\",\r\n \"l5lina\",\r\n \"ll4o\",\r\n \"lloqui5\",\r\n \"ll5out\",\r\n \"l5low\",\r\n \"2lm\",\r\n \"l5met\",\r\n \"lm3ing\",\r\n \"l4mod\",\r\n \"lmon4\",\r\n \"2l1n2\",\r\n \"3lo.\",\r\n \"lob5al\",\r\n \"lo4ci\",\r\n \"4lof\",\r\n \"3logic\",\r\n \"l5ogo\",\r\n \"3logu\",\r\n \"lom3er\",\r\n \"5long\",\r\n \"lon4i\",\r\n \"l3o3niz\",\r\n \"lood5\",\r\n \"5lope.\",\r\n \"lop3i\",\r\n \"l3opm\",\r\n \"lora4\",\r\n \"lo4rato\",\r\n \"lo5rie\",\r\n \"lor5ou\",\r\n \"5los.\",\r\n \"los5et\",\r\n \"5losophiz\",\r\n \"5losophy\",\r\n \"los4t\",\r\n \"lo4ta\",\r\n \"loun5d\",\r\n \"2lout\",\r\n \"4lov\",\r\n \"2lp\",\r\n \"lpa5b\",\r\n \"l3pha\",\r\n \"l5phi\",\r\n \"lp5ing\",\r\n \"l3pit\",\r\n \"l4pl\",\r\n \"l5pr\",\r\n \"4l1r\",\r\n \"2l1s2\",\r\n \"l4sc\",\r\n \"l2se\",\r\n \"l4sie\",\r\n \"4lt\",\r\n \"lt5ag\",\r\n \"ltane5\",\r\n \"l1te\",\r\n \"lten4\",\r\n \"ltera4\",\r\n \"lth3i\",\r\n \"l5ties.\",\r\n \"ltis4\",\r\n \"l1tr\",\r\n \"ltu2\",\r\n \"ltur3a\",\r\n \"lu5a\",\r\n \"lu3br\",\r\n \"luch4\",\r\n \"lu3ci\",\r\n \"lu3en\",\r\n \"luf4\",\r\n \"lu5id\",\r\n \"lu4ma\",\r\n \"5lumi\",\r\n \"l5umn.\",\r\n \"5lumnia\",\r\n \"lu3o\",\r\n \"luo3r\",\r\n \"4lup\",\r\n \"luss4\",\r\n \"lus3te\",\r\n \"1lut\",\r\n \"l5ven\",\r\n \"l5vet4\",\r\n \"2l1w\",\r\n \"1ly\",\r\n \"4lya\",\r\n \"4lyb\",\r\n \"ly5me\",\r\n \"ly3no\",\r\n \"2lys4\",\r\n \"l5yse\",\r\n \"1ma\",\r\n \"2mab\",\r\n \"ma2ca\",\r\n \"ma5chine\",\r\n \"ma4cl\",\r\n \"mag5in\",\r\n \"5magn\",\r\n \"2mah\",\r\n \"maid5\",\r\n \"4mald\",\r\n \"ma3lig\",\r\n \"ma5lin\",\r\n \"mal4li\",\r\n \"mal4ty\",\r\n \"5mania\",\r\n \"man5is\",\r\n \"man3iz\",\r\n \"4map\",\r\n \"ma5rine.\",\r\n \"ma5riz\",\r\n \"mar4ly\",\r\n \"mar3v\",\r\n \"ma5sce\",\r\n \"mas4e\",\r\n \"mas1t\",\r\n \"5mate\",\r\n \"math3\",\r\n \"ma3tis\",\r\n \"4matiza\",\r\n \"4m1b\",\r\n \"mba4t5\",\r\n \"m5bil\",\r\n \"m4b3ing\",\r\n \"mbi4v\",\r\n \"4m5c\",\r\n \"4me.\",\r\n \"2med\",\r\n \"4med.\",\r\n \"5media\",\r\n \"me3die\",\r\n \"m5e5dy\",\r\n \"me2g\",\r\n \"mel5on\",\r\n \"mel4t\",\r\n \"me2m\",\r\n \"mem1o3\",\r\n \"1men\",\r\n \"men4a\",\r\n \"men5ac\",\r\n \"men4de\",\r\n \"4mene\",\r\n \"men4i\",\r\n \"mens4\",\r\n \"mensu5\",\r\n \"3ment\",\r\n \"men4te\",\r\n \"me5on\",\r\n \"m5ersa\",\r\n \"2mes\",\r\n \"3mesti\",\r\n \"me4ta\",\r\n \"met3al\",\r\n \"me1te\",\r\n \"me5thi\",\r\n \"m4etr\",\r\n \"5metric\",\r\n \"me5trie\",\r\n \"me3try\",\r\n \"me4v\",\r\n \"4m1f\",\r\n \"2mh\",\r\n \"5mi.\",\r\n \"mi3a\",\r\n \"mid4a\",\r\n \"mid4g\",\r\n \"mig4\",\r\n \"3milia\",\r\n \"m5i5lie\",\r\n \"m4ill\",\r\n \"min4a\",\r\n \"3mind\",\r\n \"m5inee\",\r\n \"m4ingl\",\r\n \"min5gli\",\r\n \"m5ingly\",\r\n \"min4t\",\r\n \"m4inu\",\r\n \"miot4\",\r\n \"m2is\",\r\n \"mis4er.\",\r\n \"mis5l\",\r\n \"mis4ti\",\r\n \"m5istry\",\r\n \"4mith\",\r\n \"m2iz\",\r\n \"4mk\",\r\n \"4m1l\",\r\n \"m1m\",\r\n \"mma5ry\",\r\n \"4m1n\",\r\n \"mn4a\",\r\n \"m4nin\",\r\n \"mn4o\",\r\n \"1mo\",\r\n \"4mocr\",\r\n \"5mocratiz\",\r\n \"mo2d1\",\r\n \"mo4go\",\r\n \"mois2\",\r\n \"moi5se\",\r\n \"4mok\",\r\n \"mo5lest\",\r\n \"mo3me\",\r\n \"mon5et\",\r\n \"mon5ge\",\r\n \"moni3a\",\r\n \"mon4ism\",\r\n \"mon4ist\",\r\n \"mo3niz\",\r\n \"monol4\",\r\n \"mo3ny.\",\r\n \"mo2r\",\r\n \"4mora.\",\r\n \"mos2\",\r\n \"mo5sey\",\r\n \"mo3sp\",\r\n \"moth3\",\r\n \"m5ouf\",\r\n \"3mous\",\r\n \"mo2v\",\r\n \"4m1p\",\r\n \"mpara5\",\r\n \"mpa5rab\",\r\n \"mpar5i\",\r\n \"m3pet\",\r\n \"mphas4\",\r\n \"m2pi\",\r\n \"mpi4a\",\r\n \"mp5ies\",\r\n \"m4p1in\",\r\n \"m5pir\",\r\n \"mp5is\",\r\n \"mpo3ri\",\r\n \"mpos5ite\",\r\n \"m4pous\",\r\n \"mpov5\",\r\n \"mp4tr\",\r\n \"m2py\",\r\n \"4m3r\",\r\n \"4m1s2\",\r\n \"m4sh\",\r\n \"m5si\",\r\n \"4mt\",\r\n \"1mu\",\r\n \"mula5r4\",\r\n \"5mult\",\r\n \"multi3\",\r\n \"3mum\",\r\n \"mun2\",\r\n \"4mup\",\r\n \"mu4u\",\r\n \"4mw\",\r\n \"1na\",\r\n \"2n1a2b\",\r\n \"n4abu\",\r\n \"4nac.\",\r\n \"na4ca\",\r\n \"n5act\",\r\n \"nag5er.\",\r\n \"nak4\",\r\n \"na4li\",\r\n \"na5lia\",\r\n \"4nalt\",\r\n \"na5mit\",\r\n \"n2an\",\r\n \"nanci4\",\r\n \"nan4it\",\r\n \"nank4\",\r\n \"nar3c\",\r\n \"4nare\",\r\n \"nar3i\",\r\n \"nar4l\",\r\n \"n5arm\",\r\n \"n4as\",\r\n \"nas4c\",\r\n \"nas5ti\",\r\n \"n2at\",\r\n \"na3tal\",\r\n \"nato5miz\",\r\n \"n2au\",\r\n \"nau3se\",\r\n \"3naut\",\r\n \"nav4e\",\r\n \"4n1b4\",\r\n \"ncar5\",\r\n \"n4ces.\",\r\n \"n3cha\",\r\n \"n5cheo\",\r\n \"n5chil\",\r\n \"n3chis\",\r\n \"nc1in\",\r\n \"nc4it\",\r\n \"ncour5a\",\r\n \"n1cr\",\r\n \"n1cu\",\r\n \"n4dai\",\r\n \"n5dan\",\r\n \"n1de\",\r\n \"nd5est.\",\r\n \"ndi4b\",\r\n \"n5d2if\",\r\n \"n1dit\",\r\n \"n3diz\",\r\n \"n5duc\",\r\n \"ndu4r\",\r\n \"nd2we\",\r\n \"2ne.\",\r\n \"n3ear\",\r\n \"ne2b\",\r\n \"neb3u\",\r\n \"ne2c\",\r\n \"5neck\",\r\n \"2ned\",\r\n \"ne4gat\",\r\n \"neg5ativ\",\r\n \"5nege\",\r\n \"ne4la\",\r\n \"nel5iz\",\r\n \"ne5mi\",\r\n \"ne4mo\",\r\n \"1nen\",\r\n \"4nene\",\r\n \"3neo\",\r\n \"ne4po\",\r\n \"ne2q\",\r\n \"n1er\",\r\n \"nera5b\",\r\n \"n4erar\",\r\n \"n2ere\",\r\n \"n4er5i\",\r\n \"ner4r\",\r\n \"1nes\",\r\n \"2nes.\",\r\n \"4nesp\",\r\n \"2nest\",\r\n \"4nesw\",\r\n \"3netic\",\r\n \"ne4v\",\r\n \"n5eve\",\r\n \"ne4w\",\r\n \"n3f\",\r\n \"n4gab\",\r\n \"n3gel\",\r\n \"nge4n4e\",\r\n \"n5gere\",\r\n \"n3geri\",\r\n \"ng5ha\",\r\n \"n3gib\",\r\n \"ng1in\",\r\n \"n5git\",\r\n \"n4gla\",\r\n \"ngov4\",\r\n \"ng5sh\",\r\n \"n1gu\",\r\n \"n4gum\",\r\n \"n2gy\",\r\n \"4n1h4\",\r\n \"nha4\",\r\n \"nhab3\",\r\n \"nhe4\",\r\n \"3n4ia\",\r\n \"ni3an\",\r\n \"ni4ap\",\r\n \"ni3ba\",\r\n \"ni4bl\",\r\n \"ni4d\",\r\n \"ni5di\",\r\n \"ni4er\",\r\n \"ni2fi\",\r\n \"ni5ficat\",\r\n \"n5igr\",\r\n \"nik4\",\r\n \"n1im\",\r\n \"ni3miz\",\r\n \"n1in\",\r\n \"5nine.\",\r\n \"nin4g\",\r\n \"ni4o\",\r\n \"5nis.\",\r\n \"nis4ta\",\r\n \"n2it\",\r\n \"n4ith\",\r\n \"3nitio\",\r\n \"n3itor\",\r\n \"ni3tr\",\r\n \"n1j\",\r\n \"4nk2\",\r\n \"n5kero\",\r\n \"n3ket\",\r\n \"nk3in\",\r\n \"n1kl\",\r\n \"4n1l\",\r\n \"n5m\",\r\n \"nme4\",\r\n \"nmet4\",\r\n \"4n1n2\",\r\n \"nne4\",\r\n \"nni3al\",\r\n \"nni4v\",\r\n \"nob4l\",\r\n \"no3ble\",\r\n \"n5ocl\",\r\n \"4n3o2d\",\r\n \"3noe\",\r\n \"4nog\",\r\n \"noge4\",\r\n \"nois5i\",\r\n \"no5l4i\",\r\n \"5nologis\",\r\n \"3nomic\",\r\n \"n5o5miz\",\r\n \"no4mo\",\r\n \"no3my\",\r\n \"no4n\",\r\n \"non4ag\",\r\n \"non5i\",\r\n \"n5oniz\",\r\n \"4nop\",\r\n \"5nop5o5li\",\r\n \"nor5ab\",\r\n \"no4rary\",\r\n \"4nosc\",\r\n \"nos4e\",\r\n \"nos5t\",\r\n \"no5ta\",\r\n \"1nou\",\r\n \"3noun\",\r\n \"nov3el3\",\r\n \"nowl3\",\r\n \"n1p4\",\r\n \"npi4\",\r\n \"npre4c\",\r\n \"n1q\",\r\n \"n1r\",\r\n \"nru4\",\r\n \"2n1s2\",\r\n \"ns5ab\",\r\n \"nsati4\",\r\n \"ns4c\",\r\n \"n2se\",\r\n \"n4s3es\",\r\n \"nsid1\",\r\n \"nsig4\",\r\n \"n2sl\",\r\n \"ns3m\",\r\n \"n4soc\",\r\n \"ns4pe\",\r\n \"n5spi\",\r\n \"nsta5bl\",\r\n \"n1t\",\r\n \"nta4b\",\r\n \"nter3s\",\r\n \"nt2i\",\r\n \"n5tib\",\r\n \"nti4er\",\r\n \"nti2f\",\r\n \"n3tine\",\r\n \"n4t3ing\",\r\n \"nti4p\",\r\n \"ntrol5li\",\r\n \"nt4s\",\r\n \"ntu3me\",\r\n \"nu1a\",\r\n \"nu4d\",\r\n \"nu5en\",\r\n \"nuf4fe\",\r\n \"n3uin\",\r\n \"3nu3it\",\r\n \"n4um\",\r\n \"nu1me\",\r\n \"n5umi\",\r\n \"3nu4n\",\r\n \"n3uo\",\r\n \"nu3tr\",\r\n \"n1v2\",\r\n \"n1w4\",\r\n \"nym4\",\r\n \"nyp4\",\r\n \"4nz\",\r\n \"n3za\",\r\n \"4oa\",\r\n \"oad3\",\r\n \"o5a5les\",\r\n \"oard3\",\r\n \"oas4e\",\r\n \"oast5e\",\r\n \"oat5i\",\r\n \"ob3a3b\",\r\n \"o5bar\",\r\n \"obe4l\",\r\n \"o1bi\",\r\n \"o2bin\",\r\n \"ob5ing\",\r\n \"o3br\",\r\n \"ob3ul\",\r\n \"o1ce\",\r\n \"och4\",\r\n \"o3chet\",\r\n \"ocif3\",\r\n \"o4cil\",\r\n \"o4clam\",\r\n \"o4cod\",\r\n \"oc3rac\",\r\n \"oc5ratiz\",\r\n \"ocre3\",\r\n \"5ocrit\",\r\n \"octor5a\",\r\n \"oc3ula\",\r\n \"o5cure\",\r\n \"od5ded\",\r\n \"od3ic\",\r\n \"odi3o\",\r\n \"o2do4\",\r\n \"odor3\",\r\n \"od5uct.\",\r\n \"od5ucts\",\r\n \"o4el\",\r\n \"o5eng\",\r\n \"o3er\",\r\n \"oe4ta\",\r\n \"o3ev\",\r\n \"o2fi\",\r\n \"of5ite\",\r\n \"ofit4t\",\r\n \"o2g5a5r\",\r\n \"og5ativ\",\r\n \"o4gato\",\r\n \"o1ge\",\r\n \"o5gene\",\r\n \"o5geo\",\r\n \"o4ger\",\r\n \"o3gie\",\r\n \"1o1gis\",\r\n \"og3it\",\r\n \"o4gl\",\r\n \"o5g2ly\",\r\n \"3ogniz\",\r\n \"o4gro\",\r\n \"ogu5i\",\r\n \"1ogy\",\r\n \"2ogyn\",\r\n \"o1h2\",\r\n \"ohab5\",\r\n \"oi2\",\r\n \"oic3es\",\r\n \"oi3der\",\r\n \"oiff4\",\r\n \"oig4\",\r\n \"oi5let\",\r\n \"o3ing\",\r\n \"oint5er\",\r\n \"o5ism\",\r\n \"oi5son\",\r\n \"oist5en\",\r\n \"oi3ter\",\r\n \"o5j\",\r\n \"2ok\",\r\n \"o3ken\",\r\n \"ok5ie\",\r\n \"o1la\",\r\n \"o4lan\",\r\n \"olass4\",\r\n \"ol2d\",\r\n \"old1e\",\r\n \"ol3er\",\r\n \"o3lesc\",\r\n \"o3let\",\r\n \"ol4fi\",\r\n \"ol2i\",\r\n \"o3lia\",\r\n \"o3lice\",\r\n \"ol5id.\",\r\n \"o3li4f\",\r\n \"o5lil\",\r\n \"ol3ing\",\r\n \"o5lio\",\r\n \"o5lis.\",\r\n \"ol3ish\",\r\n \"o5lite\",\r\n \"o5litio\",\r\n \"o5liv\",\r\n \"olli4e\",\r\n \"ol5ogiz\",\r\n \"olo4r\",\r\n \"ol5pl\",\r\n \"ol2t\",\r\n \"ol3ub\",\r\n \"ol3ume\",\r\n \"ol3un\",\r\n \"o5lus\",\r\n \"ol2v\",\r\n \"o2ly\",\r\n \"om5ah\",\r\n \"oma5l\",\r\n \"om5atiz\",\r\n \"om2be\",\r\n \"om4bl\",\r\n \"o2me\",\r\n \"om3ena\",\r\n \"om5erse\",\r\n \"o4met\",\r\n \"om5etry\",\r\n \"o3mia\",\r\n \"om3ic.\",\r\n \"om3ica\",\r\n \"o5mid\",\r\n \"om1in\",\r\n \"o5mini\",\r\n \"5ommend\",\r\n \"omo4ge\",\r\n \"o4mon\",\r\n \"om3pi\",\r\n \"ompro5\",\r\n \"o2n\",\r\n \"on1a\",\r\n \"on4ac\",\r\n \"o3nan\",\r\n \"on1c\",\r\n \"3oncil\",\r\n \"2ond\",\r\n \"on5do\",\r\n \"o3nen\",\r\n \"on5est\",\r\n \"on4gu\",\r\n \"on1ic\",\r\n \"o3nio\",\r\n \"on1is\",\r\n \"o5niu\",\r\n \"on3key\",\r\n \"on4odi\",\r\n \"on3omy\",\r\n \"on3s\",\r\n \"onspi4\",\r\n \"onspir5a\",\r\n \"onsu4\",\r\n \"onten4\",\r\n \"on3t4i\",\r\n \"ontif5\",\r\n \"on5um\",\r\n \"onva5\",\r\n \"oo2\",\r\n \"ood5e\",\r\n \"ood5i\",\r\n \"oo4k\",\r\n \"oop3i\",\r\n \"o3ord\",\r\n \"oost5\",\r\n \"o2pa\",\r\n \"ope5d\",\r\n \"op1er\",\r\n \"3opera\",\r\n \"4operag\",\r\n \"2oph\",\r\n \"o5phan\",\r\n \"o5pher\",\r\n \"op3ing\",\r\n \"o3pit\",\r\n \"o5pon\",\r\n \"o4posi\",\r\n \"o1pr\",\r\n \"op1u\",\r\n \"opy5\",\r\n \"o1q\",\r\n \"o1ra\",\r\n \"o5ra.\",\r\n \"o4r3ag\",\r\n \"or5aliz\",\r\n \"or5ange\",\r\n \"ore5a\",\r\n \"o5real\",\r\n \"or3ei\",\r\n \"ore5sh\",\r\n \"or5est.\",\r\n \"orew4\",\r\n \"or4gu\",\r\n \"4o5ria\",\r\n \"or3ica\",\r\n \"o5ril\",\r\n \"or1in\",\r\n \"o1rio\",\r\n \"or3ity\",\r\n \"o3riu\",\r\n \"or2mi\",\r\n \"orn2e\",\r\n \"o5rof\",\r\n \"or3oug\",\r\n \"or5pe\",\r\n \"3orrh\",\r\n \"or4se\",\r\n \"ors5en\",\r\n \"orst4\",\r\n \"or3thi\",\r\n \"or3thy\",\r\n \"or4ty\",\r\n \"o5rum\",\r\n \"o1ry\",\r\n \"os3al\",\r\n \"os2c\",\r\n \"os4ce\",\r\n \"o3scop\",\r\n \"4oscopi\",\r\n \"o5scr\",\r\n \"os4i4e\",\r\n \"os5itiv\",\r\n \"os3ito\",\r\n \"os3ity\",\r\n \"osi4u\",\r\n \"os4l\",\r\n \"o2so\",\r\n \"os4pa\",\r\n \"os4po\",\r\n \"os2ta\",\r\n \"o5stati\",\r\n \"os5til\",\r\n \"os5tit\",\r\n \"o4tan\",\r\n \"otele4g\",\r\n \"ot3er.\",\r\n \"ot5ers\",\r\n \"o4tes\",\r\n \"4oth\",\r\n \"oth5esi\",\r\n \"oth3i4\",\r\n \"ot3ic.\",\r\n \"ot5ica\",\r\n \"o3tice\",\r\n \"o3tif\",\r\n \"o3tis\",\r\n \"oto5s\",\r\n \"ou2\",\r\n \"ou3bl\",\r\n \"ouch5i\",\r\n \"ou5et\",\r\n \"ou4l\",\r\n \"ounc5er\",\r\n \"oun2d\",\r\n \"ou5v\",\r\n \"ov4en\",\r\n \"over4ne\",\r\n \"over3s\",\r\n \"ov4ert\",\r\n \"o3vis\",\r\n \"oviti4\",\r\n \"o5v4ol\",\r\n \"ow3der\",\r\n \"ow3el\",\r\n \"ow5est\",\r\n \"ow1i\",\r\n \"own5i\",\r\n \"o4wo\",\r\n \"oy1a\",\r\n \"1pa\",\r\n \"pa4ca\",\r\n \"pa4ce\",\r\n \"pac4t\",\r\n \"p4ad\",\r\n \"5pagan\",\r\n \"p3agat\",\r\n \"p4ai\",\r\n \"pain4\",\r\n \"p4al\",\r\n \"pan4a\",\r\n \"pan3el\",\r\n \"pan4ty\",\r\n \"pa3ny\",\r\n \"pa1p\",\r\n \"pa4pu\",\r\n \"para5bl\",\r\n \"par5age\",\r\n \"par5di\",\r\n \"3pare\",\r\n \"par5el\",\r\n \"p4a4ri\",\r\n \"par4is\",\r\n \"pa2te\",\r\n \"pa5ter\",\r\n \"5pathic\",\r\n \"pa5thy\",\r\n \"pa4tric\",\r\n \"pav4\",\r\n \"3pay\",\r\n \"4p1b\",\r\n \"pd4\",\r\n \"4pe.\",\r\n \"3pe4a\",\r\n \"pear4l\",\r\n \"pe2c\",\r\n \"2p2ed\",\r\n \"3pede\",\r\n \"3pedi\",\r\n \"pedia4\",\r\n \"ped4ic\",\r\n \"p4ee\",\r\n \"pee4d\",\r\n \"pek4\",\r\n \"pe4la\",\r\n \"peli4e\",\r\n \"pe4nan\",\r\n \"p4enc\",\r\n \"pen4th\",\r\n \"pe5on\",\r\n \"p4era.\",\r\n \"pera5bl\",\r\n \"p4erag\",\r\n \"p4eri\",\r\n \"peri5st\",\r\n \"per4mal\",\r\n \"perme5\",\r\n \"p4ern\",\r\n \"per3o\",\r\n \"per3ti\",\r\n \"pe5ru\",\r\n \"per1v\",\r\n \"pe2t\",\r\n \"pe5ten\",\r\n \"pe5tiz\",\r\n \"4pf\",\r\n \"4pg\",\r\n \"4ph.\",\r\n \"phar5i\",\r\n \"phe3no\",\r\n \"ph4er\",\r\n \"ph4es.\",\r\n \"ph1ic\",\r\n \"5phie\",\r\n \"ph5ing\",\r\n \"5phisti\",\r\n \"3phiz\",\r\n \"ph2l\",\r\n \"3phob\",\r\n \"3phone\",\r\n \"5phoni\",\r\n \"pho4r\",\r\n \"4phs\",\r\n \"ph3t\",\r\n \"5phu\",\r\n \"1phy\",\r\n \"pi3a\",\r\n \"pian4\",\r\n \"pi4cie\",\r\n \"pi4cy\",\r\n \"p4id\",\r\n \"p5ida\",\r\n \"pi3de\",\r\n \"5pidi\",\r\n \"3piec\",\r\n \"pi3en\",\r\n \"pi4grap\",\r\n \"pi3lo\",\r\n \"pi2n\",\r\n \"p4in.\",\r\n \"pind4\",\r\n \"p4ino\",\r\n \"3pi1o\",\r\n \"pion4\",\r\n \"p3ith\",\r\n \"pi5tha\",\r\n \"pi2tu\",\r\n \"2p3k2\",\r\n \"1p2l2\",\r\n \"3plan\",\r\n \"plas5t\",\r\n \"pli3a\",\r\n \"pli5er\",\r\n \"4plig\",\r\n \"pli4n\",\r\n \"ploi4\",\r\n \"plu4m\",\r\n \"plum4b\",\r\n \"4p1m\",\r\n \"2p3n\",\r\n \"po4c\",\r\n \"5pod.\",\r\n \"po5em\",\r\n \"po3et5\",\r\n \"5po4g\",\r\n \"poin2\",\r\n \"5point\",\r\n \"poly5t\",\r\n \"po4ni\",\r\n \"po4p\",\r\n \"1p4or\",\r\n \"po4ry\",\r\n \"1pos\",\r\n \"pos1s\",\r\n \"p4ot\",\r\n \"po4ta\",\r\n \"5poun\",\r\n \"4p1p\",\r\n \"ppa5ra\",\r\n \"p2pe\",\r\n \"p4ped\",\r\n \"p5pel\",\r\n \"p3pen\",\r\n \"p3per\",\r\n \"p3pet\",\r\n \"ppo5site\",\r\n \"pr2\",\r\n \"pray4e\",\r\n \"5preci\",\r\n \"pre5co\",\r\n \"pre3em\",\r\n \"pref5ac\",\r\n \"pre4la\",\r\n \"pre3r\",\r\n \"p3rese\",\r\n \"3press\",\r\n \"pre5ten\",\r\n \"pre3v\",\r\n \"5pri4e\",\r\n \"prin4t3\",\r\n \"pri4s\",\r\n \"pris3o\",\r\n \"p3roca\",\r\n \"prof5it\",\r\n \"pro3l\",\r\n \"pros3e\",\r\n \"pro1t\",\r\n \"2p1s2\",\r\n \"p2se\",\r\n \"ps4h\",\r\n \"p4sib\",\r\n \"2p1t\",\r\n \"pt5a4b\",\r\n \"p2te\",\r\n \"p2th\",\r\n \"pti3m\",\r\n \"ptu4r\",\r\n \"p4tw\",\r\n \"pub3\",\r\n \"pue4\",\r\n \"puf4\",\r\n \"pul3c\",\r\n \"pu4m\",\r\n \"pu2n\",\r\n \"pur4r\",\r\n \"5pus\",\r\n \"pu2t\",\r\n \"5pute\",\r\n \"put3er\",\r\n \"pu3tr\",\r\n \"put4ted\",\r\n \"put4tin\",\r\n \"p3w\",\r\n \"qu2\",\r\n \"qua5v\",\r\n \"2que.\",\r\n \"3quer\",\r\n \"3quet\",\r\n \"2rab\",\r\n \"ra3bi\",\r\n \"rach4e\",\r\n \"r5acl\",\r\n \"raf5fi\",\r\n \"raf4t\",\r\n \"r2ai\",\r\n \"ra4lo\",\r\n \"ram3et\",\r\n \"r2ami\",\r\n \"rane5o\",\r\n \"ran4ge\",\r\n \"r4ani\",\r\n \"ra5no\",\r\n \"rap3er\",\r\n \"3raphy\",\r\n \"rar5c\",\r\n \"rare4\",\r\n \"rar5ef\",\r\n \"4raril\",\r\n \"r2as\",\r\n \"ration4\",\r\n \"rau4t\",\r\n \"ra5vai\",\r\n \"rav3el\",\r\n \"ra5zie\",\r\n \"r1b\",\r\n \"r4bab\",\r\n \"r4bag\",\r\n \"rbi2\",\r\n \"rbi4f\",\r\n \"r2bin\",\r\n \"r5bine\",\r\n \"rb5ing.\",\r\n \"rb4o\",\r\n \"r1c\",\r\n \"r2ce\",\r\n \"rcen4\",\r\n \"r3cha\",\r\n \"rch4er\",\r\n \"r4ci4b\",\r\n \"rc4it\",\r\n \"rcum3\",\r\n \"r4dal\",\r\n \"rd2i\",\r\n \"rdi4a\",\r\n \"rdi4er\",\r\n \"rdin4\",\r\n \"rd3ing\",\r\n \"2re.\",\r\n \"re1al\",\r\n \"re3an\",\r\n \"re5arr\",\r\n \"5reav\",\r\n \"re4aw\",\r\n \"r5ebrat\",\r\n \"rec5oll\",\r\n \"rec5ompe\",\r\n \"re4cre\",\r\n \"2r2ed\",\r\n \"re1de\",\r\n \"re3dis\",\r\n \"red5it\",\r\n \"re4fac\",\r\n \"re2fe\",\r\n \"re5fer.\",\r\n \"re3fi\",\r\n \"re4fy\",\r\n \"reg3is\",\r\n \"re5it\",\r\n \"re1li\",\r\n \"re5lu\",\r\n \"r4en4ta\",\r\n \"ren4te\",\r\n \"re1o\",\r\n \"re5pin\",\r\n \"re4posi\",\r\n \"re1pu\",\r\n \"r1er4\",\r\n \"r4eri\",\r\n \"rero4\",\r\n \"re5ru\",\r\n \"r4es.\",\r\n \"re4spi\",\r\n \"ress5ib\",\r\n \"res2t\",\r\n \"re5stal\",\r\n \"re3str\",\r\n \"re4ter\",\r\n \"re4ti4z\",\r\n \"re3tri\",\r\n \"reu2\",\r\n \"re5uti\",\r\n \"rev2\",\r\n \"re4val\",\r\n \"rev3el\",\r\n \"r5ev5er.\",\r\n \"re5vers\",\r\n \"re5vert\",\r\n \"re5vil\",\r\n \"rev5olu\",\r\n \"re4wh\",\r\n \"r1f\",\r\n \"rfu4\",\r\n \"r4fy\",\r\n \"rg2\",\r\n \"rg3er\",\r\n \"r3get\",\r\n \"r3gic\",\r\n \"rgi4n\",\r\n \"rg3ing\",\r\n \"r5gis\",\r\n \"r5git\",\r\n \"r1gl\",\r\n \"rgo4n\",\r\n \"r3gu\",\r\n \"rh4\",\r\n \"4rh.\",\r\n \"4rhal\",\r\n \"ri3a\",\r\n \"ria4b\",\r\n \"ri4ag\",\r\n \"r4ib\",\r\n \"rib3a\",\r\n \"ric5as\",\r\n \"r4ice\",\r\n \"4rici\",\r\n \"5ricid\",\r\n \"ri4cie\",\r\n \"r4ico\",\r\n \"rid5er\",\r\n \"ri3enc\",\r\n \"ri3ent\",\r\n \"ri1er\",\r\n \"ri5et\",\r\n \"rig5an\",\r\n \"5rigi\",\r\n \"ril3iz\",\r\n \"5riman\",\r\n \"rim5i\",\r\n \"3rimo\",\r\n \"rim4pe\",\r\n \"r2ina\",\r\n \"5rina.\",\r\n \"rin4d\",\r\n \"rin4e\",\r\n \"rin4g\",\r\n \"ri1o\",\r\n \"5riph\",\r\n \"riph5e\",\r\n \"ri2pl\",\r\n \"rip5lic\",\r\n \"r4iq\",\r\n \"r2is\",\r\n \"r4is.\",\r\n \"ris4c\",\r\n \"r3ish\",\r\n \"ris4p\",\r\n \"ri3ta3b\",\r\n \"r5ited.\",\r\n \"rit5er.\",\r\n \"rit5ers\",\r\n \"rit3ic\",\r\n \"ri2tu\",\r\n \"rit5ur\",\r\n \"riv5el\",\r\n \"riv3et\",\r\n \"riv3i\",\r\n \"r3j\",\r\n \"r3ket\",\r\n \"rk4le\",\r\n \"rk4lin\",\r\n \"r1l\",\r\n \"rle4\",\r\n \"r2led\",\r\n \"r4lig\",\r\n \"r4lis\",\r\n \"rl5ish\",\r\n \"r3lo4\",\r\n \"r1m\",\r\n \"rma5c\",\r\n \"r2me\",\r\n \"r3men\",\r\n \"rm5ers\",\r\n \"rm3ing\",\r\n \"r4ming.\",\r\n \"r4mio\",\r\n \"r3mit\",\r\n \"r4my\",\r\n \"r4nar\",\r\n \"r3nel\",\r\n \"r4ner\",\r\n \"r5net\",\r\n \"r3ney\",\r\n \"r5nic\",\r\n \"r1nis4\",\r\n \"r3nit\",\r\n \"r3niv\",\r\n \"rno4\",\r\n \"r4nou\",\r\n \"r3nu\",\r\n \"rob3l\",\r\n \"r2oc\",\r\n \"ro3cr\",\r\n \"ro4e\",\r\n \"ro1fe\",\r\n \"ro5fil\",\r\n \"rok2\",\r\n \"ro5ker\",\r\n \"5role.\",\r\n \"rom5ete\",\r\n \"rom4i\",\r\n \"rom4p\",\r\n \"ron4al\",\r\n \"ron4e\",\r\n \"ro5n4is\",\r\n \"ron4ta\",\r\n \"1room\",\r\n \"5root\",\r\n \"ro3pel\",\r\n \"rop3ic\",\r\n \"ror3i\",\r\n \"ro5ro\",\r\n \"ros5per\",\r\n \"ros4s\",\r\n \"ro4the\",\r\n \"ro4ty\",\r\n \"ro4va\",\r\n \"rov5el\",\r\n \"rox5\",\r\n \"r1p\",\r\n \"r4pea\",\r\n \"r5pent\",\r\n \"rp5er.\",\r\n \"r3pet\",\r\n \"rp4h4\",\r\n \"rp3ing\",\r\n \"r3po\",\r\n \"r1r4\",\r\n \"rre4c\",\r\n \"rre4f\",\r\n \"r4reo\",\r\n \"rre4st\",\r\n \"rri4o\",\r\n \"rri4v\",\r\n \"rron4\",\r\n \"rros4\",\r\n \"rrys4\",\r\n \"4rs2\",\r\n \"r1sa\",\r\n \"rsa5ti\",\r\n \"rs4c\",\r\n \"r2se\",\r\n \"r3sec\",\r\n \"rse4cr\",\r\n \"rs5er.\",\r\n \"rs3es\",\r\n \"rse5v2\",\r\n \"r1sh\",\r\n \"r5sha\",\r\n \"r1si\",\r\n \"r4si4b\",\r\n \"rson3\",\r\n \"r1sp\",\r\n \"r5sw\",\r\n \"rtach4\",\r\n \"r4tag\",\r\n \"r3teb\",\r\n \"rten4d\",\r\n \"rte5o\",\r\n \"r1ti\",\r\n \"rt5ib\",\r\n \"rti4d\",\r\n \"r4tier\",\r\n \"r3tig\",\r\n \"rtil3i\",\r\n \"rtil4l\",\r\n \"r4tily\",\r\n \"r4tist\",\r\n \"r4tiv\",\r\n \"r3tri\",\r\n \"rtroph4\",\r\n \"rt4sh\",\r\n \"ru3a\",\r\n \"ru3e4l\",\r\n \"ru3en\",\r\n \"ru4gl\",\r\n \"ru3in\",\r\n \"rum3pl\",\r\n \"ru2n\",\r\n \"runk5\",\r\n \"run4ty\",\r\n \"r5usc\",\r\n \"ruti5n\",\r\n \"rv4e\",\r\n \"rvel4i\",\r\n \"r3ven\",\r\n \"rv5er.\",\r\n \"r5vest\",\r\n \"r3vey\",\r\n \"r3vic\",\r\n \"rvi4v\",\r\n \"r3vo\",\r\n \"r1w\",\r\n \"ry4c\",\r\n \"5rynge\",\r\n \"ry3t\",\r\n \"sa2\",\r\n \"2s1ab\",\r\n \"5sack\",\r\n \"sac3ri\",\r\n \"s3act\",\r\n \"5sai\",\r\n \"salar4\",\r\n \"sal4m\",\r\n \"sa5lo\",\r\n \"sal4t\",\r\n \"3sanc\",\r\n \"san4de\",\r\n \"s1ap\",\r\n \"sa5ta\",\r\n \"5sa3tio\",\r\n \"sat3u\",\r\n \"sau4\",\r\n \"sa5vor\",\r\n \"5saw\",\r\n \"4s5b\",\r\n \"scan4t5\",\r\n \"sca4p\",\r\n \"scav5\",\r\n \"s4ced\",\r\n \"4scei\",\r\n \"s4ces\",\r\n \"sch2\",\r\n \"s4cho\",\r\n \"3s4cie\",\r\n \"5scin4d\",\r\n \"scle5\",\r\n \"s4cli\",\r\n \"scof4\",\r\n \"4scopy\",\r\n \"scour5a\",\r\n \"s1cu\",\r\n \"4s5d\",\r\n \"4se.\",\r\n \"se4a\",\r\n \"seas4\",\r\n \"sea5w\",\r\n \"se2c3o\",\r\n \"3sect\",\r\n \"4s4ed\",\r\n \"se4d4e\",\r\n \"s5edl\",\r\n \"se2g\",\r\n \"seg3r\",\r\n \"5sei\",\r\n \"se1le\",\r\n \"5self\",\r\n \"5selv\",\r\n \"4seme\",\r\n \"se4mol\",\r\n \"sen5at\",\r\n \"4senc\",\r\n \"sen4d\",\r\n \"s5ened\",\r\n \"sen5g\",\r\n \"s5enin\",\r\n \"4sentd\",\r\n \"4sentl\",\r\n \"sep3a3\",\r\n \"4s1er.\",\r\n \"s4erl\",\r\n \"ser4o\",\r\n \"4servo\",\r\n \"s1e4s\",\r\n \"se5sh\",\r\n \"ses5t\",\r\n \"5se5um\",\r\n \"5sev\",\r\n \"sev3en\",\r\n \"sew4i\",\r\n \"5sex\",\r\n \"4s3f\",\r\n \"2s3g\",\r\n \"s2h\",\r\n \"2sh.\",\r\n \"sh1er\",\r\n \"5shev\",\r\n \"sh1in\",\r\n \"sh3io\",\r\n \"3ship\",\r\n \"shiv5\",\r\n \"sho4\",\r\n \"sh5old\",\r\n \"shon3\",\r\n \"shor4\",\r\n \"short5\",\r\n \"4shw\",\r\n \"si1b\",\r\n \"s5icc\",\r\n \"3side.\",\r\n \"5sides\",\r\n \"5sidi\",\r\n \"si5diz\",\r\n \"4signa\",\r\n \"sil4e\",\r\n \"4sily\",\r\n \"2s1in\",\r\n \"s2ina\",\r\n \"5sine.\",\r\n \"s3ing\",\r\n \"1sio\",\r\n \"5sion\",\r\n \"sion5a\",\r\n \"si2r\",\r\n \"sir5a\",\r\n \"1sis\",\r\n \"3sitio\",\r\n \"5siu\",\r\n \"1siv\",\r\n \"5siz\",\r\n \"sk2\",\r\n \"4ske\",\r\n \"s3ket\",\r\n \"sk5ine\",\r\n \"sk5ing\",\r\n \"s1l2\",\r\n \"s3lat\",\r\n \"s2le\",\r\n \"slith5\",\r\n \"2s1m\",\r\n \"s3ma\",\r\n \"small3\",\r\n \"sman3\",\r\n \"smel4\",\r\n \"s5men\",\r\n \"5smith\",\r\n \"smol5d4\",\r\n \"s1n4\",\r\n \"1so\",\r\n \"so4ce\",\r\n \"soft3\",\r\n \"so4lab\",\r\n \"sol3d2\",\r\n \"so3lic\",\r\n \"5solv\",\r\n \"3som\",\r\n \"3s4on.\",\r\n \"sona4\",\r\n \"son4g\",\r\n \"s4op\",\r\n \"5sophic\",\r\n \"s5ophiz\",\r\n \"s5ophy\",\r\n \"sor5c\",\r\n \"sor5d\",\r\n \"4sov\",\r\n \"so5vi\",\r\n \"2spa\",\r\n \"5spai\",\r\n \"spa4n\",\r\n \"spen4d\",\r\n \"2s5peo\",\r\n \"2sper\",\r\n \"s2phe\",\r\n \"3spher\",\r\n \"spho5\",\r\n \"spil4\",\r\n \"sp5ing\",\r\n \"4spio\",\r\n \"s4ply\",\r\n \"s4pon\",\r\n \"spor4\",\r\n \"4spot\",\r\n \"squal4l\",\r\n \"s1r\",\r\n \"2ss\",\r\n \"s1sa\",\r\n \"ssas3\",\r\n \"s2s5c\",\r\n \"s3sel\",\r\n \"s5seng\",\r\n \"s4ses.\",\r\n \"s5set\",\r\n \"s1si\",\r\n \"s4sie\",\r\n \"ssi4er\",\r\n \"ss5ily\",\r\n \"s4sl\",\r\n \"ss4li\",\r\n \"s4sn\",\r\n \"sspend4\",\r\n \"ss2t\",\r\n \"ssur5a\",\r\n \"ss5w\",\r\n \"2st.\",\r\n \"s2tag\",\r\n \"s2tal\",\r\n \"stam4i\",\r\n \"5stand\",\r\n \"s4ta4p\",\r\n \"5stat.\",\r\n \"s4ted\",\r\n \"stern5i\",\r\n \"s5tero\",\r\n \"ste2w\",\r\n \"stew5a\",\r\n \"s3the\",\r\n \"st2i\",\r\n \"s4ti.\",\r\n \"s5tia\",\r\n \"s1tic\",\r\n \"5stick\",\r\n \"s4tie\",\r\n \"s3tif\",\r\n \"st3ing\",\r\n \"5stir\",\r\n \"s1tle\",\r\n \"5stock\",\r\n \"stom3a\",\r\n \"5stone\",\r\n \"s4top\",\r\n \"3store\",\r\n \"st4r\",\r\n \"s4trad\",\r\n \"5stratu\",\r\n \"s4tray\",\r\n \"s4trid\",\r\n \"4stry\",\r\n \"4st3w\",\r\n \"s2ty\",\r\n \"1su\",\r\n \"su1al\",\r\n \"su4b3\",\r\n \"su2g3\",\r\n \"su5is\",\r\n \"suit3\",\r\n \"s4ul\",\r\n \"su2m\",\r\n \"sum3i\",\r\n \"su2n\",\r\n \"su2r\",\r\n \"4sv\",\r\n \"sw2\",\r\n \"4swo\",\r\n \"s4y\",\r\n \"4syc\",\r\n \"3syl\",\r\n \"syn5o\",\r\n \"sy5rin\",\r\n \"1ta\",\r\n \"3ta.\",\r\n \"2tab\",\r\n \"ta5bles\",\r\n \"5taboliz\",\r\n \"4taci\",\r\n \"ta5do\",\r\n \"4taf4\",\r\n \"tai5lo\",\r\n \"ta2l\",\r\n \"ta5la\",\r\n \"tal5en\",\r\n \"tal3i\",\r\n \"4talk\",\r\n \"tal4lis\",\r\n \"ta5log\",\r\n \"ta5mo\",\r\n \"tan4de\",\r\n \"tanta3\",\r\n \"ta5per\",\r\n \"ta5pl\",\r\n \"tar4a\",\r\n \"4tarc\",\r\n \"4tare\",\r\n \"ta3riz\",\r\n \"tas4e\",\r\n \"ta5sy\",\r\n \"4tatic\",\r\n \"ta4tur\",\r\n \"taun4\",\r\n \"tav4\",\r\n \"2taw\",\r\n \"tax4is\",\r\n \"2t1b\",\r\n \"4tc\",\r\n \"t4ch\",\r\n \"tch5et\",\r\n \"4t1d\",\r\n \"4te.\",\r\n \"tead4i\",\r\n \"4teat\",\r\n \"tece4\",\r\n \"5tect\",\r\n \"2t1ed\",\r\n \"te5di\",\r\n \"1tee\",\r\n \"teg4\",\r\n \"te5ger\",\r\n \"te5gi\",\r\n \"3tel.\",\r\n \"teli4\",\r\n \"5tels\",\r\n \"te2ma2\",\r\n \"tem3at\",\r\n \"3tenan\",\r\n \"3tenc\",\r\n \"3tend\",\r\n \"4tenes\",\r\n \"1tent\",\r\n \"ten4tag\",\r\n \"1teo\",\r\n \"te4p\",\r\n \"te5pe\",\r\n \"ter3c\",\r\n \"5ter3d\",\r\n \"1teri\",\r\n \"ter5ies\",\r\n \"ter3is\",\r\n \"teri5za\",\r\n \"5ternit\",\r\n \"ter5v\",\r\n \"4tes.\",\r\n \"4tess\",\r\n \"t3ess.\",\r\n \"teth5e\",\r\n \"3teu\",\r\n \"3tex\",\r\n \"4tey\",\r\n \"2t1f\",\r\n \"4t1g\",\r\n \"2th.\",\r\n \"than4\",\r\n \"th2e\",\r\n \"4thea\",\r\n \"th3eas\",\r\n \"the5at\",\r\n \"the3is\",\r\n \"3thet\",\r\n \"th5ic.\",\r\n \"th5ica\",\r\n \"4thil\",\r\n \"5think\",\r\n \"4thl\",\r\n \"th5ode\",\r\n \"5thodic\",\r\n \"4thoo\",\r\n \"thor5it\",\r\n \"tho5riz\",\r\n \"2ths\",\r\n \"1tia\",\r\n \"ti4ab\",\r\n \"ti4ato\",\r\n \"2ti2b\",\r\n \"4tick\",\r\n \"t4ico\",\r\n \"t4ic1u\",\r\n \"5tidi\",\r\n \"3tien\",\r\n \"tif2\",\r\n \"ti5fy\",\r\n \"2tig\",\r\n \"5tigu\",\r\n \"till5in\",\r\n \"1tim\",\r\n \"4timp\",\r\n \"tim5ul\",\r\n \"2t1in\",\r\n \"t2ina\",\r\n \"3tine.\",\r\n \"3tini\",\r\n \"1tio\",\r\n \"ti5oc\",\r\n \"tion5ee\",\r\n \"5tiq\",\r\n \"ti3sa\",\r\n \"3tise\",\r\n \"tis4m\",\r\n \"ti5so\",\r\n \"tis4p\",\r\n \"5tistica\",\r\n \"ti3tl\",\r\n \"ti4u\",\r\n \"1tiv\",\r\n \"tiv4a\",\r\n \"1tiz\",\r\n \"ti3za\",\r\n \"ti3zen\",\r\n \"2tl\",\r\n \"t5la\",\r\n \"tlan4\",\r\n \"3tle.\",\r\n \"3tled\",\r\n \"3tles.\",\r\n \"t5let.\",\r\n \"t5lo\",\r\n \"4t1m\",\r\n \"tme4\",\r\n \"2t1n2\",\r\n \"1to\",\r\n \"to3b\",\r\n \"to5crat\",\r\n \"4todo\",\r\n \"2tof\",\r\n \"to2gr\",\r\n \"to5ic\",\r\n \"to2ma\",\r\n \"tom4b\",\r\n \"to3my\",\r\n \"ton4ali\",\r\n \"to3nat\",\r\n \"4tono\",\r\n \"4tony\",\r\n \"to2ra\",\r\n \"to3rie\",\r\n \"tor5iz\",\r\n \"tos2\",\r\n \"5tour\",\r\n \"4tout\",\r\n \"to3war\",\r\n \"4t1p\",\r\n \"1tra\",\r\n \"tra3b\",\r\n \"tra5ch\",\r\n \"traci4\",\r\n \"trac4it\",\r\n \"trac4te\",\r\n \"tras4\",\r\n \"tra5ven\",\r\n \"trav5es5\",\r\n \"tre5f\",\r\n \"tre4m\",\r\n \"trem5i\",\r\n \"5tria\",\r\n \"tri5ces\",\r\n \"5tricia\",\r\n \"4trics\",\r\n \"2trim\",\r\n \"tri4v\",\r\n \"tro5mi\",\r\n \"tron5i\",\r\n \"4trony\",\r\n \"tro5phe\",\r\n \"tro3sp\",\r\n \"tro3v\",\r\n \"tru5i\",\r\n \"trus4\",\r\n \"4t1s2\",\r\n \"t4sc\",\r\n \"tsh4\",\r\n \"t4sw\",\r\n \"4t3t2\",\r\n \"t4tes\",\r\n \"t5to\",\r\n \"ttu4\",\r\n \"1tu\",\r\n \"tu1a\",\r\n \"tu3ar\",\r\n \"tu4bi\",\r\n \"tud2\",\r\n \"4tue\",\r\n \"4tuf4\",\r\n \"5tu3i\",\r\n \"3tum\",\r\n \"tu4nis\",\r\n \"2t3up.\",\r\n \"3ture\",\r\n \"5turi\",\r\n \"tur3is\",\r\n \"tur5o\",\r\n \"tu5ry\",\r\n \"3tus\",\r\n \"4tv\",\r\n \"tw4\",\r\n \"4t1wa\",\r\n \"twis4\",\r\n \"4two\",\r\n \"1ty\",\r\n \"4tya\",\r\n \"2tyl\",\r\n \"type3\",\r\n \"ty5ph\",\r\n \"4tz\",\r\n \"tz4e\",\r\n \"4uab\",\r\n \"uac4\",\r\n \"ua5na\",\r\n \"uan4i\",\r\n \"uar5ant\",\r\n \"uar2d\",\r\n \"uar3i\",\r\n \"uar3t\",\r\n \"u1at\",\r\n \"uav4\",\r\n \"ub4e\",\r\n \"u4bel\",\r\n \"u3ber\",\r\n \"u4bero\",\r\n \"u1b4i\",\r\n \"u4b5ing\",\r\n \"u3ble.\",\r\n \"u3ca\",\r\n \"uci4b\",\r\n \"uc4it\",\r\n \"ucle3\",\r\n \"u3cr\",\r\n \"u3cu\",\r\n \"u4cy\",\r\n \"ud5d\",\r\n \"ud3er\",\r\n \"ud5est\",\r\n \"udev4\",\r\n \"u1dic\",\r\n \"ud3ied\",\r\n \"ud3ies\",\r\n \"ud5is\",\r\n \"u5dit\",\r\n \"u4don\",\r\n \"ud4si\",\r\n \"u4du\",\r\n \"u4ene\",\r\n \"uens4\",\r\n \"uen4te\",\r\n \"uer4il\",\r\n \"3ufa\",\r\n \"u3fl\",\r\n \"ugh3en\",\r\n \"ug5in\",\r\n \"2ui2\",\r\n \"uil5iz\",\r\n \"ui4n\",\r\n \"u1ing\",\r\n \"uir4m\",\r\n \"uita4\",\r\n \"uiv3\",\r\n \"uiv4er.\",\r\n \"u5j\",\r\n \"4uk\",\r\n \"u1la\",\r\n \"ula5b\",\r\n \"u5lati\",\r\n \"ulch4\",\r\n \"5ulche\",\r\n \"ul3der\",\r\n \"ul4e\",\r\n \"u1len\",\r\n \"ul4gi\",\r\n \"ul2i\",\r\n \"u5lia\",\r\n \"ul3ing\",\r\n \"ul5ish\",\r\n \"ul4lar\",\r\n \"ul4li4b\",\r\n \"ul4lis\",\r\n \"4ul3m\",\r\n \"u1l4o\",\r\n \"4uls\",\r\n \"uls5es\",\r\n \"ul1ti\",\r\n \"ultra3\",\r\n \"4ultu\",\r\n \"u3lu\",\r\n \"ul5ul\",\r\n \"ul5v\",\r\n \"um5ab\",\r\n \"um4bi\",\r\n \"um4bly\",\r\n \"u1mi\",\r\n \"u4m3ing\",\r\n \"umor5o\",\r\n \"um2p\",\r\n \"unat4\",\r\n \"u2ne\",\r\n \"un4er\",\r\n \"u1ni\",\r\n \"un4im\",\r\n \"u2nin\",\r\n \"un5ish\",\r\n \"uni3v\",\r\n \"un3s4\",\r\n \"un4sw\",\r\n \"unt3ab\",\r\n \"un4ter.\",\r\n \"un4tes\",\r\n \"unu4\",\r\n \"un5y\",\r\n \"un5z\",\r\n \"u4ors\",\r\n \"u5os\",\r\n \"u1ou\",\r\n \"u1pe\",\r\n \"uper5s\",\r\n \"u5pia\",\r\n \"up3ing\",\r\n \"u3pl\",\r\n \"up3p\",\r\n \"upport5\",\r\n \"upt5ib\",\r\n \"uptu4\",\r\n \"u1ra\",\r\n \"4ura.\",\r\n \"u4rag\",\r\n \"u4ras\",\r\n \"ur4be\",\r\n \"urc4\",\r\n \"ur1d\",\r\n \"ure5at\",\r\n \"ur4fer\",\r\n \"ur4fr\",\r\n \"u3rif\",\r\n \"uri4fic\",\r\n \"ur1in\",\r\n \"u3rio\",\r\n \"u1rit\",\r\n \"ur3iz\",\r\n \"ur2l\",\r\n \"url5ing.\",\r\n \"ur4no\",\r\n \"uros4\",\r\n \"ur4pe\",\r\n \"ur4pi\",\r\n \"urs5er\",\r\n \"ur5tes\",\r\n \"ur3the\",\r\n \"urti4\",\r\n \"ur4tie\",\r\n \"u3ru\",\r\n \"2us\",\r\n \"u5sad\",\r\n \"u5san\",\r\n \"us4ap\",\r\n \"usc2\",\r\n \"us3ci\",\r\n \"use5a\",\r\n \"u5sia\",\r\n \"u3sic\",\r\n \"us4lin\",\r\n \"us1p\",\r\n \"us5sl\",\r\n \"us5tere\",\r\n \"us1tr\",\r\n \"u2su\",\r\n \"usur4\",\r\n \"uta4b\",\r\n \"u3tat\",\r\n \"4ute.\",\r\n \"4utel\",\r\n \"4uten\",\r\n \"uten4i\",\r\n \"4u1t2i\",\r\n \"uti5liz\",\r\n \"u3tine\",\r\n \"ut3ing\",\r\n \"ution5a\",\r\n \"u4tis\",\r\n \"5u5tiz\",\r\n \"u4t1l\",\r\n \"ut5of\",\r\n \"uto5g\",\r\n \"uto5matic\",\r\n \"u5ton\",\r\n \"u4tou\",\r\n \"uts4\",\r\n \"u3u\",\r\n \"uu4m\",\r\n \"u1v2\",\r\n \"uxu3\",\r\n \"uz4e\",\r\n \"1va\",\r\n \"5va.\",\r\n \"2v1a4b\",\r\n \"vac5il\",\r\n \"vac3u\",\r\n \"vag4\",\r\n \"va4ge\",\r\n \"va5lie\",\r\n \"val5o\",\r\n \"val1u\",\r\n \"va5mo\",\r\n \"va5niz\",\r\n \"va5pi\",\r\n \"var5ied\",\r\n \"3vat\",\r\n \"4ve.\",\r\n \"4ved\",\r\n \"veg3\",\r\n \"v3el.\",\r\n \"vel3li\",\r\n \"ve4lo\",\r\n \"v4ely\",\r\n \"ven3om\",\r\n \"v5enue\",\r\n \"v4erd\",\r\n \"5vere.\",\r\n \"v4erel\",\r\n \"v3eren\",\r\n \"ver5enc\",\r\n \"v4eres\",\r\n \"ver3ie\",\r\n \"vermi4n\",\r\n \"3verse\",\r\n \"ver3th\",\r\n \"v4e2s\",\r\n \"4ves.\",\r\n \"ves4te\",\r\n \"ve4te\",\r\n \"vet3er\",\r\n \"ve4ty\",\r\n \"vi5ali\",\r\n \"5vian\",\r\n \"5vide.\",\r\n \"5vided\",\r\n \"4v3iden\",\r\n \"5vides\",\r\n \"5vidi\",\r\n \"v3if\",\r\n \"vi5gn\",\r\n \"vik4\",\r\n \"2vil\",\r\n \"5vilit\",\r\n \"v3i3liz\",\r\n \"v1in\",\r\n \"4vi4na\",\r\n \"v2inc\",\r\n \"vin5d\",\r\n \"4ving\",\r\n \"vio3l\",\r\n \"v3io4r\",\r\n \"vi1ou\",\r\n \"vi4p\",\r\n \"vi5ro\",\r\n \"vis3it\",\r\n \"vi3so\",\r\n \"vi3su\",\r\n \"4viti\",\r\n \"vit3r\",\r\n \"4vity\",\r\n \"3viv\",\r\n \"5vo.\",\r\n \"voi4\",\r\n \"3vok\",\r\n \"vo4la\",\r\n \"v5ole\",\r\n \"5volt\",\r\n \"3volv\",\r\n \"vom5i\",\r\n \"vor5ab\",\r\n \"vori4\",\r\n \"vo4ry\",\r\n \"vo4ta\",\r\n \"4votee\",\r\n \"4vv4\",\r\n \"v4y\",\r\n \"w5abl\",\r\n \"2wac\",\r\n \"wa5ger\",\r\n \"wag5o\",\r\n \"wait5\",\r\n \"w5al.\",\r\n \"wam4\",\r\n \"war4t\",\r\n \"was4t\",\r\n \"wa1te\",\r\n \"wa5ver\",\r\n \"w1b\",\r\n \"wea5rie\",\r\n \"weath3\",\r\n \"wed4n\",\r\n \"weet3\",\r\n \"wee5v\",\r\n \"wel4l\",\r\n \"w1er\",\r\n \"west3\",\r\n \"w3ev\",\r\n \"whi4\",\r\n \"wi2\",\r\n \"wil2\",\r\n \"will5in\",\r\n \"win4de\",\r\n \"win4g\",\r\n \"wir4\",\r\n \"3wise\",\r\n \"with3\",\r\n \"wiz5\",\r\n \"w4k\",\r\n \"wl4es\",\r\n \"wl3in\",\r\n \"w4no\",\r\n \"1wo2\",\r\n \"wom1\",\r\n \"wo5ven\",\r\n \"w5p\",\r\n \"wra4\",\r\n \"wri4\",\r\n \"writa4\",\r\n \"w3sh\",\r\n \"ws4l\",\r\n \"ws4pe\",\r\n \"w5s4t\",\r\n \"4wt\",\r\n \"wy4\",\r\n \"x1a\",\r\n \"xac5e\",\r\n \"x4ago\",\r\n \"xam3\",\r\n \"x4ap\",\r\n \"xas5\",\r\n \"x3c2\",\r\n \"x1e\",\r\n \"xe4cuto\",\r\n \"x2ed\",\r\n \"xer4i\",\r\n \"xe5ro\",\r\n \"x1h\",\r\n \"xhi2\",\r\n \"xhil5\",\r\n \"xhu4\",\r\n \"x3i\",\r\n \"xi5a\",\r\n \"xi5c\",\r\n \"xi5di\",\r\n \"x4ime\",\r\n \"xi5miz\",\r\n \"x3o\",\r\n \"x4ob\",\r\n \"x3p\",\r\n \"xpan4d\",\r\n \"xpecto5\",\r\n \"xpe3d\",\r\n \"x1t2\",\r\n \"x3ti\",\r\n \"x1u\",\r\n \"xu3a\",\r\n \"xx4\",\r\n \"y5ac\",\r\n \"3yar4\",\r\n \"y5at\",\r\n \"y1b\",\r\n \"y1c\",\r\n \"y2ce\",\r\n \"yc5er\",\r\n \"y3ch\",\r\n \"ych4e\",\r\n \"ycom4\",\r\n \"ycot4\",\r\n \"y1d\",\r\n \"y5ee\",\r\n \"y1er\",\r\n \"y4erf\",\r\n \"yes4\",\r\n \"ye4t\",\r\n \"y5gi\",\r\n \"4y3h\",\r\n \"y1i\",\r\n \"y3la\",\r\n \"ylla5bl\",\r\n \"y3lo\",\r\n \"y5lu\",\r\n \"ymbol5\",\r\n \"yme4\",\r\n \"ympa3\",\r\n \"yn3chr\",\r\n \"yn5d\",\r\n \"yn5g\",\r\n \"yn5ic\",\r\n \"5ynx\",\r\n \"y1o4\",\r\n \"yo5d\",\r\n \"y4o5g\",\r\n \"yom4\",\r\n \"yo5net\",\r\n \"y4ons\",\r\n \"y4os\",\r\n \"y4ped\",\r\n \"yper5\",\r\n \"yp3i\",\r\n \"y3po\",\r\n \"y4poc\",\r\n \"yp2ta\",\r\n \"y5pu\",\r\n \"yra5m\",\r\n \"yr5ia\",\r\n \"y3ro\",\r\n \"yr4r\",\r\n \"ys4c\",\r\n \"y3s2e\",\r\n \"ys3ica\",\r\n \"ys3io\",\r\n \"3ysis\",\r\n \"y4so\",\r\n \"yss4\",\r\n \"ys1t\",\r\n \"ys3ta\",\r\n \"ysur4\",\r\n \"y3thin\",\r\n \"yt3ic\",\r\n \"y1w\",\r\n \"za1\",\r\n \"z5a2b\",\r\n \"zar2\",\r\n \"4zb\",\r\n \"2ze\",\r\n \"ze4n\",\r\n \"ze4p\",\r\n \"z1er\",\r\n \"ze3ro\",\r\n \"zet4\",\r\n \"2z1i\",\r\n \"z4il\",\r\n \"z4is\",\r\n \"5zl\",\r\n \"4zm\",\r\n \"1zo\",\r\n \"zo4m\",\r\n \"zo5ol\",\r\n \"zte4\",\r\n \"4z1z2\",\r\n \"z4zy\",\r\n // hyphen.tex patterns end here, and additional patterns begin:\r\n \".con5gr\",\r\n \".de5riva\",\r\n \".dri5v4\",\r\n \".eth1y6l1\",\r\n \".eu4ler\",\r\n \".ev2\",\r\n \".ever5si5b\",\r\n \".ga4s1om1\",\r\n \".ge4ome\",\r\n \".ge5ot1\",\r\n \".he3mo1\",\r\n \".he3p6a\",\r\n \".he3roe\",\r\n \".in5u2t\",\r\n \".kil2n3i\",\r\n \".ko6r1te1\",\r\n \".le6ices\",\r\n \".me4ga1l\",\r\n \".met4ala\",\r\n \".mim5i2c1\",\r\n \".mi1s4ers\",\r\n \".ne6o3f\",\r\n \".noe1th\",\r\n \".non1e2m\",\r\n \".poly1s\",\r\n \".post1am\",\r\n \".pre1am\",\r\n \".rav5en1o\",\r\n \".semi5\",\r\n \".sem4ic\",\r\n \".semid6\",\r\n \".semip4\",\r\n \".semir4\",\r\n \".sem6is4\",\r\n \".semiv4\",\r\n \".sph6in1\",\r\n \".spin1o\",\r\n \".ta5pes1tr\",\r\n \".te3legr\",\r\n \".to6pog\",\r\n \".to2q\",\r\n \".un3at5t\",\r\n \".un5err5\",\r\n \".vi2c3ar\",\r\n \".we2b1l\",\r\n \".re1e4c\",\r\n \"a5bolic\",\r\n \"a2cabl\",\r\n \"af6fish\",\r\n \"am1en3ta5b\",\r\n \"anal6ys\",\r\n \"ano5a2c\",\r\n \"ans5gr\",\r\n \"ans3v\",\r\n \"anti1d\",\r\n \"an3ti1n2\",\r\n \"anti1re\",\r\n \"a4pe5able\",\r\n \"ar3che5t\",\r\n \"ar2range\",\r\n \"as5ymptot\",\r\n \"ath3er1o1s\",\r\n \"at6tes.\",\r\n \"augh4tl\",\r\n \"au5li5f\",\r\n \"av3iou\",\r\n \"back2er.\",\r\n \"ba6r1onie\",\r\n \"ba1thy\",\r\n \"bbi4t\",\r\n \"be2vie\",\r\n \"bi5d2if\",\r\n \"bil2lab\",\r\n \"bio5m\",\r\n \"bi1orb\",\r\n \"bio1rh\",\r\n \"b1i3tive\",\r\n \"blan2d1\",\r\n \"blin2d1\",\r\n \"blon2d2\",\r\n \"bor1no5\",\r\n \"bo2t1u1l\",\r\n \"brus4q\",\r\n \"bus6i2er\",\r\n \"bus6i2es\",\r\n \"buss4ing\",\r\n \"but2ed.\",\r\n \"but4ted\",\r\n \"cad5e1m\",\r\n \"cat1a1s2\",\r\n \"4chs.\",\r\n \"chs3hu\",\r\n \"chie5vo\",\r\n \"cig3a3r\",\r\n \"cin2q\",\r\n \"cle4ar\",\r\n \"co6ph1o3n\",\r\n \"cous2ti\",\r\n \"cri3tie\",\r\n \"croc1o1d\",\r\n \"cro5e2co\",\r\n \"c2tro3me6c\",\r\n \"1cu2r1ance\",\r\n \"2d3alone\",\r\n \"data1b\",\r\n \"dd5a5b\",\r\n \"d2d5ib\",\r\n \"de4als.\",\r\n \"de5clar1\",\r\n \"de2c5lina\",\r\n \"de3fin3iti\",\r\n \"de2mos\",\r\n \"des3ic\",\r\n \"de2tic\",\r\n \"dic1aid\",\r\n \"dif5fra\",\r\n \"3di1methy\",\r\n \"di2ren\",\r\n \"di2rer\",\r\n \"2d1lead\",\r\n \"2d1li2e\",\r\n \"3do5word\",\r\n \"dren1a5l\",\r\n \"drif2t1a\",\r\n \"d1ri3pleg5\",\r\n \"drom3e5d\",\r\n \"d3tab\",\r\n \"du2al.\",\r\n \"du1op1o1l\",\r\n \"ea4n3ies\",\r\n \"e3chas\",\r\n \"edg1l\",\r\n \"ed1uling\",\r\n \"eli2t1is\",\r\n \"e1loa\",\r\n \"en1dix\",\r\n \"eo3grap\",\r\n \"1e6p3i3neph1\",\r\n \"e2r3i4an.\",\r\n \"e3spac6i\",\r\n \"eth1y6l1ene\",\r\n \"5eu2clid1\",\r\n \"feb1rua\",\r\n \"fermi1o\",\r\n \"3fich\",\r\n \"fit5ted.\",\r\n \"fla1g6el\",\r\n \"flow2er.\",\r\n \"3fluor\",\r\n \"gen2cy.\",\r\n \"ge3o1d\",\r\n \"ght1we\",\r\n \"g1lead\",\r\n \"get2ic.\",\r\n \"4g1lish\",\r\n \"5glo5bin\",\r\n \"1g2nac\",\r\n \"gnet1ism\",\r\n \"gno5mo\",\r\n \"g2n1or.\",\r\n \"g2noresp\",\r\n \"2g1o4n3i1za\",\r\n \"graph5er.\",\r\n \"griev1\",\r\n \"g1utan\",\r\n \"hair1s\",\r\n \"ha2p3ar5r\",\r\n \"hatch1\",\r\n \"hex2a3\",\r\n \"hite3sid\",\r\n \"h3i5pel1a4\",\r\n \"hnau3z\",\r\n \"ho6r1ic.\",\r\n \"h2t1eou\",\r\n \"hypo1tha\",\r\n \"id4ios\",\r\n \"ifac1et\",\r\n \"ign4it\",\r\n \"ignit1er\",\r\n \"i4jk\",\r\n \"im3ped3a\",\r\n \"infra1s2\",\r\n \"i5nitely.\",\r\n \"irre6v3oc\",\r\n \"i1tesima\",\r\n \"ith5i2l\",\r\n \"itin5er5ar\",\r\n \"janu3a\",\r\n \"japan1e2s\",\r\n \"je1re1m\",\r\n \"1ke6ling\",\r\n \"1ki5netic\",\r\n \"1kovian\",\r\n \"k3sha\",\r\n \"la4c3i5e\",\r\n \"lai6n3ess\",\r\n \"lar5ce1n\",\r\n \"l3chai\",\r\n \"l3chil6d1\",\r\n \"lead6er.\",\r\n \"lea4s1a\",\r\n \"1lec3ta6b\",\r\n \"le3g6en2dre\",\r\n \"1le1noid\",\r\n \"lith1o5g\",\r\n \"ll1fl\",\r\n \"l2l3ish\",\r\n \"l5mo3nell\",\r\n \"lo1bot1o1\",\r\n \"lo2ges.\",\r\n \"load4ed.\",\r\n \"load6er.\",\r\n \"l3tea\",\r\n \"lth5i2ly\",\r\n \"lue1p\",\r\n \"1lunk3er\",\r\n \"1lum5bia.\",\r\n \"3lyg1a1mi\",\r\n \"ly5styr\",\r\n \"ma1la1p\",\r\n \"m2an.\",\r\n \"man3u1sc\",\r\n \"mar1gin1\",\r\n \"medi2c\",\r\n \"med3i3cin\",\r\n \"medio6c1\",\r\n \"me3gran3\",\r\n \"m2en.\",\r\n \"3mi3da5b\",\r\n \"3milita\",\r\n \"mil2l1ag\",\r\n \"mil5li5li\",\r\n \"mi6n3is.\",\r\n \"mi1n2ut1er\",\r\n \"mi1n2ut1est\",\r\n \"m3ma1b\",\r\n \"5maph1ro1\",\r\n \"5moc1ra1t\",\r\n \"mo5e2las\",\r\n \"mol1e5c\",\r\n \"mon4ey1l\",\r\n \"mono3ch\",\r\n \"mo4no1en\",\r\n \"moro6n5is\",\r\n \"mono1s6\",\r\n \"moth4et2\",\r\n \"m1ou3sin\",\r\n \"m5shack2\",\r\n \"mu2dro\",\r\n \"mul2ti5u\",\r\n \"n3ar4chs.\",\r\n \"n3ch2es1t\",\r\n \"ne3back\",\r\n \"2ne1ski\",\r\n \"n1dieck\",\r\n \"nd3thr\",\r\n \"nfi6n3ites\",\r\n \"4n5i4an.\",\r\n \"nge5nes\",\r\n \"ng1ho\",\r\n \"ng1spr\",\r\n \"nk3rup\",\r\n \"n5less\",\r\n \"5noc3er1os\",\r\n \"nom1a6l\",\r\n \"nom5e1no\",\r\n \"n1o1mist\",\r\n \"non1eq\",\r\n \"non1i4so\",\r\n \"5nop1oly.\",\r\n \"no1vemb\",\r\n \"ns5ceiv\",\r\n \"ns4moo\",\r\n \"ntre1p\",\r\n \"obli2g1\",\r\n \"o3chas\",\r\n \"odel3li\",\r\n \"odit1ic\",\r\n \"oerst2\",\r\n \"oke1st\",\r\n \"o3les3ter\",\r\n \"oli3gop1o1\",\r\n \"o1lo3n4om\",\r\n \"o3mecha6\",\r\n \"onom1ic\",\r\n \"o3norma\",\r\n \"o3no2t1o3n\",\r\n \"o3nou\",\r\n \"op1ism.\",\r\n \"or4tho3ni4t\",\r\n \"orth1ri\",\r\n \"or5tively\",\r\n \"o4s3pher\",\r\n \"o5test1er\",\r\n \"o5tes3tor\",\r\n \"oth3e1o1s\",\r\n \"ou3ba3do\",\r\n \"o6v3i4an.\",\r\n \"oxi6d1ic\",\r\n \"pal6mat\",\r\n \"parag6ra4\",\r\n \"par4a1le\",\r\n \"param4\",\r\n \"para3me\",\r\n \"pee2v1\",\r\n \"phi2l3ant\",\r\n \"phi5lat1e3l\",\r\n \"pi2c1a3d\",\r\n \"pli2c1ab\",\r\n \"pli5nar\",\r\n \"poin3ca\",\r\n \"1pole.\",\r\n \"poly1e\",\r\n \"po3lyph1ono\",\r\n \"1prema3c\",\r\n \"pre1neu\",\r\n \"pres2pli\",\r\n \"pro2cess\",\r\n \"proc3i3ty.\",\r\n \"pro2g1e\",\r\n \"3pseu2d\",\r\n \"pseu3d6o3d2\",\r\n \"pseu3d6o3f2\",\r\n \"pto3mat4\",\r\n \"p5trol3\",\r\n \"pu5bes5c\",\r\n \"quain2t1e\",\r\n \"qu6a3si3\",\r\n \"quasir6\",\r\n \"quasis6\",\r\n \"quin5tes5s\",\r\n \"qui3v4ar\",\r\n \"r1abolic\",\r\n \"3rab1o1loi\",\r\n \"ra3chu\",\r\n \"r3a3dig\",\r\n \"radi1o6g\",\r\n \"r2amen\",\r\n \"3ra4m5e1triz\",\r\n \"ra3mou\",\r\n \"ra5n2has\",\r\n \"ra1or\",\r\n \"r3bin1ge\",\r\n \"re2c3i1pr\",\r\n \"rec5t6ang\",\r\n \"re4t1ribu\",\r\n \"r3ial.\",\r\n \"riv1o1l\",\r\n \"6rk.\",\r\n \"rk1ho\",\r\n \"r1krau\",\r\n \"6rks.\",\r\n \"r5le5qu\",\r\n \"ro1bot1\",\r\n \"ro5e2las\",\r\n \"ro5epide1\",\r\n \"ro3mesh\",\r\n \"ro1tron\",\r\n \"r3pau5li\",\r\n \"rse1rad1i\",\r\n \"r1thou\",\r\n \"r1treu\",\r\n \"r1veil\",\r\n \"rz1sc\",\r\n \"sales3c\",\r\n \"sales5w\",\r\n \"5sa3par5il\",\r\n \"sca6p1er\",\r\n \"sca2t1ol\",\r\n \"s4chitz\",\r\n \"schro1ding1\",\r\n \"1sci2utt\",\r\n \"scrap4er.\",\r\n \"scy4th1\",\r\n \"sem1a1ph\",\r\n \"se3mes1t\",\r\n \"se1mi6t5ic\",\r\n \"sep3temb\",\r\n \"shoe1st\",\r\n \"sid2ed.\",\r\n \"side5st\",\r\n \"side5sw\",\r\n \"si5resid\",\r\n \"sky1sc\",\r\n \"3slova1kia\",\r\n \"3s2og1a1my\",\r\n \"so2lute\",\r\n \"3s2pace\",\r\n \"1s2pacin\",\r\n \"spe3cio\",\r\n \"spher1o\",\r\n \"spi2c1il\",\r\n \"spokes5w\",\r\n \"sports3c\",\r\n \"sports3w\",\r\n \"s3qui3to\",\r\n \"s2s1a3chu1\",\r\n \"ss3hat\",\r\n \"s2s3i4an.\",\r\n \"s5sign5a3b\",\r\n \"1s2tamp\",\r\n \"s2t1ant5shi\",\r\n \"star3tli\",\r\n \"sta1ti\",\r\n \"st5b\",\r\n \"1stor1ab\",\r\n \"strat1a1g\",\r\n \"strib5ut\",\r\n \"st5scr\",\r\n \"stu1pi4d1\",\r\n \"styl1is\",\r\n \"su2per1e6\",\r\n \"1sync\",\r\n \"1syth3i2\",\r\n \"swimm6\",\r\n \"5tab1o1lism\",\r\n \"ta3gon.\",\r\n \"talk1a5\",\r\n \"t1a1min\",\r\n \"t6ap6ath\",\r\n \"5tar2rh\",\r\n \"tch1c\",\r\n \"tch3i1er\",\r\n \"t1cr\",\r\n \"teach4er.\",\r\n \"tele2g\",\r\n \"tele1r6o\",\r\n \"3ter1gei\",\r\n \"ter2ic.\",\r\n \"t3ess2es\",\r\n \"tha4l1am\",\r\n \"tho3don\",\r\n \"th1o5gen1i\",\r\n \"tho1k2er\",\r\n \"thy4l1an\",\r\n \"thy3sc\",\r\n \"2t3i4an.\",\r\n \"ti2n3o1m\",\r\n \"t1li2er\",\r\n \"tolo2gy\",\r\n \"tot3ic\",\r\n \"trai3tor1\",\r\n \"tra1vers\",\r\n \"travers3a3b\",\r\n \"treach1e\",\r\n \"tr4ial.\",\r\n \"3tro1le1um\",\r\n \"trof4ic.\",\r\n \"tro3fit\",\r\n \"tro1p2is\",\r\n \"3trop1o5les\",\r\n \"3trop1o5lis\",\r\n \"t1ro1pol3it\",\r\n \"tsch3ie\",\r\n \"ttrib1ut1\",\r\n \"turn3ar\",\r\n \"t1wh\",\r\n \"ty2p5al\",\r\n \"ua3drati\",\r\n \"uad1ratu\",\r\n \"u5do3ny\",\r\n \"uea1m\",\r\n \"u2r1al.\",\r\n \"uri4al.\",\r\n \"us2er.\",\r\n \"v1ativ\",\r\n \"v1oir5du1\",\r\n \"va6guer\",\r\n \"vaude3v\",\r\n \"1verely.\",\r\n \"v1er1eig\",\r\n \"ves1tite\",\r\n \"vi1vip3a3r\",\r\n \"voice1p\",\r\n \"waste3w6a2\",\r\n \"wave1g4\",\r\n \"w3c\",\r\n \"week1n\",\r\n \"wide5sp\",\r\n \"wo4k1en\",\r\n \"wrap3aro\",\r\n \"writ6er.\",\r\n \"x1q\",\r\n \"xquis3\",\r\n \"y5che3d\",\r\n \"ym5e5try\",\r\n \"y1stro\",\r\n \"yes5ter1y\",\r\n \"z3ian.\",\r\n \"z3o1phr\",\r\n \"z2z3w\",\r\n // end of additional patterns.\r\n \"\"\r\n ];\r\n // DEK's hyphenation exception list, from hyphen.tex; not changed.\r\n var hyphenation = [\r\n \"as-so-ciate\",\r\n \"as-so-ciates\",\r\n \"dec-li-na-tion\",\r\n \"oblig-a-tory\",\r\n \"phil-an-thropic\",\r\n \"present\",\r\n \"presents\",\r\n \"project\",\r\n \"projects\",\r\n \"reci-procity\",\r\n \"re-cog-ni-zance\",\r\n \"ref-or-ma-tion\",\r\n \"ret-ri-bu-tion\",\r\n \"ta-ble\",\r\n \"\"\r\n ];\r\n\r\n return {\r\n patterns: patterns,\r\n exceptions: hyphenation\r\n };\r\n});\r\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.\n// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.\n// To save memory and loading time, we read table files only when requested.\n\nexports._dbcs = DBCSCodec;\n\nvar UNASSIGNED = -1,\n GB18030_CODE = -2,\n SEQ_START = -10,\n NODE_START = -1000,\n UNASSIGNED_NODE = new Array(0x100),\n DEF_CHAR = -1;\n\nfor (var i = 0; i < 0x100; i++)\n UNASSIGNED_NODE[i] = UNASSIGNED;\n\n\n// Class DBCSCodec reads and initializes mapping tables.\nfunction DBCSCodec(codecOptions, iconv) {\n this.encodingName = codecOptions.encodingName;\n if (!codecOptions)\n throw new Error(\"DBCS codec is called without the data.\")\n if (!codecOptions.table)\n throw new Error(\"Encoding '\" + this.encodingName + \"' has no data.\");\n\n // Load tables.\n var mappingTable = codecOptions.table();\n\n\n // Decode tables: MBCS -> Unicode.\n\n // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.\n // Trie root is decodeTables[0].\n // Values: >= 0 -> unicode character code. can be > 0xFFFF\n // == UNASSIGNED -> unknown/unassigned sequence.\n // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.\n // <= NODE_START -> index of the next node in our trie to process next byte.\n // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.\n this.decodeTables = [];\n this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.\n\n // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here. \n this.decodeTableSeq = [];\n\n // Actual mapping tables consist of chunks. Use them to fill up decode tables.\n for (var i = 0; i < mappingTable.length; i++)\n this._addDecodeChunk(mappingTable[i]);\n\n this.defaultCharUnicode = iconv.defaultCharUnicode;\n\n \n // Encode tables: Unicode -> DBCS.\n\n // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.\n // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.\n // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).\n // == UNASSIGNED -> no conversion found. Output a default char.\n // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.\n this.encodeTable = [];\n \n // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of\n // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key\n // means end of sequence (needed when one sequence is a strict subsequence of another).\n // Objects are kept separately from encodeTable to increase performance.\n this.encodeTableSeq = [];\n\n // Some chars can be decoded, but need not be encoded.\n var skipEncodeChars = {};\n if (codecOptions.encodeSkipVals)\n for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {\n var val = codecOptions.encodeSkipVals[i];\n if (typeof val === 'number')\n skipEncodeChars[val] = true;\n else\n for (var j = val.from; j <= val.to; j++)\n skipEncodeChars[j] = true;\n }\n \n // Use decode trie to recursively fill out encode tables.\n this._fillEncodeTable(0, 0, skipEncodeChars);\n\n // Add more encoding pairs when needed.\n if (codecOptions.encodeAdd) {\n for (var uChar in codecOptions.encodeAdd)\n if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))\n this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);\n }\n\n this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];\n if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];\n if (this.defCharSB === UNASSIGNED) this.defCharSB = \"?\".charCodeAt(0);\n\n\n // Load & create GB18030 tables when needed.\n if (typeof codecOptions.gb18030 === 'function') {\n this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.\n\n // Add GB18030 decode tables.\n var thirdByteNodeIdx = this.decodeTables.length;\n var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);\n\n var fourthByteNodeIdx = this.decodeTables.length;\n var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);\n\n for (var i = 0x81; i <= 0xFE; i++) {\n var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];\n var secondByteNode = this.decodeTables[secondByteNodeIdx];\n for (var j = 0x30; j <= 0x39; j++)\n secondByteNode[j] = NODE_START - thirdByteNodeIdx;\n }\n for (var i = 0x81; i <= 0xFE; i++)\n thirdByteNode[i] = NODE_START - fourthByteNodeIdx;\n for (var i = 0x30; i <= 0x39; i++)\n fourthByteNode[i] = GB18030_CODE\n } \n}\n\nDBCSCodec.prototype.encoder = DBCSEncoder;\nDBCSCodec.prototype.decoder = DBCSDecoder;\n\n// Decoder helpers\nDBCSCodec.prototype._getDecodeTrieNode = function(addr) {\n var bytes = [];\n for (; addr > 0; addr >>= 8)\n bytes.push(addr & 0xFF);\n if (bytes.length == 0)\n bytes.push(0);\n\n var node = this.decodeTables[0];\n for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.\n var val = node[bytes[i]];\n\n if (val == UNASSIGNED) { // Create new node.\n node[bytes[i]] = NODE_START - this.decodeTables.length;\n this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));\n }\n else if (val <= NODE_START) { // Existing node.\n node = this.decodeTables[NODE_START - val];\n }\n else\n throw new Error(\"Overwrite byte in \" + this.encodingName + \", addr: \" + addr.toString(16));\n }\n return node;\n}\n\n\nDBCSCodec.prototype._addDecodeChunk = function(chunk) {\n // First element of chunk is the hex mbcs code where we start.\n var curAddr = parseInt(chunk[0], 16);\n\n // Choose the decoding node where we'll write our chars.\n var writeTable = this._getDecodeTrieNode(curAddr);\n curAddr = curAddr & 0xFF;\n\n // Write all other elements of the chunk to the table.\n for (var k = 1; k < chunk.length; k++) {\n var part = chunk[k];\n if (typeof part === \"string\") { // String, write as-is.\n for (var l = 0; l < part.length;) {\n var code = part.charCodeAt(l++);\n if (0xD800 <= code && code < 0xDC00) { // Decode surrogate\n var codeTrail = part.charCodeAt(l++);\n if (0xDC00 <= codeTrail && codeTrail < 0xE000)\n writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);\n else\n throw new Error(\"Incorrect surrogate pair in \" + this.encodingName + \" at chunk \" + chunk[0]);\n }\n else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)\n var len = 0xFFF - code + 2;\n var seq = [];\n for (var m = 0; m < len; m++)\n seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.\n\n writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;\n this.decodeTableSeq.push(seq);\n }\n else\n writeTable[curAddr++] = code; // Basic char\n }\n } \n else if (typeof part === \"number\") { // Integer, meaning increasing sequence starting with prev character.\n var charCode = writeTable[curAddr - 1] + 1;\n for (var l = 0; l < part; l++)\n writeTable[curAddr++] = charCode++;\n }\n else\n throw new Error(\"Incorrect type '\" + typeof part + \"' given in \" + this.encodingName + \" at chunk \" + chunk[0]);\n }\n if (curAddr > 0xFF)\n throw new Error(\"Incorrect chunk in \" + this.encodingName + \" at addr \" + chunk[0] + \": too long\" + curAddr);\n}\n\n// Encoder helpers\nDBCSCodec.prototype._getEncodeBucket = function(uCode) {\n var high = uCode >> 8; // This could be > 0xFF because of astral characters.\n if (this.encodeTable[high] === undefined)\n this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.\n return this.encodeTable[high];\n}\n\nDBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {\n var bucket = this._getEncodeBucket(uCode);\n var low = uCode & 0xFF;\n if (bucket[low] <= SEQ_START)\n this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.\n else if (bucket[low] == UNASSIGNED)\n bucket[low] = dbcsCode;\n}\n\nDBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {\n \n // Get the root of character tree according to first character of the sequence.\n var uCode = seq[0];\n var bucket = this._getEncodeBucket(uCode);\n var low = uCode & 0xFF;\n\n var node;\n if (bucket[low] <= SEQ_START) {\n // There's already a sequence with - use it.\n node = this.encodeTableSeq[SEQ_START-bucket[low]];\n }\n else {\n // There was no sequence object - allocate a new one.\n node = {};\n if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.\n bucket[low] = SEQ_START - this.encodeTableSeq.length;\n this.encodeTableSeq.push(node);\n }\n\n // Traverse the character tree, allocating new nodes as needed.\n for (var j = 1; j < seq.length-1; j++) {\n var oldVal = node[uCode];\n if (typeof oldVal === 'object')\n node = oldVal;\n else {\n node = node[uCode] = {}\n if (oldVal !== undefined)\n node[DEF_CHAR] = oldVal\n }\n }\n\n // Set the leaf to given dbcsCode.\n uCode = seq[seq.length-1];\n node[uCode] = dbcsCode;\n}\n\nDBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {\n var node = this.decodeTables[nodeIdx];\n for (var i = 0; i < 0x100; i++) {\n var uCode = node[i];\n var mbCode = prefix + i;\n if (skipEncodeChars[mbCode])\n continue;\n\n if (uCode >= 0)\n this._setEncodeChar(uCode, mbCode);\n else if (uCode <= NODE_START)\n this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);\n else if (uCode <= SEQ_START)\n this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);\n }\n}\n\n\n\n// == Encoder ==================================================================\n\nfunction DBCSEncoder(options, codec) {\n // Encoder state\n this.leadSurrogate = -1;\n this.seqObj = undefined;\n \n // Static data\n this.encodeTable = codec.encodeTable;\n this.encodeTableSeq = codec.encodeTableSeq;\n this.defaultCharSingleByte = codec.defCharSB;\n this.gb18030 = codec.gb18030;\n}\n\nDBCSEncoder.prototype.write = function(str) {\n var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),\n leadSurrogate = this.leadSurrogate,\n seqObj = this.seqObj, nextChar = -1,\n i = 0, j = 0;\n\n while (true) {\n // 0. Get next character.\n if (nextChar === -1) {\n if (i == str.length) break;\n var uCode = str.charCodeAt(i++);\n }\n else {\n var uCode = nextChar;\n nextChar = -1; \n }\n\n // 1. Handle surrogates.\n if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.\n if (uCode < 0xDC00) { // We've got lead surrogate.\n if (leadSurrogate === -1) {\n leadSurrogate = uCode;\n continue;\n } else {\n leadSurrogate = uCode;\n // Double lead surrogate found.\n uCode = UNASSIGNED;\n }\n } else { // We've got trail surrogate.\n if (leadSurrogate !== -1) {\n uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);\n leadSurrogate = -1;\n } else {\n // Incomplete surrogate pair - only trail surrogate found.\n uCode = UNASSIGNED;\n }\n \n }\n }\n else if (leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.\n leadSurrogate = -1;\n }\n\n // 2. Convert uCode character.\n var dbcsCode = UNASSIGNED;\n if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence\n var resCode = seqObj[uCode];\n if (typeof resCode === 'object') { // Sequence continues.\n seqObj = resCode;\n continue;\n\n } else if (typeof resCode == 'number') { // Sequence finished. Write it.\n dbcsCode = resCode;\n\n } else if (resCode == undefined) { // Current character is not part of the sequence.\n\n // Try default character for this sequence\n resCode = seqObj[DEF_CHAR];\n if (resCode !== undefined) {\n dbcsCode = resCode; // Found. Write it.\n nextChar = uCode; // Current character will be written too in the next iteration.\n\n } else {\n // TODO: What if we have no default? (resCode == undefined)\n // Then, we should write first char of the sequence as-is and try the rest recursively.\n // Didn't do it for now because no encoding has this situation yet.\n // Currently, just skip the sequence and write current char.\n }\n }\n seqObj = undefined;\n }\n else if (uCode >= 0) { // Regular character\n var subtable = this.encodeTable[uCode >> 8];\n if (subtable !== undefined)\n dbcsCode = subtable[uCode & 0xFF];\n \n if (dbcsCode <= SEQ_START) { // Sequence start\n seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];\n continue;\n }\n\n if (dbcsCode == UNASSIGNED && this.gb18030) {\n // Use GB18030 algorithm to find character(s) to write.\n var idx = findIdx(this.gb18030.uChars, uCode);\n if (idx != -1) {\n var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;\n newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;\n newBuf[j++] = 0x30 + dbcsCode;\n continue;\n }\n }\n }\n\n // 3. Write dbcsCode character.\n if (dbcsCode === UNASSIGNED)\n dbcsCode = this.defaultCharSingleByte;\n \n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode;\n }\n else if (dbcsCode < 0x10000) {\n newBuf[j++] = dbcsCode >> 8; // high byte\n newBuf[j++] = dbcsCode & 0xFF; // low byte\n }\n else {\n newBuf[j++] = dbcsCode >> 16;\n newBuf[j++] = (dbcsCode >> 8) & 0xFF;\n newBuf[j++] = dbcsCode & 0xFF;\n }\n }\n\n this.seqObj = seqObj;\n this.leadSurrogate = leadSurrogate;\n return newBuf.slice(0, j);\n}\n\nDBCSEncoder.prototype.end = function() {\n if (this.leadSurrogate === -1 && this.seqObj === undefined)\n return; // All clean. Most often case.\n\n var newBuf = Buffer.alloc(10), j = 0;\n\n if (this.seqObj) { // We're in the sequence.\n var dbcsCode = this.seqObj[DEF_CHAR];\n if (dbcsCode !== undefined) { // Write beginning of the sequence.\n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode;\n }\n else {\n newBuf[j++] = dbcsCode >> 8; // high byte\n newBuf[j++] = dbcsCode & 0xFF; // low byte\n }\n } else {\n // See todo above.\n }\n this.seqObj = undefined;\n }\n\n if (this.leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n newBuf[j++] = this.defaultCharSingleByte;\n this.leadSurrogate = -1;\n }\n \n return newBuf.slice(0, j);\n}\n\n// Export for testing\nDBCSEncoder.prototype.findIdx = findIdx;\n\n\n// == Decoder ==================================================================\n\nfunction DBCSDecoder(options, codec) {\n // Decoder state\n this.nodeIdx = 0;\n this.prevBuf = Buffer.alloc(0);\n\n // Static data\n this.decodeTables = codec.decodeTables;\n this.decodeTableSeq = codec.decodeTableSeq;\n this.defaultCharUnicode = codec.defaultCharUnicode;\n this.gb18030 = codec.gb18030;\n}\n\nDBCSDecoder.prototype.write = function(buf) {\n var newBuf = Buffer.alloc(buf.length*2),\n nodeIdx = this.nodeIdx, \n prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,\n seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.\n uCode;\n\n if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.\n prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);\n \n for (var i = 0, j = 0; i < buf.length; i++) {\n var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];\n\n // Lookup in current trie node.\n var uCode = this.decodeTables[nodeIdx][curByte];\n\n if (uCode >= 0) { \n // Normal character, just use it.\n }\n else if (uCode === UNASSIGNED) { // Unknown char.\n // TODO: Callback with seq.\n //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);\n i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).\n uCode = this.defaultCharUnicode.charCodeAt(0);\n }\n else if (uCode === GB18030_CODE) {\n var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);\n var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);\n var idx = findIdx(this.gb18030.gbChars, ptr);\n uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];\n }\n else if (uCode <= NODE_START) { // Go to next trie node.\n nodeIdx = NODE_START - uCode;\n continue;\n }\n else if (uCode <= SEQ_START) { // Output a sequence of chars.\n var seq = this.decodeTableSeq[SEQ_START - uCode];\n for (var k = 0; k < seq.length - 1; k++) {\n uCode = seq[k];\n newBuf[j++] = uCode & 0xFF;\n newBuf[j++] = uCode >> 8;\n }\n uCode = seq[seq.length-1];\n }\n else\n throw new Error(\"iconv-lite internal error: invalid decoding table value \" + uCode + \" at \" + nodeIdx + \"/\" + curByte);\n\n // Write the character to buffer, handling higher planes using surrogate pair.\n if (uCode > 0xFFFF) { \n uCode -= 0x10000;\n var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);\n newBuf[j++] = uCodeLead & 0xFF;\n newBuf[j++] = uCodeLead >> 8;\n\n uCode = 0xDC00 + uCode % 0x400;\n }\n newBuf[j++] = uCode & 0xFF;\n newBuf[j++] = uCode >> 8;\n\n // Reset trie node.\n nodeIdx = 0; seqStart = i+1;\n }\n\n this.nodeIdx = nodeIdx;\n this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);\n return newBuf.slice(0, j).toString('ucs2');\n}\n\nDBCSDecoder.prototype.end = function() {\n var ret = '';\n\n // Try to parse all remaining chars.\n while (this.prevBuf.length > 0) {\n // Skip 1 character in the buffer.\n ret += this.defaultCharUnicode;\n var buf = this.prevBuf.slice(1);\n\n // Parse remaining as usual.\n this.prevBuf = Buffer.alloc(0);\n this.nodeIdx = 0;\n if (buf.length > 0)\n ret += this.write(buf);\n }\n\n this.nodeIdx = 0;\n return ret;\n}\n\n// Binary search for GB18030. Returns largest i such that table[i] <= val.\nfunction findIdx(table, val) {\n if (table[0] > val)\n return -1;\n\n var l = 0, r = table.length;\n while (l < r-1) { // always table[l] <= val < table[r]\n var mid = l + Math.floor((r-l+1)/2);\n if (table[mid] <= val)\n l = mid;\n else\n r = mid;\n }\n return l;\n}\n\n","\"use strict\";\n\n// Description of supported double byte encodings and aliases.\n// Tables are not require()-d until they are needed to speed up library load.\n// require()-s are direct to support Browserify.\n\nmodule.exports = {\n \n // == Japanese/ShiftJIS ====================================================\n // All japanese encodings are based on JIS X set of standards:\n // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.\n // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes. \n // Has several variations in 1978, 1983, 1990 and 1997.\n // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.\n // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.\n // 2 planes, first is superset of 0208, second - revised 0212.\n // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)\n\n // Byte encodings are:\n // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte\n // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.\n // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.\n // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.\n // 0x00-0x7F - lower part of 0201\n // 0x8E, 0xA1-0xDF - upper part of 0201\n // (0xA1-0xFE)x2 - 0208 plane (94x94).\n // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).\n // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.\n // Used as-is in ISO2022 family.\n // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII, \n // 0201-1976 Roman, 0208-1978, 0208-1983.\n // * ISO2022-JP-1: Adds esc seq for 0212-1990.\n // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.\n // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.\n // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.\n //\n // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.\n //\n // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html\n\n 'shiftjis': {\n type: '_dbcs',\n table: function() { return require('./tables/shiftjis.json') },\n encodeAdd: {'\\u00a5': 0x5C, '\\u203E': 0x7E},\n encodeSkipVals: [{from: 0xED40, to: 0xF940}],\n },\n 'csshiftjis': 'shiftjis',\n 'mskanji': 'shiftjis',\n 'sjis': 'shiftjis',\n 'windows31j': 'shiftjis',\n 'ms31j': 'shiftjis',\n 'xsjis': 'shiftjis',\n 'windows932': 'shiftjis',\n 'ms932': 'shiftjis',\n '932': 'shiftjis',\n 'cp932': 'shiftjis',\n\n 'eucjp': {\n type: '_dbcs',\n table: function() { return require('./tables/eucjp.json') },\n encodeAdd: {'\\u00a5': 0x5C, '\\u203E': 0x7E},\n },\n\n // TODO: KDDI extension to Shift_JIS\n // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.\n // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.\n\n\n // == Chinese/GBK ==========================================================\n // http://en.wikipedia.org/wiki/GBK\n // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder\n\n // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936\n 'gb2312': 'cp936',\n 'gb231280': 'cp936',\n 'gb23121980': 'cp936',\n 'csgb2312': 'cp936',\n 'csiso58gb231280': 'cp936',\n 'euccn': 'cp936',\n\n // Microsoft's CP936 is a subset and approximation of GBK.\n 'windows936': 'cp936',\n 'ms936': 'cp936',\n '936': 'cp936',\n 'cp936': {\n type: '_dbcs',\n table: function() { return require('./tables/cp936.json') },\n },\n\n // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.\n 'gbk': {\n type: '_dbcs',\n table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },\n },\n 'xgbk': 'gbk',\n 'isoir58': 'gbk',\n\n // GB18030 is an algorithmic extension of GBK.\n // Main source: https://www.w3.org/TR/encoding/#gbk-encoder\n // http://icu-project.org/docs/papers/gb18030.html\n // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml\n // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0\n 'gb18030': {\n type: '_dbcs',\n table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },\n gb18030: function() { return require('./tables/gb18030-ranges.json') },\n encodeSkipVals: [0x80],\n encodeAdd: {'€': 0xA2E3},\n },\n\n 'chinese': 'gb18030',\n\n\n // == Korean ===============================================================\n // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.\n 'windows949': 'cp949',\n 'ms949': 'cp949',\n '949': 'cp949',\n 'cp949': {\n type: '_dbcs',\n table: function() { return require('./tables/cp949.json') },\n },\n\n 'cseuckr': 'cp949',\n 'csksc56011987': 'cp949',\n 'euckr': 'cp949',\n 'isoir149': 'cp949',\n 'korean': 'cp949',\n 'ksc56011987': 'cp949',\n 'ksc56011989': 'cp949',\n 'ksc5601': 'cp949',\n\n\n // == Big5/Taiwan/Hong Kong ================================================\n // There are lots of tables for Big5 and cp950. Please see the following links for history:\n // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html\n // Variations, in roughly number of defined chars:\n // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT\n // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/\n // * Big5-2003 (Taiwan standard) almost superset of cp950.\n // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.\n // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard. \n // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.\n // Plus, it has 4 combining sequences.\n // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299\n // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.\n // Implementations are not consistent within browsers; sometimes labeled as just big5.\n // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.\n // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31\n // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.\n // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt\n // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt\n // \n // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder\n // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.\n\n 'windows950': 'cp950',\n 'ms950': 'cp950',\n '950': 'cp950',\n 'cp950': {\n type: '_dbcs',\n table: function() { return require('./tables/cp950.json') },\n },\n\n // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.\n 'big5': 'big5hkscs',\n 'big5hkscs': {\n type: '_dbcs',\n table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) },\n encodeSkipVals: [0xa2cc],\n },\n\n 'cnbig5': 'big5hkscs',\n 'csbig5': 'big5hkscs',\n 'xxbig5': 'big5hkscs',\n};\n","\"use strict\";\n\n// Update this array if you add/rename/remove files in this directory.\n// We support Browserify by skipping automatic module discovery and requiring modules directly.\nvar modules = [\n require(\"./internal\"),\n require(\"./utf16\"),\n require(\"./utf7\"),\n require(\"./sbcs-codec\"),\n require(\"./sbcs-data\"),\n require(\"./sbcs-data-generated\"),\n require(\"./dbcs-codec\"),\n require(\"./dbcs-data\"),\n];\n\n// Put all encoding/alias/codec definitions to single object and export it. \nfor (var i = 0; i < modules.length; i++) {\n var module = modules[i];\n for (var enc in module)\n if (Object.prototype.hasOwnProperty.call(module, enc))\n exports[enc] = module[enc];\n}\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Export Node.js internal encodings.\n\nmodule.exports = {\n // Encodings\n utf8: { type: \"_internal\", bomAware: true},\n cesu8: { type: \"_internal\", bomAware: true},\n unicode11utf8: \"utf8\",\n\n ucs2: { type: \"_internal\", bomAware: true},\n utf16le: \"ucs2\",\n\n binary: { type: \"_internal\" },\n base64: { type: \"_internal\" },\n hex: { type: \"_internal\" },\n\n // Codec.\n _internal: InternalCodec,\n};\n\n//------------------------------------------------------------------------------\n\nfunction InternalCodec(codecOptions, iconv) {\n this.enc = codecOptions.encodingName;\n this.bomAware = codecOptions.bomAware;\n\n if (this.enc === \"base64\")\n this.encoder = InternalEncoderBase64;\n else if (this.enc === \"cesu8\") {\n this.enc = \"utf8\"; // Use utf8 for decoding.\n this.encoder = InternalEncoderCesu8;\n\n // Add decoder for versions of Node not supporting CESU-8\n if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') {\n this.decoder = InternalDecoderCesu8;\n this.defaultCharUnicode = iconv.defaultCharUnicode;\n }\n }\n}\n\nInternalCodec.prototype.encoder = InternalEncoder;\nInternalCodec.prototype.decoder = InternalDecoder;\n\n//------------------------------------------------------------------------------\n\n// We use node.js internal decoder. Its signature is the same as ours.\nvar StringDecoder = require('string_decoder').StringDecoder;\n\nif (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.\n StringDecoder.prototype.end = function() {};\n\n\nfunction InternalDecoder(options, codec) {\n StringDecoder.call(this, codec.enc);\n}\n\nInternalDecoder.prototype = StringDecoder.prototype;\n\n\n//------------------------------------------------------------------------------\n// Encoder is mostly trivial\n\nfunction InternalEncoder(options, codec) {\n this.enc = codec.enc;\n}\n\nInternalEncoder.prototype.write = function(str) {\n return Buffer.from(str, this.enc);\n}\n\nInternalEncoder.prototype.end = function() {\n}\n\n\n//------------------------------------------------------------------------------\n// Except base64 encoder, which must keep its state.\n\nfunction InternalEncoderBase64(options, codec) {\n this.prevStr = '';\n}\n\nInternalEncoderBase64.prototype.write = function(str) {\n str = this.prevStr + str;\n var completeQuads = str.length - (str.length % 4);\n this.prevStr = str.slice(completeQuads);\n str = str.slice(0, completeQuads);\n\n return Buffer.from(str, \"base64\");\n}\n\nInternalEncoderBase64.prototype.end = function() {\n return Buffer.from(this.prevStr, \"base64\");\n}\n\n\n//------------------------------------------------------------------------------\n// CESU-8 encoder is also special.\n\nfunction InternalEncoderCesu8(options, codec) {\n}\n\nInternalEncoderCesu8.prototype.write = function(str) {\n var buf = Buffer.alloc(str.length * 3), bufIdx = 0;\n for (var i = 0; i < str.length; i++) {\n var charCode = str.charCodeAt(i);\n // Naive implementation, but it works because CESU-8 is especially easy\n // to convert from UTF-16 (which all JS strings are encoded in).\n if (charCode < 0x80)\n buf[bufIdx++] = charCode;\n else if (charCode < 0x800) {\n buf[bufIdx++] = 0xC0 + (charCode >>> 6);\n buf[bufIdx++] = 0x80 + (charCode & 0x3f);\n }\n else { // charCode will always be < 0x10000 in javascript.\n buf[bufIdx++] = 0xE0 + (charCode >>> 12);\n buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);\n buf[bufIdx++] = 0x80 + (charCode & 0x3f);\n }\n }\n return buf.slice(0, bufIdx);\n}\n\nInternalEncoderCesu8.prototype.end = function() {\n}\n\n//------------------------------------------------------------------------------\n// CESU-8 decoder is not implemented in Node v4.0+\n\nfunction InternalDecoderCesu8(options, codec) {\n this.acc = 0;\n this.contBytes = 0;\n this.accBytes = 0;\n this.defaultCharUnicode = codec.defaultCharUnicode;\n}\n\nInternalDecoderCesu8.prototype.write = function(buf) {\n var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, \n res = '';\n for (var i = 0; i < buf.length; i++) {\n var curByte = buf[i];\n if ((curByte & 0xC0) !== 0x80) { // Leading byte\n if (contBytes > 0) { // Previous code is invalid\n res += this.defaultCharUnicode;\n contBytes = 0;\n }\n\n if (curByte < 0x80) { // Single-byte code\n res += String.fromCharCode(curByte);\n } else if (curByte < 0xE0) { // Two-byte code\n acc = curByte & 0x1F;\n contBytes = 1; accBytes = 1;\n } else if (curByte < 0xF0) { // Three-byte code\n acc = curByte & 0x0F;\n contBytes = 2; accBytes = 1;\n } else { // Four or more are not supported for CESU-8.\n res += this.defaultCharUnicode;\n }\n } else { // Continuation byte\n if (contBytes > 0) { // We're waiting for it.\n acc = (acc << 6) | (curByte & 0x3f);\n contBytes--; accBytes++;\n if (contBytes === 0) {\n // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)\n if (accBytes === 2 && acc < 0x80 && acc > 0)\n res += this.defaultCharUnicode;\n else if (accBytes === 3 && acc < 0x800)\n res += this.defaultCharUnicode;\n else\n // Actually add character.\n res += String.fromCharCode(acc);\n }\n } else { // Unexpected continuation byte\n res += this.defaultCharUnicode;\n }\n }\n }\n this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;\n return res;\n}\n\nInternalDecoderCesu8.prototype.end = function() {\n var res = 0;\n if (this.contBytes > 0)\n res += this.defaultCharUnicode;\n return res;\n}\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that\n// correspond to encoded bytes (if 128 - then lower half is ASCII). \n\nexports._sbcs = SBCSCodec;\nfunction SBCSCodec(codecOptions, iconv) {\n if (!codecOptions)\n throw new Error(\"SBCS codec is called without the data.\")\n \n // Prepare char buffer for decoding.\n if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))\n throw new Error(\"Encoding '\"+codecOptions.type+\"' has incorrect 'chars' (must be of len 128 or 256)\");\n \n if (codecOptions.chars.length === 128) {\n var asciiString = \"\";\n for (var i = 0; i < 128; i++)\n asciiString += String.fromCharCode(i);\n codecOptions.chars = asciiString + codecOptions.chars;\n }\n\n this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2');\n \n // Encoding buffer.\n var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));\n\n for (var i = 0; i < codecOptions.chars.length; i++)\n encodeBuf[codecOptions.chars.charCodeAt(i)] = i;\n\n this.encodeBuf = encodeBuf;\n}\n\nSBCSCodec.prototype.encoder = SBCSEncoder;\nSBCSCodec.prototype.decoder = SBCSDecoder;\n\n\nfunction SBCSEncoder(options, codec) {\n this.encodeBuf = codec.encodeBuf;\n}\n\nSBCSEncoder.prototype.write = function(str) {\n var buf = Buffer.alloc(str.length);\n for (var i = 0; i < str.length; i++)\n buf[i] = this.encodeBuf[str.charCodeAt(i)];\n \n return buf;\n}\n\nSBCSEncoder.prototype.end = function() {\n}\n\n\nfunction SBCSDecoder(options, codec) {\n this.decodeBuf = codec.decodeBuf;\n}\n\nSBCSDecoder.prototype.write = function(buf) {\n // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.\n var decodeBuf = this.decodeBuf;\n var newBuf = Buffer.alloc(buf.length*2);\n var idx1 = 0, idx2 = 0;\n for (var i = 0; i < buf.length; i++) {\n idx1 = buf[i]*2; idx2 = i*2;\n newBuf[idx2] = decodeBuf[idx1];\n newBuf[idx2+1] = decodeBuf[idx1+1];\n }\n return newBuf.toString('ucs2');\n}\n\nSBCSDecoder.prototype.end = function() {\n}\n","\"use strict\";\n\n// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.\nmodule.exports = {\n \"437\": \"cp437\",\n \"737\": \"cp737\",\n \"775\": \"cp775\",\n \"850\": \"cp850\",\n \"852\": \"cp852\",\n \"855\": \"cp855\",\n \"856\": \"cp856\",\n \"857\": \"cp857\",\n \"858\": \"cp858\",\n \"860\": \"cp860\",\n \"861\": \"cp861\",\n \"862\": \"cp862\",\n \"863\": \"cp863\",\n \"864\": \"cp864\",\n \"865\": \"cp865\",\n \"866\": \"cp866\",\n \"869\": \"cp869\",\n \"874\": \"windows874\",\n \"922\": \"cp922\",\n \"1046\": \"cp1046\",\n \"1124\": \"cp1124\",\n \"1125\": \"cp1125\",\n \"1129\": \"cp1129\",\n \"1133\": \"cp1133\",\n \"1161\": \"cp1161\",\n \"1162\": \"cp1162\",\n \"1163\": \"cp1163\",\n \"1250\": \"windows1250\",\n \"1251\": \"windows1251\",\n \"1252\": \"windows1252\",\n \"1253\": \"windows1253\",\n \"1254\": \"windows1254\",\n \"1255\": \"windows1255\",\n \"1256\": \"windows1256\",\n \"1257\": \"windows1257\",\n \"1258\": \"windows1258\",\n \"28591\": \"iso88591\",\n \"28592\": \"iso88592\",\n \"28593\": \"iso88593\",\n \"28594\": \"iso88594\",\n \"28595\": \"iso88595\",\n \"28596\": \"iso88596\",\n \"28597\": \"iso88597\",\n \"28598\": \"iso88598\",\n \"28599\": \"iso88599\",\n \"28600\": \"iso885910\",\n \"28601\": \"iso885911\",\n \"28603\": \"iso885913\",\n \"28604\": \"iso885914\",\n \"28605\": \"iso885915\",\n \"28606\": \"iso885916\",\n \"windows874\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"win874\": \"windows874\",\n \"cp874\": \"windows874\",\n \"windows1250\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"win1250\": \"windows1250\",\n \"cp1250\": \"windows1250\",\n \"windows1251\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"win1251\": \"windows1251\",\n \"cp1251\": \"windows1251\",\n \"windows1252\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"win1252\": \"windows1252\",\n \"cp1252\": \"windows1252\",\n \"windows1253\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"win1253\": \"windows1253\",\n \"cp1253\": \"windows1253\",\n \"windows1254\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"win1254\": \"windows1254\",\n \"cp1254\": \"windows1254\",\n \"windows1255\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\"\n },\n \"win1255\": \"windows1255\",\n \"cp1255\": \"windows1255\",\n \"windows1256\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے\"\n },\n \"win1256\": \"windows1256\",\n \"cp1256\": \"windows1256\",\n \"windows1257\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\"\n },\n \"win1257\": \"windows1257\",\n \"cp1257\": \"windows1257\",\n \"windows1258\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"win1258\": \"windows1258\",\n \"cp1258\": \"windows1258\",\n \"iso88591\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28591\": \"iso88591\",\n \"iso88592\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"cp28592\": \"iso88592\",\n \"iso88593\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙\"\n },\n \"cp28593\": \"iso88593\",\n \"iso88594\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙\"\n },\n \"cp28594\": \"iso88594\",\n \"iso88595\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ\"\n },\n \"cp28595\": \"iso88595\",\n \"iso88596\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������\"\n },\n \"cp28596\": \"iso88596\",\n \"iso88597\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"cp28597\": \"iso88597\",\n \"iso88598\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\"\n },\n \"cp28598\": \"iso88598\",\n \"iso88599\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"cp28599\": \"iso88599\",\n \"iso885910\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ\"\n },\n \"cp28600\": \"iso885910\",\n \"iso885911\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"cp28601\": \"iso885911\",\n \"iso885913\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’\"\n },\n \"cp28603\": \"iso885913\",\n \"iso885914\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ\"\n },\n \"cp28604\": \"iso885914\",\n \"iso885915\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28605\": \"iso885915\",\n \"iso885916\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ\"\n },\n \"cp28606\": \"iso885916\",\n \"cp437\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm437\": \"cp437\",\n \"csibm437\": \"cp437\",\n \"cp737\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \"\n },\n \"ibm737\": \"cp737\",\n \"csibm737\": \"cp737\",\n \"cp775\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£ØפĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ \"\n },\n \"ibm775\": \"cp775\",\n \"csibm775\": \"cp775\",\n \"cp850\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm850\": \"cp850\",\n \"csibm850\": \"cp850\",\n \"cp852\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ \"\n },\n \"ibm852\": \"cp852\",\n \"csibm852\": \"cp852\",\n \"cp855\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ \"\n },\n \"ibm855\": \"cp855\",\n \"csibm855\": \"cp855\",\n \"cp856\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm856\": \"cp856\",\n \"csibm856\": \"cp856\",\n \"cp857\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm857\": \"cp857\",\n \"csibm857\": \"cp857\",\n \"cp858\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm858\": \"cp858\",\n \"csibm858\": \"cp858\",\n \"cp860\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm860\": \"cp860\",\n \"csibm860\": \"cp860\",\n \"cp861\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm861\": \"cp861\",\n \"csibm861\": \"cp861\",\n \"cp862\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm862\": \"cp862\",\n \"csibm862\": \"cp862\",\n \"cp863\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm863\": \"cp863\",\n \"csibm863\": \"cp863\",\n \"cp864\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�\"\n },\n \"ibm864\": \"cp864\",\n \"csibm864\": \"cp864\",\n \"cp865\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm865\": \"cp865\",\n \"csibm865\": \"cp865\",\n \"cp866\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \"\n },\n \"ibm866\": \"cp866\",\n \"csibm866\": \"cp866\",\n \"cp869\": {\n \"type\": \"_sbcs\",\n \"chars\": \"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ \"\n },\n \"ibm869\": \"cp869\",\n \"csibm869\": \"cp869\",\n \"cp922\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ\"\n },\n \"ibm922\": \"cp922\",\n \"csibm922\": \"cp922\",\n \"cp1046\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�\"\n },\n \"ibm1046\": \"cp1046\",\n \"csibm1046\": \"cp1046\",\n \"cp1124\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ\"\n },\n \"ibm1124\": \"cp1124\",\n \"csibm1124\": \"cp1124\",\n \"cp1125\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ \"\n },\n \"ibm1125\": \"cp1125\",\n \"csibm1125\": \"cp1125\",\n \"cp1129\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1129\": \"cp1129\",\n \"csibm1129\": \"cp1129\",\n \"cp1133\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�\"\n },\n \"ibm1133\": \"cp1133\",\n \"csibm1133\": \"cp1133\",\n \"cp1161\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ \"\n },\n \"ibm1161\": \"cp1161\",\n \"csibm1161\": \"cp1161\",\n \"cp1162\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"ibm1162\": \"cp1162\",\n \"csibm1162\": \"cp1162\",\n \"cp1163\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1163\": \"cp1163\",\n \"csibm1163\": \"cp1163\",\n \"maccroatian\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ\"\n },\n \"maccyrillic\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"macgreek\": {\n \"type\": \"_sbcs\",\n \"chars\": \"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\"\n },\n \"maciceland\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macroman\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macromania\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macthai\": {\n \"type\": \"_sbcs\",\n \"chars\": \"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����\"\n },\n \"macturkish\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macukraine\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"koi8r\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8u\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8ru\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8t\": {\n \"type\": \"_sbcs\",\n \"chars\": \"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"armscii8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�\"\n },\n \"rk1048\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"tcvn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000ÚỤ\\u0003ỪỬỮ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010ỨỰỲỶỸÝỴ\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ\"\n },\n \"georgianacademy\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"georgianps\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"pt154\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"viscii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001Ẳ\\u0003\\u0004ẴẪ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013Ỷ\\u0015\\u0016\\u0017\\u0018Ỹ\\u001a\\u001b\\u001c\\u001dỴ\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ\"\n },\n \"iso646cn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"iso646jp\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"hproman8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�\"\n },\n \"macintosh\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"ascii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"tis620\": {\n \"type\": \"_sbcs\",\n \"chars\": \"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n }\n}","\"use strict\";\n\n// Manually added data to be used by sbcs codec in addition to generated one.\n\nmodule.exports = {\n // Not supported by iconv, not sure why.\n \"10029\": \"maccenteuro\",\n \"maccenteuro\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\"\n },\n\n \"808\": \"cp808\",\n \"ibm808\": \"cp808\",\n \"cp808\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ \"\n },\n\n \"mik\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n\n // Aliases of generated encodings.\n \"ascii8bit\": \"ascii\",\n \"usascii\": \"ascii\",\n \"ansix34\": \"ascii\",\n \"ansix341968\": \"ascii\",\n \"ansix341986\": \"ascii\",\n \"csascii\": \"ascii\",\n \"cp367\": \"ascii\",\n \"ibm367\": \"ascii\",\n \"isoir6\": \"ascii\",\n \"iso646us\": \"ascii\",\n \"iso646irv\": \"ascii\",\n \"us\": \"ascii\",\n\n \"latin1\": \"iso88591\",\n \"latin2\": \"iso88592\",\n \"latin3\": \"iso88593\",\n \"latin4\": \"iso88594\",\n \"latin5\": \"iso88599\",\n \"latin6\": \"iso885910\",\n \"latin7\": \"iso885913\",\n \"latin8\": \"iso885914\",\n \"latin9\": \"iso885915\",\n \"latin10\": \"iso885916\",\n\n \"csisolatin1\": \"iso88591\",\n \"csisolatin2\": \"iso88592\",\n \"csisolatin3\": \"iso88593\",\n \"csisolatin4\": \"iso88594\",\n \"csisolatincyrillic\": \"iso88595\",\n \"csisolatinarabic\": \"iso88596\",\n \"csisolatingreek\" : \"iso88597\",\n \"csisolatinhebrew\": \"iso88598\",\n \"csisolatin5\": \"iso88599\",\n \"csisolatin6\": \"iso885910\",\n\n \"l1\": \"iso88591\",\n \"l2\": \"iso88592\",\n \"l3\": \"iso88593\",\n \"l4\": \"iso88594\",\n \"l5\": \"iso88599\",\n \"l6\": \"iso885910\",\n \"l7\": \"iso885913\",\n \"l8\": \"iso885914\",\n \"l9\": \"iso885915\",\n \"l10\": \"iso885916\",\n\n \"isoir14\": \"iso646jp\",\n \"isoir57\": \"iso646cn\",\n \"isoir100\": \"iso88591\",\n \"isoir101\": \"iso88592\",\n \"isoir109\": \"iso88593\",\n \"isoir110\": \"iso88594\",\n \"isoir144\": \"iso88595\",\n \"isoir127\": \"iso88596\",\n \"isoir126\": \"iso88597\",\n \"isoir138\": \"iso88598\",\n \"isoir148\": \"iso88599\",\n \"isoir157\": \"iso885910\",\n \"isoir166\": \"tis620\",\n \"isoir179\": \"iso885913\",\n \"isoir199\": \"iso885914\",\n \"isoir203\": \"iso885915\",\n \"isoir226\": \"iso885916\",\n\n \"cp819\": \"iso88591\",\n \"ibm819\": \"iso88591\",\n\n \"cyrillic\": \"iso88595\",\n\n \"arabic\": \"iso88596\",\n \"arabic8\": \"iso88596\",\n \"ecma114\": \"iso88596\",\n \"asmo708\": \"iso88596\",\n\n \"greek\" : \"iso88597\",\n \"greek8\" : \"iso88597\",\n \"ecma118\" : \"iso88597\",\n \"elot928\" : \"iso88597\",\n\n \"hebrew\": \"iso88598\",\n \"hebrew8\": \"iso88598\",\n\n \"turkish\": \"iso88599\",\n \"turkish8\": \"iso88599\",\n\n \"thai\": \"iso885911\",\n \"thai8\": \"iso885911\",\n\n \"celtic\": \"iso885914\",\n \"celtic8\": \"iso885914\",\n \"isoceltic\": \"iso885914\",\n\n \"tis6200\": \"tis620\",\n \"tis62025291\": \"tis620\",\n \"tis62025330\": \"tis620\",\n\n \"10000\": \"macroman\",\n \"10006\": \"macgreek\",\n \"10007\": \"maccyrillic\",\n \"10079\": \"maciceland\",\n \"10081\": \"macturkish\",\n\n \"cspc8codepage437\": \"cp437\",\n \"cspc775baltic\": \"cp775\",\n \"cspc850multilingual\": \"cp850\",\n \"cspcp852\": \"cp852\",\n \"cspc862latinhebrew\": \"cp862\",\n \"cpgr\": \"cp869\",\n\n \"msee\": \"cp1250\",\n \"mscyrl\": \"cp1251\",\n \"msansi\": \"cp1252\",\n \"msgreek\": \"cp1253\",\n \"msturk\": \"cp1254\",\n \"mshebr\": \"cp1255\",\n \"msarab\": \"cp1256\",\n \"winbaltrim\": \"cp1257\",\n\n \"cp20866\": \"koi8r\",\n \"20866\": \"koi8r\",\n \"ibm878\": \"koi8r\",\n \"cskoi8r\": \"koi8r\",\n\n \"cp21866\": \"koi8u\",\n \"21866\": \"koi8u\",\n \"ibm1168\": \"koi8u\",\n\n \"strk10482002\": \"rk1048\",\n\n \"tcvn5712\": \"tcvn\",\n \"tcvn57121\": \"tcvn\",\n\n \"gb198880\": \"iso646cn\",\n \"cn\": \"iso646cn\",\n\n \"csiso14jisc6220ro\": \"iso646jp\",\n \"jisc62201969ro\": \"iso646jp\",\n \"jp\": \"iso646jp\",\n\n \"cshproman8\": \"hproman8\",\n \"r8\": \"hproman8\",\n \"roman8\": \"hproman8\",\n \"xroman8\": \"hproman8\",\n \"ibm1051\": \"hproman8\",\n\n \"mac\": \"macintosh\",\n \"csmacintosh\": \"macintosh\",\n};\n\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js\n\n// == UTF16-BE codec. ==========================================================\n\nexports.utf16be = Utf16BECodec;\nfunction Utf16BECodec() {\n}\n\nUtf16BECodec.prototype.encoder = Utf16BEEncoder;\nUtf16BECodec.prototype.decoder = Utf16BEDecoder;\nUtf16BECodec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nfunction Utf16BEEncoder() {\n}\n\nUtf16BEEncoder.prototype.write = function(str) {\n var buf = Buffer.from(str, 'ucs2');\n for (var i = 0; i < buf.length; i += 2) {\n var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;\n }\n return buf;\n}\n\nUtf16BEEncoder.prototype.end = function() {\n}\n\n\n// -- Decoding\n\nfunction Utf16BEDecoder() {\n this.overflowByte = -1;\n}\n\nUtf16BEDecoder.prototype.write = function(buf) {\n if (buf.length == 0)\n return '';\n\n var buf2 = Buffer.alloc(buf.length + 1),\n i = 0, j = 0;\n\n if (this.overflowByte !== -1) {\n buf2[0] = buf[0];\n buf2[1] = this.overflowByte;\n i = 1; j = 2;\n }\n\n for (; i < buf.length-1; i += 2, j+= 2) {\n buf2[j] = buf[i+1];\n buf2[j+1] = buf[i];\n }\n\n this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;\n\n return buf2.slice(0, j).toString('ucs2');\n}\n\nUtf16BEDecoder.prototype.end = function() {\n}\n\n\n// == UTF-16 codec =============================================================\n// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.\n// Defaults to UTF-16LE, as it's prevalent and default in Node.\n// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le\n// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});\n\n// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).\n\nexports.utf16 = Utf16Codec;\nfunction Utf16Codec(codecOptions, iconv) {\n this.iconv = iconv;\n}\n\nUtf16Codec.prototype.encoder = Utf16Encoder;\nUtf16Codec.prototype.decoder = Utf16Decoder;\n\n\n// -- Encoding (pass-through)\n\nfunction Utf16Encoder(options, codec) {\n options = options || {};\n if (options.addBOM === undefined)\n options.addBOM = true;\n this.encoder = codec.iconv.getEncoder('utf-16le', options);\n}\n\nUtf16Encoder.prototype.write = function(str) {\n return this.encoder.write(str);\n}\n\nUtf16Encoder.prototype.end = function() {\n return this.encoder.end();\n}\n\n\n// -- Decoding\n\nfunction Utf16Decoder(options, codec) {\n this.decoder = null;\n this.initialBytes = [];\n this.initialBytesLen = 0;\n\n this.options = options || {};\n this.iconv = codec.iconv;\n}\n\nUtf16Decoder.prototype.write = function(buf) {\n if (!this.decoder) {\n // Codec is not chosen yet. Accumulate initial bytes.\n this.initialBytes.push(buf);\n this.initialBytesLen += buf.length;\n \n if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)\n return '';\n\n // We have enough bytes -> detect endianness.\n var buf = Buffer.concat(this.initialBytes),\n encoding = detectEncoding(buf, this.options.defaultEncoding);\n this.decoder = this.iconv.getDecoder(encoding, this.options);\n this.initialBytes.length = this.initialBytesLen = 0;\n }\n\n return this.decoder.write(buf);\n}\n\nUtf16Decoder.prototype.end = function() {\n if (!this.decoder) {\n var buf = Buffer.concat(this.initialBytes),\n encoding = detectEncoding(buf, this.options.defaultEncoding);\n this.decoder = this.iconv.getDecoder(encoding, this.options);\n\n var res = this.decoder.write(buf),\n trail = this.decoder.end();\n\n return trail ? (res + trail) : res;\n }\n return this.decoder.end();\n}\n\nfunction detectEncoding(buf, defaultEncoding) {\n var enc = defaultEncoding || 'utf-16le';\n\n if (buf.length >= 2) {\n // Check BOM.\n if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM\n enc = 'utf-16be';\n else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM\n enc = 'utf-16le';\n else {\n // No BOM found. Try to deduce encoding from initial content.\n // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.\n // So, we count ASCII as if it was LE or BE, and decide from that.\n var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions\n _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.\n\n for (var i = 0; i < _len; i += 2) {\n if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;\n if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;\n }\n\n if (asciiCharsBE > asciiCharsLE)\n enc = 'utf-16be';\n else if (asciiCharsBE < asciiCharsLE)\n enc = 'utf-16le';\n }\n }\n\n return enc;\n}\n\n\n","\"use strict\";\nvar Buffer = require(\"safer-buffer\").Buffer;\n\n// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152\n// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3\n\nexports.utf7 = Utf7Codec;\nexports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7\nfunction Utf7Codec(codecOptions, iconv) {\n this.iconv = iconv;\n};\n\nUtf7Codec.prototype.encoder = Utf7Encoder;\nUtf7Codec.prototype.decoder = Utf7Decoder;\nUtf7Codec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nvar nonDirectChars = /[^A-Za-z0-9'\\(\\),-\\.\\/:\\? \\n\\r\\t]+/g;\n\nfunction Utf7Encoder(options, codec) {\n this.iconv = codec.iconv;\n}\n\nUtf7Encoder.prototype.write = function(str) {\n // Naive implementation.\n // Non-direct chars are encoded as \"+-\"; single \"+\" char is encoded as \"+-\".\n return Buffer.from(str.replace(nonDirectChars, function(chunk) {\n return \"+\" + (chunk === '+' ? '' : \n this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, '')) \n + \"-\";\n }.bind(this)));\n}\n\nUtf7Encoder.prototype.end = function() {\n}\n\n\n// -- Decoding\n\nfunction Utf7Decoder(options, codec) {\n this.iconv = codec.iconv;\n this.inBase64 = false;\n this.base64Accum = '';\n}\n\nvar base64Regex = /[A-Za-z0-9\\/+]/;\nvar base64Chars = [];\nfor (var i = 0; i < 256; i++)\n base64Chars[i] = base64Regex.test(String.fromCharCode(i));\n\nvar plusChar = '+'.charCodeAt(0), \n minusChar = '-'.charCodeAt(0),\n andChar = '&'.charCodeAt(0);\n\nUtf7Decoder.prototype.write = function(buf) {\n var res = \"\", lastI = 0,\n inBase64 = this.inBase64,\n base64Accum = this.base64Accum;\n\n // The decoder is more involved as we must handle chunks in stream.\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '+'\n if (buf[i] == plusChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\"); // Write direct chars.\n lastI = i+1;\n inBase64 = true;\n }\n } else { // We decode base64.\n if (!base64Chars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) {// \"+-\" -> \"+\"\n res += \"+\";\n } else {\n var b64str = base64Accum + buf.slice(lastI, i).toString();\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n if (buf[i] != minusChar) // Minus is absorbed after base64.\n i--;\n\n lastI = i+1;\n inBase64 = false;\n base64Accum = '';\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\"); // Write direct chars.\n } else {\n var b64str = base64Accum + buf.slice(lastI).toString();\n\n var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded);\n\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n this.inBase64 = inBase64;\n this.base64Accum = base64Accum;\n\n return res;\n}\n\nUtf7Decoder.prototype.end = function() {\n var res = \"\";\n if (this.inBase64 && this.base64Accum.length > 0)\n res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), \"utf16-be\");\n\n this.inBase64 = false;\n this.base64Accum = '';\n return res;\n}\n\n\n// UTF-7-IMAP codec.\n// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)\n// Differences:\n// * Base64 part is started by \"&\" instead of \"+\"\n// * Direct characters are 0x20-0x7E, except \"&\" (0x26)\n// * In Base64, \",\" is used instead of \"/\"\n// * Base64 must not be used to represent direct characters.\n// * No implicit shift back from Base64 (should always end with '-')\n// * String must end in non-shifted position.\n// * \"-&\" while in base64 is not allowed.\n\n\nexports.utf7imap = Utf7IMAPCodec;\nfunction Utf7IMAPCodec(codecOptions, iconv) {\n this.iconv = iconv;\n};\n\nUtf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;\nUtf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;\nUtf7IMAPCodec.prototype.bomAware = true;\n\n\n// -- Encoding\n\nfunction Utf7IMAPEncoder(options, codec) {\n this.iconv = codec.iconv;\n this.inBase64 = false;\n this.base64Accum = Buffer.alloc(6);\n this.base64AccumIdx = 0;\n}\n\nUtf7IMAPEncoder.prototype.write = function(str) {\n var inBase64 = this.inBase64,\n base64Accum = this.base64Accum,\n base64AccumIdx = this.base64AccumIdx,\n buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;\n\n for (var i = 0; i < str.length; i++) {\n var uChar = str.charCodeAt(i);\n if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.\n if (inBase64) {\n if (base64AccumIdx > 0) {\n bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\\//g, ',').replace(/=+$/, ''), bufIdx);\n base64AccumIdx = 0;\n }\n\n buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.\n inBase64 = false;\n }\n\n if (!inBase64) {\n buf[bufIdx++] = uChar; // Write direct character\n\n if (uChar === andChar) // Ampersand -> '&-'\n buf[bufIdx++] = minusChar;\n }\n\n } else { // Non-direct character\n if (!inBase64) {\n buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.\n inBase64 = true;\n }\n if (inBase64) {\n base64Accum[base64AccumIdx++] = uChar >> 8;\n base64Accum[base64AccumIdx++] = uChar & 0xFF;\n\n if (base64AccumIdx == base64Accum.length) {\n bufIdx += buf.write(base64Accum.toString('base64').replace(/\\//g, ','), bufIdx);\n base64AccumIdx = 0;\n }\n }\n }\n }\n\n this.inBase64 = inBase64;\n this.base64AccumIdx = base64AccumIdx;\n\n return buf.slice(0, bufIdx);\n}\n\nUtf7IMAPEncoder.prototype.end = function() {\n var buf = Buffer.alloc(10), bufIdx = 0;\n if (this.inBase64) {\n if (this.base64AccumIdx > 0) {\n bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\\//g, ',').replace(/=+$/, ''), bufIdx);\n this.base64AccumIdx = 0;\n }\n\n buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.\n this.inBase64 = false;\n }\n\n return buf.slice(0, bufIdx);\n}\n\n\n// -- Decoding\n\nfunction Utf7IMAPDecoder(options, codec) {\n this.iconv = codec.iconv;\n this.inBase64 = false;\n this.base64Accum = '';\n}\n\nvar base64IMAPChars = base64Chars.slice();\nbase64IMAPChars[','.charCodeAt(0)] = true;\n\nUtf7IMAPDecoder.prototype.write = function(buf) {\n var res = \"\", lastI = 0,\n inBase64 = this.inBase64,\n base64Accum = this.base64Accum;\n\n // The decoder is more involved as we must handle chunks in stream.\n // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '&'\n if (buf[i] == andChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\"); // Write direct chars.\n lastI = i+1;\n inBase64 = true;\n }\n } else { // We decode base64.\n if (!base64IMAPChars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) { // \"&-\" -> \"&\"\n res += \"&\";\n } else {\n var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n if (buf[i] != minusChar) // Minus may be absorbed after base64.\n i--;\n\n lastI = i+1;\n inBase64 = false;\n base64Accum = '';\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\"); // Write direct chars.\n } else {\n var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');\n\n var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded);\n\n res += this.iconv.decode(Buffer.from(b64str, 'base64'), \"utf16-be\");\n }\n\n this.inBase64 = inBase64;\n this.base64Accum = base64Accum;\n\n return res;\n}\n\nUtf7IMAPDecoder.prototype.end = function() {\n var res = \"\";\n if (this.inBase64 && this.base64Accum.length > 0)\n res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), \"utf16-be\");\n\n this.inBase64 = false;\n this.base64Accum = '';\n return res;\n}\n\n\n","\"use strict\";\n\nvar BOMChar = '\\uFEFF';\n\nexports.PrependBOM = PrependBOMWrapper\nfunction PrependBOMWrapper(encoder, options) {\n this.encoder = encoder;\n this.addBOM = true;\n}\n\nPrependBOMWrapper.prototype.write = function(str) {\n if (this.addBOM) {\n str = BOMChar + str;\n this.addBOM = false;\n }\n\n return this.encoder.write(str);\n}\n\nPrependBOMWrapper.prototype.end = function() {\n return this.encoder.end();\n}\n\n\n//------------------------------------------------------------------------------\n\nexports.StripBOM = StripBOMWrapper;\nfunction StripBOMWrapper(decoder, options) {\n this.decoder = decoder;\n this.pass = false;\n this.options = options || {};\n}\n\nStripBOMWrapper.prototype.write = function(buf) {\n var res = this.decoder.write(buf);\n if (this.pass || !res)\n return res;\n\n if (res[0] === BOMChar) {\n res = res.slice(1);\n if (typeof this.options.stripBOM === 'function')\n this.options.stripBOM();\n }\n\n this.pass = true;\n return res;\n}\n\nStripBOMWrapper.prototype.end = function() {\n return this.decoder.end();\n}\n\n","\"use strict\";\n\n// Some environments don't have global Buffer (e.g. React Native).\n// Solution would be installing npm modules \"buffer\" and \"stream\" explicitly.\nvar Buffer = require(\"safer-buffer\").Buffer;\n\nvar bomHandling = require(\"./bom-handling\"),\n iconv = module.exports;\n\n// All codecs and aliases are kept here, keyed by encoding name/alias.\n// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.\niconv.encodings = null;\n\n// Characters emitted in case of error.\niconv.defaultCharUnicode = '�';\niconv.defaultCharSingleByte = '?';\n\n// Public API.\niconv.encode = function encode(str, encoding, options) {\n str = \"\" + (str || \"\"); // Ensure string.\n\n var encoder = iconv.getEncoder(encoding, options);\n\n var res = encoder.write(str);\n var trail = encoder.end();\n \n return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;\n}\n\niconv.decode = function decode(buf, encoding, options) {\n if (typeof buf === 'string') {\n if (!iconv.skipDecodeWarning) {\n console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');\n iconv.skipDecodeWarning = true;\n }\n\n buf = Buffer.from(\"\" + (buf || \"\"), \"binary\"); // Ensure buffer.\n }\n\n var decoder = iconv.getDecoder(encoding, options);\n\n var res = decoder.write(buf);\n var trail = decoder.end();\n\n return trail ? (res + trail) : res;\n}\n\niconv.encodingExists = function encodingExists(enc) {\n try {\n iconv.getCodec(enc);\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// Legacy aliases to convert functions\niconv.toEncoding = iconv.encode;\niconv.fromEncoding = iconv.decode;\n\n// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.\niconv._codecDataCache = {};\niconv.getCodec = function getCodec(encoding) {\n if (!iconv.encodings)\n iconv.encodings = require(\"../encodings\"); // Lazy load all encoding definitions.\n \n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n var enc = iconv._canonicalizeEncoding(encoding);\n\n // Traverse iconv.encodings to find actual codec.\n var codecOptions = {};\n while (true) {\n var codec = iconv._codecDataCache[enc];\n if (codec)\n return codec;\n\n var codecDef = iconv.encodings[enc];\n\n switch (typeof codecDef) {\n case \"string\": // Direct alias to other encoding.\n enc = codecDef;\n break;\n\n case \"object\": // Alias with options. Can be layered.\n for (var key in codecDef)\n codecOptions[key] = codecDef[key];\n\n if (!codecOptions.encodingName)\n codecOptions.encodingName = enc;\n \n enc = codecDef.type;\n break;\n\n case \"function\": // Codec itself.\n if (!codecOptions.encodingName)\n codecOptions.encodingName = enc;\n\n // The codec function must load all tables and return object with .encoder and .decoder methods.\n // It'll be called only once (for each different options object).\n codec = new codecDef(codecOptions, iconv);\n\n iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.\n return codec;\n\n default:\n throw new Error(\"Encoding not recognized: '\" + encoding + \"' (searched as: '\"+enc+\"')\");\n }\n }\n}\n\niconv._canonicalizeEncoding = function(encoding) {\n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n return (''+encoding).toLowerCase().replace(/:\\d{4}$|[^0-9a-z]/g, \"\");\n}\n\niconv.getEncoder = function getEncoder(encoding, options) {\n var codec = iconv.getCodec(encoding),\n encoder = new codec.encoder(options, codec);\n\n if (codec.bomAware && options && options.addBOM)\n encoder = new bomHandling.PrependBOM(encoder, options);\n\n return encoder;\n}\n\niconv.getDecoder = function getDecoder(encoding, options) {\n var codec = iconv.getCodec(encoding),\n decoder = new codec.decoder(options, codec);\n\n if (codec.bomAware && !(options && options.stripBOM === false))\n decoder = new bomHandling.StripBOM(decoder, options);\n\n return decoder;\n}\n\n\n// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.\nvar nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;\nif (nodeVer) {\n\n // Load streaming support in Node v0.10+\n var nodeVerArr = nodeVer.split(\".\").map(Number);\n if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {\n require(\"./streams\")(iconv);\n }\n\n // Load Node primitive extensions.\n require(\"./extend-node\")(iconv);\n}\n\nif (\"Ā\" != \"\\u0100\") {\n console.error(\"iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.\");\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (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 };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasSymbols = require('has-symbols')();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","'use strict';\n\nvar forEach = require('foreach');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasSymbols = require('has-symbols')();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\n\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new global[typedArray]();\n\t\tif (!(Symbol.toStringTag in arr)) {\n\t\t\tthrow new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n\t\t}\n\t\tvar proto = getPrototypeOf(arr);\n\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\tif (!descriptor) {\n\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t}\n\t\ttoStrTags[typedArray] = descriptor.get;\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\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;","/**\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","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n}\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var Parser = require('./parser');\n\nmodule.exports = function(queries, options) {\n var result = {};\n\n Object.keys(queries).forEach(function(query) {\n if (Parser.parse(query).match(options)) {\n Object.assign(result, queries[query]);\n }\n });\n\n return result;\n};\n","function And(left, right) {\n this.left = left;\n this.right = right;\n\n this.match = function(options) {\n return left.match(options) && right.match(options);\n };\n}\n\nfunction Or(left, right) {\n this.left = left;\n this.right = right;\n\n this.match = function(options) {\n return left.match(options) || right.match(options);\n };\n}\n\nmodule.exports = function Operator(type, left, right) {\n switch (type) {\n case 'and':\n return new And(left, right);\n case ',':\n return new Or(left, right);\n default:\n throw new Error(value);\n }\n};\n","var Query = require('./queries');\nvar Operator = require('./operators');\n\nvar NUMBERS = /[0-9]/;\nvar LETTERS = /[a-z|\\-]/i;\nvar WHITESPACE = /\\s/;\nvar COLON = /:/;\nvar COMMA = /,/;\nvar AND = /and$/;\nvar AT = /@/;\n\nfunction tokenizer(input) {\n var current = 0;\n var tokens = [];\n\n while (current < input.length) {\n var char = input[current];\n\n if (AT.test(char)) {\n char = input[++current];\n while (LETTERS.test(char) && char !== undefined) {\n char = input[++current];\n }\n }\n\n if (WHITESPACE.test(char) || char === ')' || char === '(') {\n current++;\n continue;\n }\n\n if (COLON.test(char) || COMMA.test(char)) {\n current++;\n tokens.push({ type: 'operator', value: char });\n continue;\n }\n\n if (NUMBERS.test(char)) {\n var value = '';\n while (NUMBERS.test(char)) {\n value += char;\n char = input[++current];\n }\n\n tokens.push({ type: 'number', value: value });\n continue;\n }\n\n if (LETTERS.test(char)) {\n var value = '';\n while (LETTERS.test(char) && char !== undefined) {\n value += char;\n char = input[++current];\n }\n if (AND.test(value)) {\n tokens.push({ type: 'operator', value: value });\n } else {\n tokens.push({ type: 'literal', value: value });\n }\n\n continue;\n }\n\n throw new TypeError(\n 'Tokenizer: I dont know what this character is: ' + char\n );\n }\n\n return tokens;\n}\n\nfunction parser(tokens) {\n var output = [];\n var stack = [];\n\n while (tokens.length > 0) {\n var token = tokens.shift();\n\n if (token.type === 'number' || token.type === 'literal') {\n output.push(token);\n continue;\n }\n\n if (token.type === 'operator') {\n if (COLON.test(token.value)) {\n token = { type: 'query', key: output.pop(), value: tokens.shift() };\n output.push(token);\n continue;\n }\n\n while (stack.length > 0) {\n output.unshift(stack.pop());\n }\n stack.push(token);\n }\n }\n\n while (stack.length > 0) {\n output.unshift(stack.pop());\n }\n\n function walk() {\n var head = output.shift();\n\n if (head.type === 'number') {\n return parseInt(head.value);\n }\n\n if (head.type === 'literal') {\n return head.value;\n }\n\n if (head.type === 'operator') {\n var l = walk();\n var r = walk();\n\n return Operator(head.value, l, r);\n }\n\n if (head.type === 'query') {\n var l = head.key.value;\n var r = head.value.value;\n\n return Query(l, r);\n }\n }\n\n return walk();\n}\n\nmodule.exports = {\n parse: function(query) {\n var tokens = tokenizer(query);\n var ast = parser(tokens);\n return ast;\n }\n};\n","function MaxHeight(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value >= options.height;\n };\n}\n\nfunction MinHeight(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value < options.height;\n };\n}\n\nfunction MaxWidth(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value >= options.width;\n };\n}\n\nfunction MinWidth(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value < options.width;\n };\n}\n\nfunction Orientation(value) {\n this.value = value;\n\n this.match = function(options) {\n return this.value === options.orientation;\n };\n}\n\nmodule.exports = function Query(type, value) {\n switch (type) {\n case 'max-height':\n return new MaxHeight(value);\n case 'min-height':\n return new MinHeight(value);\n case 'max-width':\n return new MaxWidth(value);\n case 'min-width':\n return new MinWidth(value);\n case 'orientation':\n return new Orientation(value);\n default:\n throw new Error(value);\n }\n};\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict'\r\n\r\nmodule.exports = normalize\r\n\r\nvar arcToCurve = require('svg-arc-to-cubic-bezier')\r\n\r\nfunction normalize(path){\r\n // init state\r\n var prev\r\n var result = []\r\n var bezierX = 0\r\n var bezierY = 0\r\n var startX = 0\r\n var startY = 0\r\n var quadX = null\r\n var quadY = null\r\n var x = 0\r\n var y = 0\r\n\r\n for (var i = 0, len = path.length; i < len; i++) {\r\n var seg = path[i]\r\n var command = seg[0]\r\n\r\n switch (command) {\r\n case 'M':\r\n startX = seg[1]\r\n startY = seg[2]\r\n break\r\n case 'A':\r\n var curves = arcToCurve({\r\n px: x,\r\n py: y,\r\n cx: seg[6],\r\n cy: seg[7],\r\n rx: seg[1],\r\n ry: seg[2],\r\n xAxisRotation: seg[3],\r\n largeArcFlag: seg[4],\r\n sweepFlag: seg[5]\r\n })\r\n\r\n // null-curves\r\n if (!curves.length) continue\r\n\r\n for (var j = 0, c; j < curves.length; j++) {\r\n c = curves[j]\r\n seg = ['C', c.x1, c.y1, c.x2, c.y2, c.x, c.y]\r\n if (j < curves.length - 1) result.push(seg)\r\n }\r\n\r\n break\r\n case 'S':\r\n // default control point\r\n var cx = x\r\n var cy = y\r\n if (prev == 'C' || prev == 'S') {\r\n cx += cx - bezierX // reflect the previous command's control\r\n cy += cy - bezierY // point relative to the current point\r\n }\r\n seg = ['C', cx, cy, seg[1], seg[2], seg[3], seg[4]]\r\n break\r\n case 'T':\r\n if (prev == 'Q' || prev == 'T') {\r\n quadX = x * 2 - quadX // as with 'S' reflect previous control point\r\n quadY = y * 2 - quadY\r\n } else {\r\n quadX = x\r\n quadY = y\r\n }\r\n seg = quadratic(x, y, quadX, quadY, seg[1], seg[2])\r\n break\r\n case 'Q':\r\n quadX = seg[1]\r\n quadY = seg[2]\r\n seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4])\r\n break\r\n case 'L':\r\n seg = line(x, y, seg[1], seg[2])\r\n break\r\n case 'H':\r\n seg = line(x, y, seg[1], y)\r\n break\r\n case 'V':\r\n seg = line(x, y, x, seg[1])\r\n break\r\n case 'Z':\r\n seg = line(x, y, startX, startY)\r\n break\r\n }\r\n\r\n // update state\r\n prev = command\r\n x = seg[seg.length - 2]\r\n y = seg[seg.length - 1]\r\n if (seg.length > 4) {\r\n bezierX = seg[seg.length - 4]\r\n bezierY = seg[seg.length - 3]\r\n } else {\r\n bezierX = x\r\n bezierY = y\r\n }\r\n result.push(seg)\r\n }\r\n\r\n return result\r\n}\r\n\r\nfunction line(x1, y1, x2, y2){\r\n return ['C', x1, y1, x2, y2, x2, y2]\r\n}\r\n\r\nfunction quadratic(x1, y1, cx, cy, x2, y2){\r\n return [\r\n 'C',\r\n x1/3 + (2/3) * cx,\r\n y1/3 + (2/3) * cy,\r\n x2/3 + (2/3) * cx,\r\n y2/3 + (2/3) * cy,\r\n x2,\r\n y2\r\n ]\r\n}\r\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\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","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\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 adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\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// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\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// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\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// 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');\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\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 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\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\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","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","\nmodule.exports = parse\n\n/**\n * expected argument lengths\n * @type {Object}\n */\n\nvar length = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0}\n\n/**\n * segment pattern\n * @type {RegExp}\n */\n\nvar segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig\n\n/**\n * parse an svg path data string. Generates an Array\n * of commands where each command is an Array of the\n * form `[command, arg1, arg2, ...]`\n *\n * @param {String} path\n * @return {Array}\n */\n\nfunction parse(path) {\n\tvar data = []\n\tpath.replace(segment, function(_, command, args){\n\t\tvar type = command.toLowerCase()\n\t\targs = parseValues(args)\n\n\t\t// overloaded moveTo\n\t\tif (type == 'm' && args.length > 2) {\n\t\t\tdata.push([command].concat(args.splice(0, 2)))\n\t\t\ttype = 'l'\n\t\t\tcommand = command == 'm' ? 'l' : 'L'\n\t\t}\n\n\t\twhile (true) {\n\t\t\tif (args.length == length[type]) {\n\t\t\t\targs.unshift(command)\n\t\t\t\treturn data.push(args)\n\t\t\t}\n\t\t\tif (args.length < length[type]) throw new Error('malformed path data')\n\t\t\tdata.push([command].concat(args.splice(0, length[type])))\n\t\t}\n\t})\n\treturn data\n}\n\nvar number = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig\n\nfunction parseValues(args) {\n\tvar numbers = args.match(number)\n\treturn numbers ? numbers.map(Number) : []\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\nvar nextTick\nfunction getNextTick () {\n if (nextTick) {\n return nextTick\n }\n if (global.process && global.process.nextTick) {\n nextTick = global.process.nextTick\n } else if (global.queueMicrotask) {\n nextTick = global.queueMicrotask\n } else if (global.setImmediate) {\n nextTick = global.setImmediate\n } else {\n nextTick = global.setTimeout\n }\n return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n getNextTick()(function () {\n callback(null, out)\n })\n }, function (e) {\n getNextTick()(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n getNextTick()(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n return\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8'\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRequiredForA11y;\nfunction isRequiredForA11y(validator) {\n return function validate(props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.');\n }\n\n for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n args[_key - 5] = arguments[_key];\n }\n\n return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));\n };\n}\nmodule.exports = exports['default'];","/**\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\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 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX)\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var inherits = require('inherits')\nvar EventEmitter = require('events').EventEmitter\n\nmodule.exports = Queue\nmodule.exports.default = Queue\n\nfunction Queue (options) {\n if (!(this instanceof Queue)) {\n return new Queue(options)\n }\n\n EventEmitter.call(this)\n options = options || {}\n this.concurrency = options.concurrency || Infinity\n this.timeout = options.timeout || 0\n this.autostart = options.autostart || false\n this.results = options.results || null\n this.pending = 0\n this.session = 0\n this.running = false\n this.jobs = []\n this.timers = {}\n}\ninherits(Queue, EventEmitter)\n\nvar arrayMethods = [\n 'pop',\n 'shift',\n 'indexOf',\n 'lastIndexOf'\n]\n\narrayMethods.forEach(function (method) {\n Queue.prototype[method] = function () {\n return Array.prototype[method].apply(this.jobs, arguments)\n }\n})\n\nQueue.prototype.slice = function (begin, end) {\n this.jobs = this.jobs.slice(begin, end)\n return this\n}\n\nQueue.prototype.reverse = function () {\n this.jobs.reverse()\n return this\n}\n\nvar arrayAddMethods = [\n 'push',\n 'unshift',\n 'splice'\n]\n\narrayAddMethods.forEach(function (method) {\n Queue.prototype[method] = function () {\n var methodResult = Array.prototype[method].apply(this.jobs, arguments)\n if (this.autostart) {\n this.start()\n }\n return methodResult\n }\n})\n\nObject.defineProperty(Queue.prototype, 'length', {\n get: function () {\n return this.pending + this.jobs.length\n }\n})\n\nQueue.prototype.start = function (cb) {\n if (cb) {\n callOnErrorOrEnd.call(this, cb)\n }\n\n this.running = true\n\n if (this.pending >= this.concurrency) {\n return\n }\n\n if (this.jobs.length === 0) {\n if (this.pending === 0) {\n done.call(this)\n }\n return\n }\n\n var self = this\n var job = this.jobs.shift()\n var once = true\n var session = this.session\n var timeoutId = null\n var didTimeout = false\n var resultIndex = null\n var timeout = job.hasOwnProperty('timeout') ? job.timeout : this.timeout\n\n function next (err, result) {\n if (once && self.session === session) {\n once = false\n self.pending--\n if (timeoutId !== null) {\n delete self.timers[timeoutId]\n clearTimeout(timeoutId)\n }\n\n if (err) {\n self.emit('error', err, job)\n } else if (didTimeout === false) {\n if (resultIndex !== null) {\n self.results[resultIndex] = Array.prototype.slice.call(arguments, 1)\n }\n self.emit('success', result, job)\n }\n\n if (self.session === session) {\n if (self.pending === 0 && self.jobs.length === 0) {\n done.call(self)\n } else if (self.running) {\n self.start()\n }\n }\n }\n }\n\n if (timeout) {\n timeoutId = setTimeout(function () {\n didTimeout = true\n if (self.listeners('timeout').length > 0) {\n self.emit('timeout', next, job)\n } else {\n next()\n }\n }, timeout)\n this.timers[timeoutId] = timeoutId\n }\n\n if (this.results) {\n resultIndex = this.results.length\n this.results[resultIndex] = null\n }\n\n this.pending++\n self.emit('start', job)\n var promise = job(next)\n if (promise && promise.then && typeof promise.then === 'function') {\n promise.then(function (result) {\n return next(null, result)\n }).catch(function (err) {\n return next(err || true)\n })\n }\n\n if (this.running && this.jobs.length > 0) {\n this.start()\n }\n}\n\nQueue.prototype.stop = function () {\n this.running = false\n}\n\nQueue.prototype.end = function (err) {\n clearTimers.call(this)\n this.jobs.length = 0\n this.pending = 0\n done.call(this, err)\n}\n\nfunction clearTimers () {\n for (var key in this.timers) {\n var timeoutId = this.timers[key]\n delete this.timers[key]\n clearTimeout(timeoutId)\n }\n}\n\nfunction callOnErrorOrEnd (cb) {\n var self = this\n this.on('error', onerror)\n this.on('end', onend)\n\n function onerror (err) { self.end(err) }\n function onend (err) {\n self.removeListener('error', onerror)\n self.removeListener('end', onend)\n cb(err, this.results)\n }\n}\n\nfunction done (err) {\n this.session++\n this.running = false\n this.emit('end', err)\n}\n","\n\n/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\nexport default F;","\n\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\nexport default T;","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nexport default { '@@functional/placeholder': true };","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from './_isPlaceholder.js';\n\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 */\nexport default function _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}","import _curry1 from './_curry1.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\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 */\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\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}","import _curry2 from './internal/_curry2.js';\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\nvar add = /*#__PURE__*/_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\nexport default add;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nexport default function _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}","export default function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}","import _arity from './_arity.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}","import _arity from './internal/_arity.js';\nimport _curry1 from './internal/_curry1.js';\nimport _curry2 from './internal/_curry2.js';\nimport _curryN from './internal/_curryN.js';\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nexport default curryN;","import _concat from './internal/_concat.js';\nimport _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\n\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\nvar addIndex = /*#__PURE__*/_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n return fn.apply(this, args);\n });\n});\nexport default addIndex;","import _curry1 from './_curry1.js';\nimport _curry2 from './_curry2.js';\nimport _isPlaceholder from './_isPlaceholder.js';\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","import _concat from './internal/_concat.js';\nimport _curry3 from './internal/_curry3.js';\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\nvar adjust = /*#__PURE__*/_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n var start = idx < 0 ? list.length : 0;\n var _idx = start + idx;\n var _list = _concat(list);\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\nexport default adjust;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","export default function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}","import _isArray from './_isArray.js';\nimport _isTransformer from './_isTransformer.js';\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\nexport default function _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}","export default function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","export default {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XAll = /*#__PURE__*/function () {\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall = /*#__PURE__*/_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\nexport default _xall;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xall from './internal/_xall.js';\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\nvar all = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n idx += 1;\n }\n return true;\n}));\nexport default all;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n return b > a ? b : a;\n});\nexport default max;","export default function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}","export default function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}","import _curry1 from './_curry1.js';\nimport _isArray from './_isArray.js';\nimport _isString from './_isString.js';\n\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 */\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nexport default _isArrayLike;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nexport default function _xwrap(fn) {\n return new XWrap(fn);\n}","import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\n\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 */\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nexport default bind;","import _isArrayLike from './_isArrayLike.js';\nimport _xwrap from './_xwrap.js';\nimport bind from '../bind.js';\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\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\nexport default function _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\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}","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XMap = /*#__PURE__*/function () {\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\nexport default _xmap;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _has from './_has.js';\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\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\nexport default _isArguments;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport _isArguments from './internal/_isArguments.js';\n\n// cover IE < 9 keys issues\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\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 */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nexport default keys;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _map from './internal/_map.js';\nimport _reduce from './internal/_reduce.js';\nimport _xmap from './internal/_xmap.js';\nimport curryN from './curryN.js';\nimport keys from './keys.js';\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nexport default map;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n */\nvar path = /*#__PURE__*/_curry2(function path(paths, obj) {\n var val = obj;\n var idx = 0;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n val = val[paths[idx]];\n idx += 1;\n }\n return val;\n});\nexport default path;","import _curry2 from './internal/_curry2.js';\nimport path from './path.js';\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig s -> {s: a} -> a | Undefined\n * @param {String} p The property name\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n return path([p], obj);\n});\nexport default prop;","import _curry2 from './internal/_curry2.js';\nimport map from './map.js';\nimport prop from './prop.js';\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\nexport default pluck;","import _curry3 from './internal/_curry3.js';\nimport _reduce from './internal/_reduce.js';\n\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 */\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nexport default reduce;","import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\nvar allPass = /*#__PURE__*/_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\n });\n});\nexport default allPass;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\nvar always = /*#__PURE__*/_curry1(function always(val) {\n return function () {\n return val;\n };\n});\nexport default always;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\nvar and = /*#__PURE__*/_curry2(function and(a, b) {\n return a && b;\n});\nexport default and;","import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XAny = /*#__PURE__*/function () {\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany = /*#__PURE__*/_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\nexport default _xany;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xany from './internal/_xany.js';\n\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\nvar any = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}));\nexport default any;","import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\nvar anyPass = /*#__PURE__*/_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n idx += 1;\n }\n return false;\n });\n});\nexport default anyPass;","import _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\nimport _reduce from './internal/_reduce.js';\nimport map from './map.js';\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\nvar ap = /*#__PURE__*/_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\nexport default ap;","export default function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n return acc;\n}","import _concat from './_concat.js';\nimport _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XAperture = /*#__PURE__*/function () {\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture = /*#__PURE__*/_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\nexport default _xaperture;","import _aperture from './internal/_aperture.js';\nimport _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xaperture from './internal/_xaperture.js';\n\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\nvar aperture = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xaperture, _aperture));\nexport default aperture;","import _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\nvar append = /*#__PURE__*/_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\nexport default append;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\nvar apply = /*#__PURE__*/_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\nexport default apply;","import _curry1 from './internal/_curry1.js';\nimport keys from './keys.js';\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\nvar values = /*#__PURE__*/_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\nexport default values;","import _curry1 from './internal/_curry1.js';\nimport apply from './apply.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\nimport keys from './keys.js';\nimport values from './values.js';\n\n// Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\nvar applySpec = /*#__PURE__*/_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\nexport default applySpec;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\nvar applyTo = /*#__PURE__*/_curry2(function applyTo(x, f) {\n return f(x);\n});\nexport default applyTo;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\nvar ascend = /*#__PURE__*/_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\nexport default ascend;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\nvar assoc = /*#__PURE__*/_curry3(function assoc(prop, val, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\n});\nexport default assoc;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry1 from './internal/_curry1.js';\n\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 */\nvar isNil = /*#__PURE__*/_curry1(function isNil(x) {\n return x == null;\n});\nexport default isNil;","import _curry3 from './internal/_curry3.js';\nimport _has from './internal/_has.js';\nimport _isArray from './internal/_isArray.js';\nimport _isInteger from './internal/_isInteger.js';\nimport assoc from './assoc.js';\nimport isNil from './isNil.js';\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\nvar assocPath = /*#__PURE__*/_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n var idx = path[0];\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\nexport default assocPath;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\nvar nAry = /*#__PURE__*/_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\nexport default nAry;","import _curry1 from './internal/_curry1.js';\nimport nAry from './nAry.js';\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\nvar binary = /*#__PURE__*/_curry1(function binary(fn) {\n return nAry(2, fn);\n});\nexport default binary;","export default function _isFunction(x) {\n return Object.prototype.toString.call(x) === '[object Function]';\n}","import _curry2 from './internal/_curry2.js';\nimport _reduce from './internal/_reduce.js';\nimport ap from './ap.js';\nimport curryN from './curryN.js';\nimport map from './map.js';\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\nvar liftN = /*#__PURE__*/_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\nexport default liftN;","import _curry1 from './internal/_curry1.js';\nimport liftN from './liftN.js';\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\nvar lift = /*#__PURE__*/_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\nexport default lift;","import _curry2 from './internal/_curry2.js';\nimport _isFunction from './internal/_isFunction.js';\nimport and from './and.js';\nimport lift from './lift.js';\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\nvar both = /*#__PURE__*/_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\nexport default both;","import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\nvar curry = /*#__PURE__*/_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\nexport default curry;","import curry from './curry.js';\n\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\nvar call = /*#__PURE__*/curry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nexport default call;","import _isArrayLike from './_isArrayLike.js';\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\nexport default function _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n };\n}","import _forceReduced from './_forceReduced.js';\nimport _isArrayLike from './_isArrayLike.js';\nimport _reduce from './_reduce.js';\nimport _xfBase from './_xfBase.js';\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nexport default _flatCat;","export default function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _makeFlat from './internal/_makeFlat.js';\nimport _xchain from './internal/_xchain.js';\nimport map from './map.js';\n\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\nvar chain = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n return _makeFlat(false)(map(fn, monad));\n}));\nexport default chain;","import _curry2 from './_curry2.js';\nimport _flatCat from './_flatCat.js';\nimport map from '../map.js';\n\nvar _xchain = /*#__PURE__*/_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\nexport default _xchain;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\nvar clamp = /*#__PURE__*/_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n return value < min ? min : value > max ? max : value;\n});\nexport default clamp;","export default function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}","import _curry1 from './internal/_curry1.js';\n\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 */\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nexport default type;","import _cloneRegExp from './_cloneRegExp.js';\nimport type from '../type.js';\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\nexport default function _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n default:\n return value;\n }\n}","import _clone from './internal/_clone.js';\nimport _curry1 from './internal/_curry1.js';\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nexport default clone;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\nvar comparator = /*#__PURE__*/_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\nexport default comparator;","import _curry1 from './internal/_curry1.js';\n\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 */\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\nexport default not;","import lift from './lift.js';\nimport not from './not.js';\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\nvar complement = /*#__PURE__*/lift(not);\nexport default complement;","export default function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}","import _isArray from './_isArray.js';\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\nexport default function _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n if (length === 0) {\n return fn();\n }\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry3 from './internal/_curry3.js';\n\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 */\nvar slice = /*#__PURE__*/_curry3( /*#__PURE__*/_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\nexport default slice;","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry1 from './internal/_curry1.js';\nimport slice from './slice.js';\n\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 */\nvar tail = /*#__PURE__*/_curry1( /*#__PURE__*/_checkForMethod('tail', /*#__PURE__*/slice(1, Infinity)));\nexport default tail;","import _arity from './internal/_arity.js';\nimport _pipe from './internal/_pipe.js';\nimport reduce from './reduce.js';\nimport tail from './tail.js';\n\n/**\n * Performs left-to-right function composition. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\nexport default function pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}","import _curry1 from './internal/_curry1.js';\nimport _isString from './internal/_isString.js';\n\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 */\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\nexport default reverse;","import pipe from './pipe.js';\nimport reverse from './reverse.js';\n\n/**\n * Performs right-to-left function composition. The rightmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\nexport default function compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n return pipe.apply(this, reverse(arguments));\n}","import chain from './chain.js';\nimport compose from './compose.js';\nimport map from './map.js';\n\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\nexport default function composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n}","export default function _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}","import _arity from './internal/_arity.js';\nimport _pipeP from './internal/_pipeP.js';\nimport reduce from './reduce.js';\nimport tail from './tail.js';\n\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The leftmost function may have any arity; the remaining functions\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\nexport default function pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipeP, arguments[0], tail(arguments)));\n}","import pipeP from './pipeP.js';\nimport reverse from './reverse.js';\n\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The rightmost function may have any arity; the remaining\n * functions must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\nexport default function composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n return pipeP.apply(this, reverse(arguments));\n}","import _curry2 from './internal/_curry2.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\nvar nth = /*#__PURE__*/_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\nexport default nth;","import nth from './nth.js';\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\nvar head = /*#__PURE__*/nth(0);\nexport default head;","export default function _identity(x) {\n return x;\n}","import _curry1 from './internal/_curry1.js';\nimport _identity from './internal/_identity.js';\n\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 */\nvar identity = /*#__PURE__*/_curry1(_identity);\nexport default identity;","import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\nimport head from './head.js';\nimport _reduce from './internal/_reduce.js';\nimport tail from './tail.js';\nimport identity from './identity.js';\n\n/**\n * Performs left-to-right function composition using transforming function. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, f(g, ...args)))\n */\nvar pipeWith = /*#__PURE__*/_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n\n var headList = head(list);\n var tailList = tail(list);\n\n return _arity(headList.length, function () {\n return _reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\nexport default pipeWith;","import _curry2 from './internal/_curry2.js';\nimport pipeWith from './pipeWith.js';\nimport reverse from './reverse.js';\n\n/**\n * Performs right-to-left function composition using transforming function. The rightmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, f(i, ...args)))\n */\nvar composeWith = /*#__PURE__*/_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\nexport default composeWith;","export default function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}","export default 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 idx += 1;\n }\n return false;\n}","// 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\nexport default typeof Object.is === 'function' ? Object.is : _objectIs;","import _arrayFromIterator from './_arrayFromIterator.js';\nimport _includesWith from './_includesWith.js';\nimport _functionName from './_functionName.js';\nimport _has from './_has.js';\nimport _objectIs from './_objectIs.js';\nimport keys from '../keys.js';\nimport type from '../type.js';\n\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\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nexport default function _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 break;\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 break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\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 break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\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 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 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 default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\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\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}","export default 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}","import _curry2 from './internal/_curry2.js';\nimport _equals from './internal/_equals.js';\n\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 */\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nexport default equals;","import equals from '../equals.js';\n\nexport default function _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}","import _indexOf from './_indexOf.js';\n\nexport default function _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}","export default function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}","/**\n * Polyfill from .\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nexport default _toISOString;","export default function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}","export default function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}","export default function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFilter = /*#__PURE__*/function () {\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter = /*#__PURE__*/_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\nexport default _xfilter;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _filter from './internal/_filter.js';\nimport _isObject from './internal/_isObject.js';\nimport _reduce from './internal/_reduce.js';\nimport _xfilter from './internal/_xfilter.js';\nimport keys from './keys.js';\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nexport default filter;","import _complement from './internal/_complement.js';\nimport _curry2 from './internal/_curry2.js';\nimport filter from './filter.js';\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nexport default reject;","import _includes from './_includes.js';\nimport _map from './_map.js';\nimport _quote from './_quote.js';\nimport _toISOString from './_toISOString.js';\nimport keys from '../keys.js';\nimport reject from '../reject.js';\n\nexport default function _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '' : _toString(y, xs);\n };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return (/^\\d+$/.test(k)\n );\n }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}","import _curry1 from './internal/_curry1.js';\nimport _toString from './internal/_toString.js';\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\nexport default toString;","import _curry2 from './internal/_curry2.js';\nimport _isArray from './internal/_isArray.js';\nimport _isFunction from './internal/_isFunction.js';\nimport _isString from './internal/_isString.js';\nimport toString from './toString.js';\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\nvar concat = /*#__PURE__*/_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n throw new TypeError(toString(b) + ' is not an array');\n }\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n throw new TypeError(toString(b) + ' is not a string');\n }\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\nexport default concat;","import _arity from './internal/_arity.js';\nimport _curry1 from './internal/_curry1.js';\nimport map from './map.js';\nimport max from './max.js';\nimport reduce from './reduce.js';\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\nvar cond = /*#__PURE__*/_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\n }\n });\n});\nexport default cond;","import _curry2 from './internal/_curry2.js';\nimport curry from './curry.js';\nimport nAry from './nAry.js';\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\nvar constructN = /*#__PURE__*/_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n return curry(nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n case 2:\n return new Fn($0, $1);\n case 3:\n return new Fn($0, $1, $2);\n case 4:\n return new Fn($0, $1, $2, $3);\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\nexport default constructN;","import _curry1 from './internal/_curry1.js';\nimport constructN from './constructN.js';\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\nvar construct = /*#__PURE__*/_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\nexport default construct;","import _includes from './internal/_includes.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\nvar contains = /*#__PURE__*/_curry2(_includes);\nexport default contains;","import _curry2 from './internal/_curry2.js';\nimport _map from './internal/_map.js';\nimport curryN from './curryN.js';\nimport max from './max.js';\nimport pluck from './pluck.js';\nimport reduce from './reduce.js';\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\nvar converge = /*#__PURE__*/_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\nexport default converge;","import _curryN from './_curryN.js';\nimport _has from './_has.js';\nimport _xfBase from './_xfBase.js';\n\nvar XReduceBy = /*#__PURE__*/function () {\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy = /*#__PURE__*/_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\nexport default _xreduceBy;","import _curryN from './internal/_curryN.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _has from './internal/_has.js';\nimport _reduce from './internal/_reduce.js';\nimport _xreduceBy from './internal/_xreduceBy.js';\n\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\nvar reduceBy = /*#__PURE__*/_curryN(4, [], /*#__PURE__*/_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : valueAcc, elt);\n return acc;\n }, {}, list);\n}));\nexport default reduceBy;","import reduceBy from './reduceBy.js';\n\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\nvar countBy = /*#__PURE__*/reduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nexport default countBy;","import add from './add.js';\n\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\nvar dec = /*#__PURE__*/add(-1);\nexport default dec;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\nvar defaultTo = /*#__PURE__*/_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\nexport default defaultTo;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\nvar descend = /*#__PURE__*/_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\nexport default descend;","import _includes from './_includes.js';\n\nvar _Set = /*#__PURE__*/function () {\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n };\n\n //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n };\n\n //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n }\n // these types can all utilise the native Set\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n /* falls through */\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n // scan through all previously applied items\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n}\n\n// A simple Set type that honours R.equals semantics\nexport default _Set;","import _curry2 from './internal/_curry2.js';\nimport _Set from './internal/_Set.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\nvar difference = /*#__PURE__*/_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\nexport default difference;","import _includesWith from './internal/_includesWith.js';\nimport _curry3 from './internal/_curry3.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\nvar differenceWith = /*#__PURE__*/_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n idx += 1;\n }\n return out;\n});\nexport default differenceWith;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\nvar dissoc = /*#__PURE__*/_curry2(function dissoc(prop, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n delete result[prop];\n return result;\n});\nexport default dissoc;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\nvar remove = /*#__PURE__*/_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\nexport default remove;","import _curry3 from './internal/_curry3.js';\nimport adjust from './adjust.js';\nimport always from './always.js';\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\nvar update = /*#__PURE__*/_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\nexport default update;","import _curry2 from './internal/_curry2.js';\nimport _isInteger from './internal/_isInteger.js';\nimport _isArray from './internal/_isArray.js';\nimport assoc from './assoc.js';\nimport dissoc from './dissoc.js';\nimport remove from './remove.js';\nimport update from './update.js';\n\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\nvar dissocPath = /*#__PURE__*/_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n }\n});\nexport default dissocPath;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\nvar divide = /*#__PURE__*/_curry2(function divide(a, b) {\n return a / b;\n});\nexport default divide;","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XDrop = /*#__PURE__*/function () {\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop = /*#__PURE__*/_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\nexport default _xdrop;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xdrop from './internal/_xdrop.js';\nimport slice from './slice.js';\n\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\nvar drop = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\nexport default drop;","import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XTake = /*#__PURE__*/function () {\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake = /*#__PURE__*/_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\nexport default _xtake;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xtake from './internal/_xtake.js';\nimport slice from './slice.js';\n\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\nvar take = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\nexport default take;","import take from '../take.js';\n\nexport default function dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n}","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XDropLast = /*#__PURE__*/function () {\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n this.store(input);\n return result;\n };\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast = /*#__PURE__*/_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\nexport default _xdropLast;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _dropLast from './internal/_dropLast.js';\nimport _xdropLast from './internal/_xdropLast.js';\n\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\nvar dropLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLast, _dropLast));\nexport default dropLast;","import slice from '../slice.js';\n\nexport default function dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n return slice(0, idx + 1, xs);\n}","import _curry2 from './_curry2.js';\nimport _reduce from './_reduce.js';\nimport _xfBase from './_xfBase.js';\n\nvar XDropLastWhile = /*#__PURE__*/function () {\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile = /*#__PURE__*/_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\nexport default _xdropLastWhile;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _dropLastWhile from './internal/_dropLastWhile.js';\nimport _xdropLastWhile from './internal/_xdropLastWhile.js';\n\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\nvar dropLastWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLastWhile, _dropLastWhile));\nexport default dropLastWhile;","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XDropRepeatsWith = /*#__PURE__*/function () {\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith = /*#__PURE__*/_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\nexport default _xdropRepeatsWith;","import nth from './nth.js';\n\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\nvar last = /*#__PURE__*/nth(-1);\nexport default last;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xdropRepeatsWith from './internal/_xdropRepeatsWith.js';\nimport last from './last.js';\n\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\nvar dropRepeatsWith = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n if (len !== 0) {\n result[0] = list[0];\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n }\n return result;\n}));\nexport default dropRepeatsWith;","import _curry1 from './internal/_curry1.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xdropRepeatsWith from './internal/_xdropRepeatsWith.js';\nimport dropRepeatsWith from './dropRepeatsWith.js';\nimport equals from './equals.js';\n\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\nvar dropRepeats = /*#__PURE__*/_curry1( /*#__PURE__*/_dispatchable([], /*#__PURE__*/_xdropRepeatsWith(equals), /*#__PURE__*/dropRepeatsWith(equals)));\nexport default dropRepeats;","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XDropWhile = /*#__PURE__*/function () {\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n this.f = null;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile = /*#__PURE__*/_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\nexport default _xdropWhile;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xdropWhile from './internal/_xdropWhile.js';\nimport slice from './slice.js';\n\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\nvar dropWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n return slice(idx, Infinity, xs);\n}));\nexport default dropWhile;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\nvar or = /*#__PURE__*/_curry2(function or(a, b) {\n return a || b;\n});\nexport default or;","import _curry2 from './internal/_curry2.js';\nimport _isFunction from './internal/_isFunction.js';\nimport lift from './lift.js';\nimport or from './or.js';\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\nvar either = /*#__PURE__*/_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\nexport default either;","import _curry1 from './internal/_curry1.js';\nimport _isArguments from './internal/_isArguments.js';\nimport _isArray from './internal/_isArray.js';\nimport _isObject from './internal/_isObject.js';\nimport _isString from './internal/_isString.js';\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `.empty`,\n * `.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\nvar empty = /*#__PURE__*/_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\nexport default empty;","import _curry2 from './internal/_curry2.js';\nimport drop from './drop.js';\n\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\nvar takeLast = /*#__PURE__*/_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\nexport default takeLast;","import _curry2 from './internal/_curry2.js';\nimport equals from './equals.js';\nimport takeLast from './takeLast.js';\n\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\nvar endsWith = /*#__PURE__*/_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\n});\nexport default endsWith;","import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\nvar eqBy = /*#__PURE__*/_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\nexport default eqBy;","import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\n\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\nvar eqProps = /*#__PURE__*/_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\nexport default eqProps;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\nvar evolve = /*#__PURE__*/_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n return result;\n});\nexport default evolve;","import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFind = /*#__PURE__*/function () {\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind = /*#__PURE__*/_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\nexport default _xfind;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfind from './internal/_xfind.js';\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\nvar find = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx += 1;\n }\n}));\nexport default find;","import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindIndex = /*#__PURE__*/function () {\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex = /*#__PURE__*/_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\nexport default _xfindIndex;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindIndex from './internal/_xfindIndex.js';\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\nvar findIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\nexport default findIndex;","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindLast = /*#__PURE__*/function () {\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast = /*#__PURE__*/_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\nexport default _xfindLast;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindLast from './internal/_xfindLast.js';\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\nvar findLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\nexport default findLast;","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XFindLastIndex = /*#__PURE__*/function () {\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex = /*#__PURE__*/_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\nexport default _xfindLastIndex;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xfindLastIndex from './internal/_xfindLastIndex.js';\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\nvar findLastIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n}));\nexport default findLastIndex;","import _curry1 from './internal/_curry1.js';\nimport _makeFlat from './internal/_makeFlat.js';\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\nvar flatten = /*#__PURE__*/_curry1( /*#__PURE__*/_makeFlat(true));\nexport default flatten;","import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\nvar flip = /*#__PURE__*/_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\nexport default flip;","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\nvar forEach = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n return list;\n}));\nexport default forEach;","import _curry2 from './internal/_curry2.js';\nimport keys from './keys.js';\n\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\nvar forEachObjIndexed = /*#__PURE__*/_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n return obj;\n});\nexport default forEachObjIndexed;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\nvar fromPairs = /*#__PURE__*/_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n return result;\n});\nexport default fromPairs;","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry2 from './internal/_curry2.js';\nimport reduceBy from './reduceBy.js';\n\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\nvar groupBy = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('groupBy', /*#__PURE__*/reduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n acc.push(item);\n return acc;\n}, null)));\nexport default groupBy;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\nvar groupWith = /*#__PURE__*/_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n var nextidx = idx + 1;\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n return res;\n});\nexport default groupWith;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\nvar gt = /*#__PURE__*/_curry2(function gt(a, b) {\n return a > b;\n});\nexport default gt;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\nvar gte = /*#__PURE__*/_curry2(function gte(a, b) {\n return a >= b;\n});\nexport default gte;","import _curry2 from './internal/_curry2.js';\nimport _has from './internal/_has.js';\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\nvar hasPath = /*#__PURE__*/_curry2(function hasPath(_path, obj) {\n if (_path.length === 0) {\n return false;\n }\n var val = obj;\n var idx = 0;\n while (idx < _path.length) {\n if (_has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n return true;\n});\nexport default hasPath;","import _curry2 from './internal/_curry2.js';\nimport hasPath from './hasPath.js';\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\nvar has = /*#__PURE__*/_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\nexport default has;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\nvar hasIn = /*#__PURE__*/_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\nexport default hasIn;","import _objectIs from './internal/_objectIs.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\nvar identical = /*#__PURE__*/_curry2(_objectIs);\nexport default identical;","import _curry3 from './internal/_curry3.js';\nimport curryN from './curryN.js';\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\nvar ifElse = /*#__PURE__*/_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\nexport default ifElse;","import add from './add.js';\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\nvar inc = /*#__PURE__*/add(1);\nexport default inc;","import _includes from './internal/_includes.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\nvar includes = /*#__PURE__*/_curry2(_includes);\nexport default includes;","import reduceBy from './reduceBy.js';\n\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\nvar indexBy = /*#__PURE__*/reduceBy(function (acc, elem) {\n return elem;\n}, null);\nexport default indexBy;","import _curry2 from './internal/_curry2.js';\nimport _indexOf from './internal/_indexOf.js';\nimport _isArray from './internal/_isArray.js';\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\nvar indexOf = /*#__PURE__*/_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\nexport default indexOf;","import slice from './slice.js';\n\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\nvar init = /*#__PURE__*/slice(0, -1);\nexport default init;","import _includesWith from './internal/_includesWith.js';\nimport _curry3 from './internal/_curry3.js';\nimport _filter from './internal/_filter.js';\n\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\nvar innerJoin = /*#__PURE__*/_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\n});\nexport default innerJoin;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\nvar insert = /*#__PURE__*/_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\nexport default insert;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * No lists have been harmed in the application of this function.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\nvar insertAll = /*#__PURE__*/_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\nexport default insertAll;","import _Set from './internal/_Set.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\nvar uniqBy = /*#__PURE__*/_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n if (set.add(appliedItem)) {\n result.push(item);\n }\n idx += 1;\n }\n return result;\n});\nexport default uniqBy;","import identity from './identity.js';\nimport uniqBy from './uniqBy.js';\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\nvar uniq = /*#__PURE__*/uniqBy(identity);\nexport default uniq;","import _includes from './internal/_includes.js';\nimport _curry2 from './internal/_curry2.js';\nimport _filter from './internal/_filter.js';\nimport flip from './flip.js';\nimport uniq from './uniq.js';\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\nvar intersection = /*#__PURE__*/_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\nexport default intersection;","import _checkForMethod from './internal/_checkForMethod.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\nvar intersperse = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n idx += 1;\n }\n return out;\n}));\nexport default intersperse;","import _has from './_has.js';\n\n// Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\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 while (idx < length) {\n var source = arguments[idx];\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n idx += 1;\n }\n return output;\n}\n\nexport default typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\nvar objOf = /*#__PURE__*/_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\nexport default objOf;","import _objectAssign from './_objectAssign.js';\nimport _identity from './_identity.js';\nimport _isArrayLike from './_isArrayLike.js';\nimport _isTransformer from './_isTransformer.js';\nimport objOf from '../objOf.js';\n\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\n\nexport default function _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n throw new Error('Cannot create transformer for ' + obj);\n}","import _clone from './internal/_clone.js';\nimport _curry3 from './internal/_curry3.js';\nimport _isTransformer from './internal/_isTransformer.js';\nimport _reduce from './internal/_reduce.js';\nimport _stepCat from './internal/_stepCat.js';\n\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\nvar into = /*#__PURE__*/_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\nexport default into;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\nimport keys from './keys.js';\n\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\nvar invert = /*#__PURE__*/_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n return out;\n});\nexport default invert;","import _curry1 from './internal/_curry1.js';\nimport keys from './keys.js';\n\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\nvar invertObj = /*#__PURE__*/_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n return out;\n});\nexport default invertObj;","import _curry2 from './internal/_curry2.js';\nimport _isFunction from './internal/_isFunction.js';\nimport curryN from './curryN.js';\nimport toString from './toString.js';\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of the method to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\nvar invoker = /*#__PURE__*/_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\nexport default invoker;","import _curry2 from './internal/_curry2.js';\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\nvar is = /*#__PURE__*/_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\nexport default is;","import _curry1 from './internal/_curry1.js';\nimport empty from './empty.js';\nimport equals from './equals.js';\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\nvar isEmpty = /*#__PURE__*/_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\nexport default isEmpty;","import invoker from './invoker.js';\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\nvar join = /*#__PURE__*/invoker(1, 'join');\nexport default join;","import _curry1 from './internal/_curry1.js';\nimport converge from './converge.js';\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\nvar juxt = /*#__PURE__*/_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\nexport default juxt;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\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.2.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 and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\nvar keysIn = /*#__PURE__*/_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n return ks;\n});\nexport default keysIn;","import _curry2 from './internal/_curry2.js';\nimport _isArray from './internal/_isArray.js';\nimport equals from './equals.js';\n\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\nvar lastIndexOf = /*#__PURE__*/_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n }\n});\nexport default lastIndexOf;","export default function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}","import _curry1 from './internal/_curry1.js';\nimport _isNumber from './internal/_isNumber.js';\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\nvar length = /*#__PURE__*/_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\nexport default length;","import _curry2 from './internal/_curry2.js';\nimport map from './map.js';\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\nvar lens = /*#__PURE__*/_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\nexport default lens;","import _curry1 from './internal/_curry1.js';\nimport lens from './lens.js';\nimport nth from './nth.js';\nimport update from './update.js';\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\nvar lensIndex = /*#__PURE__*/_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\nexport default lensIndex;","import _curry1 from './internal/_curry1.js';\nimport assocPath from './assocPath.js';\nimport lens from './lens.js';\nimport path from './path.js';\n\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\nvar lensPath = /*#__PURE__*/_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\nexport default lensPath;","import _curry1 from './internal/_curry1.js';\nimport assoc from './assoc.js';\nimport lens from './lens.js';\nimport prop from './prop.js';\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\nvar lensProp = /*#__PURE__*/_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\nexport default lensProp;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\nvar lt = /*#__PURE__*/_curry2(function lt(a, b) {\n return a < b;\n});\nexport default lt;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\nvar lte = /*#__PURE__*/_curry2(function lte(a, b) {\n return a <= b;\n});\nexport default lte;","import _curry3 from './internal/_curry3.js';\n\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\nvar mapAccum = /*#__PURE__*/_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n return [tuple[0], result];\n});\nexport default mapAccum;","import _curry3 from './internal/_curry3.js';\n\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\nvar mapAccumRight = /*#__PURE__*/_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n return [tuple[0], result];\n});\nexport default mapAccumRight;","import _curry2 from './internal/_curry2.js';\nimport _reduce from './internal/_reduce.js';\nimport keys from './keys.js';\n\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\nvar mapObjIndexed = /*#__PURE__*/_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\nexport default mapObjIndexed;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\nvar match = /*#__PURE__*/_curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\nexport default match;","import _curry2 from './internal/_curry2.js';\nimport _isInteger from './internal/_isInteger.js';\n\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\nvar mathMod = /*#__PURE__*/_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n return (m % p + p) % p;\n});\nexport default mathMod;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\nvar maxBy = /*#__PURE__*/_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\nexport default maxBy;","import add from './add.js';\nimport reduce from './reduce.js';\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\nvar sum = /*#__PURE__*/reduce(add, 0);\nexport default sum;","import _curry1 from './internal/_curry1.js';\nimport sum from './sum.js';\n\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\nvar mean = /*#__PURE__*/_curry1(function mean(list) {\n return sum(list) / list.length;\n});\nexport default mean;","import _curry1 from './internal/_curry1.js';\nimport mean from './mean.js';\n\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\nvar median = /*#__PURE__*/_curry1(function median(list) {\n var len = list.length;\n if (len === 0) {\n return NaN;\n }\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\nexport default median;","import _arity from './internal/_arity.js';\nimport _curry2 from './internal/_curry2.js';\nimport _has from './internal/_has.js';\n\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\nvar memoizeWith = /*#__PURE__*/_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n return cache[key];\n });\n});\nexport default memoizeWith;","import _objectAssign from './internal/_objectAssign.js';\nimport _curry2 from './internal/_curry2.js';\n\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.1.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.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\nvar merge = /*#__PURE__*/_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\nexport default merge;","import _objectAssign from './internal/_objectAssign.js';\nimport _curry1 from './internal/_curry1.js';\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\nvar mergeAll = /*#__PURE__*/_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\nexport default mergeAll;","import _curry3 from './internal/_curry3.js';\nimport _has from './internal/_has.js';\n\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 */\nvar mergeWithKey = /*#__PURE__*/_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});\nexport default mergeWithKey;","import _curry3 from './internal/_curry3.js';\nimport _isObject from './internal/_isObject.js';\nimport mergeWithKey from './mergeWithKey.js';\n\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 */\nvar mergeDeepWithKey = /*#__PURE__*/_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});\nexport default mergeDeepWithKey;","import _curry2 from './internal/_curry2.js';\nimport mergeDeepWithKey from './mergeDeepWithKey.js';\n\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 first 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.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\nvar mergeDeepLeft = /*#__PURE__*/_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\nexport default mergeDeepLeft;","import _curry2 from './internal/_curry2.js';\nimport mergeDeepWithKey from './mergeDeepWithKey.js';\n\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 */\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nexport default mergeDeepRight;","import _curry3 from './internal/_curry3.js';\nimport mergeDeepWithKey from './mergeDeepWithKey.js';\n\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 associated values using the\n * 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 ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\nvar mergeDeepWith = /*#__PURE__*/_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\nexport default mergeDeepWith;","import _objectAssign from './internal/_objectAssign.js';\nimport _curry2 from './internal/_curry2.js';\n\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 first object will be used.\n *\n * @func\n * @memberOf R\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.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\nvar mergeLeft = /*#__PURE__*/_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\n});\nexport default mergeLeft;","import _objectAssign from './internal/_objectAssign.js';\nimport _curry2 from './internal/_curry2.js';\n\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 * @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 */\nvar mergeRight = /*#__PURE__*/_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\nexport default mergeRight;","import _curry3 from './internal/_curry3.js';\nimport mergeWithKey from './mergeWithKey.js';\n\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 values\n * associated with the key in each object, with the result being used as the\n * 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 ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\nvar mergeWith = /*#__PURE__*/_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\nexport default mergeWith;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\nvar min = /*#__PURE__*/_curry2(function min(a, b) {\n return b < a ? b : a;\n});\nexport default min;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\nvar minBy = /*#__PURE__*/_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\nexport default minBy;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\nvar modulo = /*#__PURE__*/_curry2(function modulo(a, b) {\n return a % b;\n});\nexport default modulo;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\nvar move = /*#__PURE__*/_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\nexport default move;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\nvar multiply = /*#__PURE__*/_curry2(function multiply(a, b) {\n return a * b;\n});\nexport default multiply;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\nvar negate = /*#__PURE__*/_curry1(function negate(n) {\n return -n;\n});\nexport default negate;","import _complement from './internal/_complement.js';\nimport _curry2 from './internal/_curry2.js';\nimport all from './all.js';\n\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\nvar none = /*#__PURE__*/_curry2(function none(fn, input) {\n return all(_complement(fn), input);\n});\nexport default none;","import _curry1 from './internal/_curry1.js';\nimport curryN from './curryN.js';\nimport nth from './nth.js';\n\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\nvar nthArg = /*#__PURE__*/_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\nexport default nthArg;","import _curry3 from './internal/_curry3.js';\n\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\nvar o = /*#__PURE__*/_curry3(function o(f, g, x) {\n return f(g(x));\n});\nexport default o;","export default function _of(x) {\n return [x];\n}","import _curry1 from './internal/_curry1.js';\nimport _of from './internal/_of.js';\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\nvar of = /*#__PURE__*/_curry1(_of);\nexport default of;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default omit;","import _arity from './internal/_arity.js';\nimport _curry1 from './internal/_curry1.js';\n\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\nvar once = /*#__PURE__*/_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\nexport default once;","import _isFunction from './_isFunction.js';\nimport _toString from './_toString.js';\n\nexport default function _assertPromise(name, p) {\n if (p == null || !_isFunction(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + _toString(p, []));\n }\n}","import _curry2 from './internal/_curry2.js';\nimport _assertPromise from './internal/_assertPromise.js';\n\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\nvar otherwise = /*#__PURE__*/_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n\n return p.then(null, f);\n});\nexport default otherwise;","import _curry3 from './internal/_curry3.js';\n\n// `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\nvar Identity = function (x) {\n return { value: x, map: function (f) {\n return Identity(f(x));\n } };\n};\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\nvar over = /*#__PURE__*/_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\nexport default over;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\nvar pair = /*#__PURE__*/_curry2(function pair(fst, snd) {\n return [fst, snd];\n});\nexport default pair;","import _arity from './_arity.js';\nimport _curry2 from './_curry2.js';\n\nexport default function _createPartialApplicator(concat) {\n return _curry2(function (fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}","import _concat from './internal/_concat.js';\nimport _createPartialApplicator from './internal/_createPartialApplicator.js';\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\nvar partial = /*#__PURE__*/_createPartialApplicator(_concat);\nexport default partial;","import _concat from './internal/_concat.js';\nimport _createPartialApplicator from './internal/_createPartialApplicator.js';\nimport flip from './flip.js';\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\nvar partialRight = /*#__PURE__*/_createPartialApplicator( /*#__PURE__*/flip(_concat));\nexport default partialRight;","import filter from './filter.js';\nimport juxt from './juxt.js';\nimport reject from './reject.js';\n\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\nvar partition = /*#__PURE__*/juxt([filter, reject]);\nexport default partition;","import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\nimport path from './path.js';\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\nvar pathEq = /*#__PURE__*/_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\nexport default pathEq;","import _curry3 from './internal/_curry3.js';\nimport defaultTo from './defaultTo.js';\nimport path from './path.js';\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\nvar pathOr = /*#__PURE__*/_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\nexport default pathOr;","import _curry3 from './internal/_curry3.js';\nimport path from './path.js';\n\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n */\nvar pathSatisfies = /*#__PURE__*/_curry3(function pathSatisfies(pred, propPath, obj) {\n return propPath.length > 0 && pred(path(propPath, obj));\n});\nexport default pathSatisfies;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\nvar pick = /*#__PURE__*/_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\n});\nexport default pick;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\nvar pickAll = /*#__PURE__*/_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n return result;\n});\nexport default pickAll;","import _curry2 from './internal/_curry2.js';\n\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 */\nvar pickBy = /*#__PURE__*/_curry2(function pickBy(test, obj) {\n var result = {};\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nexport default pickBy;","import composeK from './composeK.js';\nimport reverse from './reverse.js';\n\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\nexport default function pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n return composeK.apply(this, reverse(arguments));\n}","import _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\nvar prepend = /*#__PURE__*/_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\nexport default prepend;","import multiply from './multiply.js';\nimport reduce from './reduce.js';\n\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\nvar product = /*#__PURE__*/reduce(multiply, 1);\nexport default product;","import _curry2 from './internal/_curry2.js';\nimport curryN from './curryN.js';\n\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\nvar useWith = /*#__PURE__*/_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\nexport default useWith;","import _map from './internal/_map.js';\nimport identity from './identity.js';\nimport pickAll from './pickAll.js';\nimport useWith from './useWith.js';\n\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\nvar project = /*#__PURE__*/useWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\nexport default project;","import _curry3 from './internal/_curry3.js';\nimport equals from './equals.js';\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\nvar propEq = /*#__PURE__*/_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\nexport default propEq;","import _curry3 from './internal/_curry3.js';\nimport is from './is.js';\n\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\nvar propIs = /*#__PURE__*/_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\nexport default propIs;","import _curry3 from './internal/_curry3.js';\nimport pathOr from './pathOr.js';\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\nvar propOr = /*#__PURE__*/_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\nexport default propOr;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\nvar propSatisfies = /*#__PURE__*/_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\nexport default propSatisfies;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\nvar props = /*#__PURE__*/_curry2(function props(ps, obj) {\n var len = ps.length;\n var out = [];\n var idx = 0;\n\n while (idx < len) {\n out[idx] = obj[ps[idx]];\n idx += 1;\n }\n\n return out;\n});\nexport default props;","import _curry2 from './internal/_curry2.js';\nimport _isNumber from './internal/_isNumber.js';\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\nvar range = /*#__PURE__*/_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n var result = [];\n var n = from;\n while (n < to) {\n result.push(n);\n n += 1;\n }\n return result;\n});\nexport default range;","import _curry3 from './internal/_curry3.js';\n\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 * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\nvar reduceRight = /*#__PURE__*/_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n return acc;\n});\nexport default reduceRight;","import _curryN from './internal/_curryN.js';\nimport _reduce from './internal/_reduce.js';\nimport _reduced from './internal/_reduced.js';\n\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\nvar reduceWhile = /*#__PURE__*/_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\nexport default reduceWhile;","import _curry1 from './internal/_curry1.js';\nimport _reduced from './internal/_reduced.js';\n\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\nvar reduced = /*#__PURE__*/_curry1(_reduced);\nexport default reduced;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\nvar times = /*#__PURE__*/_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n list = new Array(len);\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n return list;\n});\nexport default times;","import _curry2 from './internal/_curry2.js';\nimport always from './always.js';\nimport times from './times.js';\n\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\nvar repeat = /*#__PURE__*/_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\nexport default repeat;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\nvar replace = /*#__PURE__*/_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\nexport default replace;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.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 {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\nvar scan = /*#__PURE__*/_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n return result;\n});\nexport default scan;","import _curry2 from './internal/_curry2.js';\nimport ap from './ap.js';\nimport map from './map.js';\nimport prepend from './prepend.js';\nimport reduceRight from './reduceRight.js';\n\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\nvar sequence = /*#__PURE__*/_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\nexport default sequence;","import _curry3 from './internal/_curry3.js';\nimport always from './always.js';\nimport over from './over.js';\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\nvar set = /*#__PURE__*/_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\nexport default set;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\nvar sort = /*#__PURE__*/_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\nexport default sort;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\nvar sortBy = /*#__PURE__*/_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\nexport default sortBy;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\nvar sortWith = /*#__PURE__*/_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n return result;\n });\n});\nexport default sortWith;","import invoker from './invoker.js';\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `str`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\nvar split = /*#__PURE__*/invoker(1, 'split');\nexport default split;","import _curry2 from './internal/_curry2.js';\nimport length from './length.js';\nimport slice from './slice.js';\n\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\nvar splitAt = /*#__PURE__*/_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\nexport default splitAt;","import _curry2 from './internal/_curry2.js';\nimport slice from './slice.js';\n\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\nvar splitEvery = /*#__PURE__*/_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n var result = [];\n var idx = 0;\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n return result;\n});\nexport default splitEvery;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\nvar splitWhen = /*#__PURE__*/_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\nexport default splitWhen;","import _curry2 from './internal/_curry2.js';\nimport equals from './equals.js';\nimport take from './take.js';\n\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\nvar startsWith = /*#__PURE__*/_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\nexport default startsWith;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\nvar subtract = /*#__PURE__*/_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\nexport default subtract;","import _curry2 from './internal/_curry2.js';\nimport concat from './concat.js';\nimport difference from './difference.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\nvar symmetricDifference = /*#__PURE__*/_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\nexport default symmetricDifference;","import _curry3 from './internal/_curry3.js';\nimport concat from './concat.js';\nimport differenceWith from './differenceWith.js';\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\nvar symmetricDifferenceWith = /*#__PURE__*/_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\nexport default symmetricDifferenceWith;","import _curry2 from './internal/_curry2.js';\nimport slice from './slice.js';\n\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\nvar takeLastWhile = /*#__PURE__*/_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n return slice(idx + 1, Infinity, xs);\n});\nexport default takeLastWhile;","import _curry2 from './_curry2.js';\nimport _reduced from './_reduced.js';\nimport _xfBase from './_xfBase.js';\n\nvar XTakeWhile = /*#__PURE__*/function () {\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile = /*#__PURE__*/_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\nexport default _xtakeWhile;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xtakeWhile from './internal/_xtakeWhile.js';\nimport slice from './slice.js';\n\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\nvar takeWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n return slice(0, idx, xs);\n}));\nexport default takeWhile;","import _curry2 from './_curry2.js';\nimport _xfBase from './_xfBase.js';\n\nvar XTap = /*#__PURE__*/function () {\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap = /*#__PURE__*/_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\nexport default _xtap;","import _curry2 from './internal/_curry2.js';\nimport _dispatchable from './internal/_dispatchable.js';\nimport _xtap from './internal/_xtap.js';\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\nvar tap = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\nexport default tap;","import _cloneRegExp from './internal/_cloneRegExp.js';\nimport _curry2 from './internal/_curry2.js';\nimport _isRegExp from './internal/_isRegExp.js';\nimport toString from './toString.js';\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nexport default test;","export default function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}","import _curry2 from './internal/_curry2.js';\nimport _assertPromise from './internal/_assertPromise.js';\n\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.then(R.pick(['firstName', 'lastName']))\n * );\n */\nvar then = /*#__PURE__*/_curry2(function then(f, p) {\n _assertPromise('then', p);\n\n return p.then(f);\n});\nexport default then;","import invoker from './invoker.js';\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\nvar toLower = /*#__PURE__*/invoker(0, 'toLowerCase');\nexport default toLower;","import _curry1 from './internal/_curry1.js';\nimport _has from './internal/_has.js';\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\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.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\nvar toPairs = /*#__PURE__*/_curry1(function toPairs(obj) {\n var pairs = [];\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n return pairs;\n});\nexport default toPairs;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\nvar toPairsIn = /*#__PURE__*/_curry1(function toPairsIn(obj) {\n var pairs = [];\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n return pairs;\n});\nexport default toPairsIn;","import invoker from './invoker.js';\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\nvar toUpper = /*#__PURE__*/invoker(0, 'toUpperCase');\nexport default toUpper;","import _reduce from './internal/_reduce.js';\nimport _xwrap from './internal/_xwrap.js';\nimport curryN from './curryN.js';\n\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\nvar transduce = /*#__PURE__*/curryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nexport default transduce;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\nvar transpose = /*#__PURE__*/_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n result[j].push(innerlist[j]);\n j += 1;\n }\n i += 1;\n }\n return result;\n});\nexport default transpose;","import _curry3 from './internal/_curry3.js';\nimport map from './map.js';\nimport sequence from './sequence.js';\n\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\nvar traverse = /*#__PURE__*/_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\nexport default traverse;","import _curry1 from './internal/_curry1.js';\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? /*#__PURE__*/_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) : /*#__PURE__*/_curry1(function trim(str) {\n return str.trim();\n});\nexport default trim;","import _arity from './internal/_arity.js';\nimport _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n `` */\nvar tryCatch = /*#__PURE__*/_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\nexport default tryCatch;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\nvar unapply = /*#__PURE__*/_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\nexport default unapply;","import _curry1 from './internal/_curry1.js';\nimport nAry from './nAry.js';\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\nvar unary = /*#__PURE__*/_curry1(function unary(fn) {\n return nAry(1, fn);\n});\nexport default unary;","import _curry2 from './internal/_curry2.js';\nimport curryN from './curryN.js';\n\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\nvar uncurryN = /*#__PURE__*/_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n return value;\n });\n});\nexport default uncurryN;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\nvar unfold = /*#__PURE__*/_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n return result;\n});\nexport default unfold;","import _concat from './internal/_concat.js';\nimport _curry2 from './internal/_curry2.js';\nimport compose from './compose.js';\nimport uniq from './uniq.js';\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\nvar union = /*#__PURE__*/_curry2( /*#__PURE__*/compose(uniq, _concat));\nexport default union;","import _includesWith from './internal/_includesWith.js';\nimport _curry2 from './internal/_curry2.js';\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\nvar uniqWith = /*#__PURE__*/_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n while (idx < len) {\n item = list[idx];\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n idx += 1;\n }\n return result;\n});\nexport default uniqWith;","import _concat from './internal/_concat.js';\nimport _curry3 from './internal/_curry3.js';\nimport uniqWith from './uniqWith.js';\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\nvar unionWith = /*#__PURE__*/_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\nexport default unionWith;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\nvar unless = /*#__PURE__*/_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\nexport default unless;","import _identity from './internal/_identity.js';\nimport chain from './chain.js';\n\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\nvar unnest = /*#__PURE__*/chain(_identity);\nexport default unnest;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\nvar until = /*#__PURE__*/_curry3(function until(pred, fn, init) {\n var val = init;\n while (!pred(val)) {\n val = fn(val);\n }\n return val;\n});\nexport default until;","import _curry1 from './internal/_curry1.js';\n\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * 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.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\nvar valuesIn = /*#__PURE__*/_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n return vs;\n});\nexport default valuesIn;","import _curry2 from './internal/_curry2.js';\n\n// `Const` is a functor that effectively ignores the function given to `map`.\nvar Const = function (x) {\n return { value: x, 'fantasy-land/map': function () {\n return this;\n } };\n};\n\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\nvar view = /*#__PURE__*/_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\nexport default view;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\nvar when = /*#__PURE__*/_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\nexport default when;","import _curry2 from './internal/_curry2.js';\nimport _has from './internal/_has.js';\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\nvar where = /*#__PURE__*/_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n return true;\n});\nexport default where;","import _curry2 from './internal/_curry2.js';\nimport equals from './equals.js';\nimport map from './map.js';\nimport where from './where.js';\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\nvar whereEq = /*#__PURE__*/_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\nexport default whereEq;","import _includes from './internal/_includes.js';\nimport _curry2 from './internal/_curry2.js';\nimport flip from './flip.js';\nimport reject from './reject.js';\n\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\nvar without = /*#__PURE__*/_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\nexport default without;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\nvar xprod = /*#__PURE__*/_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n while (idx < ilen) {\n j = 0;\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n idx += 1;\n }\n return result;\n});\nexport default xprod;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\nvar zip = /*#__PURE__*/_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n return rv;\n});\nexport default zip;","import _curry2 from './internal/_curry2.js';\n\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\nvar zipObj = /*#__PURE__*/_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n return out;\n});\nexport default zipObj;","import _curry3 from './internal/_curry3.js';\n\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\nvar zipWith = /*#__PURE__*/_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n return rv;\n});\nexport default zipWith;","import curryN from './curryN.js';\nimport _curry1 from './internal/_curry1.js';\n\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\nvar thunkify = /*#__PURE__*/_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\nexport default thunkify;","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","/** @license React v17.0.2\n * react-dom.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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;eCb||(a.current=Bb[Cb],Bb[Cb]=null,Cb--)}function z(a,b){Cb++;Bb[Cb]=a.current;a.current=b}\nvar Db={},A={current:Db},B={current:!1},Eb=Db;function Fb(a,b){var c=a.type.contextTypes;if(!c)return Db;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function C(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gb(a){y(B,a);y(A,a)}\nfunction Hb(a){y(B,a);y(A,a)}function Ib(a,b,c){if(A.current!==Db)throw Error(n(168));z(A,b,a);z(B,c,a)}function Jb(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(n(108,ta(b)||\"Unknown\",e));return aa({},c,{},d)}function Kb(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Db;Eb=A.current;z(A,b,a);z(B,B.current,a);return!0}\nfunction Lb(a,b,c){var d=a.stateNode;if(!d)throw Error(n(169));c?(b=Jb(a,b,Eb),d.__reactInternalMemoizedMergedChildContext=b,y(B,a),y(A,a),z(A,b,a)):y(B,a);z(B,c,a)}\nvar Mb=m.unstable_runWithPriority,Nb=m.unstable_scheduleCallback,Ob=m.unstable_cancelCallback,Pb=m.unstable_shouldYield,Qb=m.unstable_requestPaint,Tb=m.unstable_now,Ub=m.unstable_getCurrentPriorityLevel,Vb=m.unstable_ImmediatePriority,Wb=m.unstable_UserBlockingPriority,Xb=m.unstable_NormalPriority,Yb=m.unstable_LowPriority,Zb=m.unstable_IdlePriority,$b={},ac=void 0!==Qb?Qb:function(){},bc=null,cc=null,dc=!1,ec=Tb(),E=1E4>ec?Tb:function(){return Tb()-ec};\nfunction fc(){switch(Ub()){case Vb:return 99;case Wb:return 98;case Xb:return 97;case Yb:return 96;case Zb:return 95;default:throw Error(n(332));}}function gc(a){switch(a){case 99:return Vb;case 98:return Wb;case 97:return Xb;case 96:return Yb;case 95:return Zb;default:throw Error(n(332));}}function hc(a,b){a=gc(a);return Mb(a,b)}function ic(a,b,c){a=gc(a);return Nb(a,b,c)}function jc(a){null===bc?(bc=[a],cc=Nb(Vb,kc)):bc.push(a);return $b}function F(){if(null!==cc){var a=cc;cc=null;Ob(a)}kc()}\nfunction kc(){if(!dc&&null!==bc){dc=!0;var a=0;try{var b=bc;hc(99,function(){for(;a=b&&(Bc=!0),a.firstContext=null)}function Cc(a,b){if(vc!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)vc=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===uc){if(null===tc)throw Error(n(308));uc=b;tc.dependencies={expirationTime:0,firstContext:b,responders:null}}else uc=uc.next=b}return Pa?a._currentValue:a._currentValue2}var Dc=!1;\nfunction Ec(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Fc(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Gc(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Hc(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Ic(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=Ec(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=Ec(a.memoizedState),e=c.updateQueue=Ec(c.memoizedState)):d=a.updateQueue=Fc(e):null===e&&(e=c.updateQueue=Fc(d));null===e||d===e?Hc(d,b):null===d.lastUpdate||null===e.lastUpdate?(Hc(d,b),Hc(e,b)):(Hc(d,b),e.lastUpdate=b)}\nfunction Jc(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=Ec(a.memoizedState):Kc(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Kc(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Fc(b));return b}\nfunction Lc(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return aa({},d,e);case 2:Dc=!0}return d}\nfunction Nc(a,b,c,d,e){Dc=!1;b=Kc(a,b);for(var f=b.baseState,g=null,l=0,h=b.firstUpdate,k=f;null!==h;){var p=h.expirationTime;pr?(p=t,t=null):p=t.sibling;var v=x(e,t,h[r],l);if(null===v){null===t&&(t=p);break}a&&\nt&&null===v.alternate&&b(e,t);g=f(v,g,r);null===w?k=v:w.sibling=v;w=v;t=p}if(r===h.length)return c(e,t),k;if(null===t){for(;rw?(p=r,r=null):p=r.sibling;var N=x(e,r,v.value,l);if(null===N){null===r&&(r=p);break}a&&r&&null===N.alternate&&b(e,r);g=f(N,g,w);null===t?k=N:t.sibling=N;t=N;r=p}if(v.done)return c(e,r),k;if(null===r){for(;!v.done;w++,v=h.next())v=D(e,v.value,l),null!==v&&(g=f(v,g,w),null===t?k=v:t.sibling=v,t=v);return k}for(r=d(e,r);!v.done;w++,v=h.next())v=K(r,e,w,v.value,l),null!==v&&(a&&null!==\nv.alternate&&r.delete(null===v.key?w:v.key),g=f(v,g,w),null===t?k=v:t.sibling=v,t=v);a&&r.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ea&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ca:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ea:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ea?f.props.children:f.props,h);d.ref=cd(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===ea?(d=jd(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=hd(f.type,f.key,f.props,null,a.mode,h),h.ref=cd(a,d,f),h.return=a,a=h)}return g(a);case da:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=id(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=gd(f,a.mode,h),d.return=a,a=d),g(a);if(bd(f))return Ha(a,d,f,h);if(ra(f))return O(a,d,f,h);l&&dd(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(n(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var kd=ed(!0),ld=ed(!1),md={},H={current:md},nd={current:md},od={current:md};function pd(a){if(a===md)throw Error(n(174));return a}\nfunction qd(a,b){z(od,b,a);z(nd,a,a);z(H,md,a);b=Aa(b);y(H,a);z(H,b,a)}function rd(a){y(H,a);y(nd,a);y(od,a)}function sd(a){var b=pd(od.current),c=pd(H.current);b=Ba(c,a.type,b);c!==b&&(z(nd,a,a),z(H,b,a))}function td(a){nd.current===a&&(y(H,a),y(nd,a))}var I={current:0};\nfunction ud(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||qb(c)||rb(c)))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function vd(a,b){return{responder:a,props:b}}\nvar wd=q.ReactCurrentDispatcher,J=q.ReactCurrentBatchConfig,xd=0,yd=null,L=null,zd=null,Ad=null,M=null,Bd=null,Cd=0,Dd=null,Ed=0,Fd=!1,Gd=null,Hd=0;function P(){throw Error(n(321));}function Id(a,b){if(null===b)return!1;for(var c=0;cCd&&(Cd=p,Pc(Cd))):(Oc(p,h.suspenseConfig),f=h.eagerReducer===a?h.eagerState:a(f,h.action));g=h;h=h.next}while(null!==h&&h!==d);k||(l=g,e=f);oc(f,b.memoizedState)||(Bc=!0);b.memoizedState=f;b.baseUpdate=l;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Sd(a){var b=Od();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Qd,lastRenderedState:a};a=a.dispatch=Td.bind(null,yd,a);return[b.memoizedState,a]}function Ud(a){return Rd(Qd,a)}function Vd(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===Dd?(Dd={lastEffect:null},Dd.lastEffect=a.next=a):(b=Dd.lastEffect,null===b?Dd.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,Dd.lastEffect=a));return a}\nfunction Wd(a,b,c,d){var e=Od();Ed|=a;e.memoizedState=Vd(b,c,void 0,void 0===d?null:d)}function Xd(a,b,c,d){var e=Pd();d=void 0===d?null:d;var f=void 0;if(null!==L){var g=L.memoizedState;f=g.destroy;if(null!==d&&Id(d,g.deps)){Vd(0,c,f,d);return}}Ed|=a;e.memoizedState=Vd(b,c,f,d)}function Yd(a,b){return Wd(516,192,a,b)}function Zd(a,b){return Xd(516,192,a,b)}\nfunction $d(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function ae(){}function be(a,b){Od().memoizedState=[a,void 0===b?null:b];return a}function ce(a,b){var c=Pd();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Id(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Td(a,b,c){if(!(25>Hd))throw Error(n(301));var d=a.alternate;if(a===yd||null!==d&&d===yd)if(Fd=!0,a={expirationTime:xd,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Gd&&(Gd=new Map),c=Gd.get(b),void 0===c)Gd.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=G(),f=Sc.suspense;e=Vc(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var l=g.next;null!==l&&(f.next=\nl);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var h=b.lastRenderedState,k=d(h,c);f.eagerReducer=d;f.eagerState=k;if(oc(k,h))return}catch(p){}finally{}Wc(a,e)}}\nvar Md={readContext:Cc,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useResponder:P,useDeferredValue:P,useTransition:P},Kd={readContext:Cc,useCallback:be,useContext:Cc,useEffect:Yd,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wd(4,36,$d.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wd(4,36,a,b)},useMemo:function(a,b){var c=Od();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Od();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Td.bind(null,yd,a);return[d.memoizedState,a]},useRef:function(a){var b=Od();a={current:a};return b.memoizedState=a},useState:Sd,useDebugValue:ae,useResponder:vd,useDeferredValue:function(a,b){var c=Sd(a),d=c[0],e=c[1];Yd(function(){m.unstable_next(function(){var c=J.suspense;J.suspense=void 0===b?null:b;try{e(a)}finally{J.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Sd(!1),c=b[0],d=b[1];return[be(function(b){d(!0);m.unstable_next(function(){var c=J.suspense;J.suspense=void 0===a?null:a;try{d(!1),b()}finally{J.suspense=c}})},[a,c]),c]}},Ld={readContext:Cc,useCallback:ce,useContext:Cc,useEffect:Zd,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Xd(4,36,$d.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Xd(4,36,a,b)},useMemo:function(a,b){var c=Pd();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Id(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Rd,useRef:function(){return Pd().memoizedState},useState:Ud,useDebugValue:ae,useResponder:vd,useDeferredValue:function(a,b){var c=Ud(a),d=c[0],e=c[1];Zd(function(){m.unstable_next(function(){var c=J.suspense;J.suspense=void 0===b?null:b;try{e(a)}finally{J.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Ud(!1),c=b[0],d=b[1];return[ce(function(b){d(!0);m.unstable_next(function(){var c=\nJ.suspense;J.suspense=void 0===a?null:a;try{d(!1),b()}finally{J.suspense=c}})},[a,c]),c]}},de=null,ee=null,fe=!1;function ge(a,b){var c=he(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction ie(a,b){switch(a.tag){case 5:return b=ob(b,a.type,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 6:return b=pb(b,a.pendingProps),null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}function je(a){if(fe){var b=ee;if(b){var c=b;if(!ie(a,b)){b=sb(c);if(!b||!ie(a,b)){a.effectTag=a.effectTag&-1025|2;fe=!1;de=a;return}ge(de,c)}de=a;ee=tb(b)}else a.effectTag=a.effectTag&-1025|2,fe=!1,de=a}}\nfunction ke(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;de=a}function ne(a){if(!Sa||a!==de)return!1;if(!fe)return ke(a),fe=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Ja(b,a.memoizedProps))for(b=ee;b;)ge(a,b),b=sb(b);ke(a);if(13===a.tag){if(!Sa)throw Error(n(316));a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(n(317));ee=wb(a)}else ee=de?sb(a.stateNode):null;return!0}function oe(){Sa&&(ee=de=null,fe=!1)}var pe=q.ReactCurrentOwner,Bc=!1;\nfunction Q(a,b,c,d){b.child=null===a?ld(b,null,c,d):kd(b,a.child,c,d)}function qe(a,b,c,d,e){c=c.render;var f=b.ref;Ac(b,e);d=Jd(a,b,c,d,f,e);if(null!==a&&!Bc)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),re(a,b,e);b.effectTag|=1;Q(a,b,d,e);return b.child}\nfunction se(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!te(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ue(a,b,g,d,e,f);a=hd(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Jf.set(a,b)))}}\nfunction Nf(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=jc(Of.bind(null,a));else{var b=Rf(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=G();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==$b&&Ob(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?jc(Of.bind(null,a)):ic(d,Tf.bind(null,a),{timeout:10*(1073741821-b)-E()});a.callbackNode=b}}}\nfunction Tf(a,b){Mf=0;if(b)return b=G(),Uf(a,b),Z(a),null;var c=Rf(a);if(0!==c){b=a.callbackNode;if((T&(S|sf))!==R)throw Error(n(327));Vf();a===U&&c===W||Wf(a,c);if(null!==V){var d=T;T|=S;var e=Xf(a);do try{Yf();break}catch(l){Zf(a,l)}while(1);wc();T=d;pf.current=e;if(X===uf)throw b=zf,Wf(a,c),Pf(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case tf:case uf:throw Error(n(345));case vf:Uf(a,2=c){a.lastPingedTime=c;Wf(a,c);break}}f=Rf(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Ma(ag.bind(null,a),e);break}ag(a);break;case xf:Pf(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=$f(e));if(Ef&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Wf(a,c);break}e=Rf(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==Bf?d=10*(1073741821-Bf)-E():1073741823===Af?d=0:(d=10*(1073741821-Af)-5E3,e=E(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*of(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=E()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Ab(e))}X!==yf&&(X=vf);f=Ne(f,e);h=d;do{switch(h.tag){case 3:g=f;h.effectTag|=4096;h.expirationTime=b;var r=jf(h,g,b);Jc(h,r);break a;case 1:g=f;var t=h.type,N=h.stateNode;if(0===(h.effectTag&64)&&(\"function\"===typeof t.getDerivedStateFromError||null!==N&&\"function\"===typeof N.componentDidCatch&&\n(null===nf||!nf.has(N)))){h.effectTag|=4096;h.expirationTime=b;var Mc=mf(h,g,b);Jc(h,Mc);break a}}h=h.return}while(null!==h)}V=gg(V)}catch(Rb){b=Rb;continue}break}while(1)}function Xf(){var a=pf.current;pf.current=Md;return null===a?Md:a}function Oc(a,b){aDf&&(Df=a)}function bg(){for(;null!==V;)V=hg(V)}function Yf(){for(;null!==V&&!Pb();)V=hg(V)}\nfunction hg(a){var b=ig(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=gg(a));qf.current=null;return b}\nfunction gg(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W,e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:C(b.type)&&Gb(b);break;case 3:rd(b);Hb(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ne(b)&&Fe(b);He(b);break;case 5:td(b);var f=pd(od.current);d=b.type;if(null!==c&&null!=b.stateNode)Ie(c,b,d,e,f),c.ref!==b.ref&&(b.effectTag|=128);else if(e){c=pd(H.current);\nif(ne(b)){e=b;if(!Sa)throw Error(n(175));c=ub(e.stateNode,e.type,e.memoizedProps,f,c,e);e.updateQueue=c;c=null!==c?!0:!1;c&&Fe(b)}else{var g=Ea(d,e,f,c,b);Ge(g,b,!1,!1);b.stateNode=g;Ga(g,d,e,f,c)&&Fe(b)}null!==b.ref&&(b.effectTag|=128)}else if(null===b.stateNode)throw Error(n(166));break;case 6:if(c&&null!=b.stateNode)Je(c,b,c.memoizedProps,e);else{if(\"string\"!==typeof e&&null===b.stateNode)throw Error(n(166));c=pd(od.current);f=pd(H.current);if(ne(b)){c=b;if(!Sa)throw Error(n(176));(c=vb(c.stateNode,\nc.memoizedProps,c))&&Fe(b)}else b.stateNode=La(e,c,f,b)}break;case 11:break;case 13:y(I,b);e=b.memoizedState;if(0!==(b.effectTag&64)){b.expirationTime=d;break a}e=null!==e;f=!1;null===c?void 0!==b.memoizedProps.fallback&&ne(b):(d=c.memoizedState,f=null!==d,e||null===d||(d=c.child.sibling,null!==d&&(g=b.firstEffect,null!==g?(b.firstEffect=d,d.nextEffect=g):(b.firstEffect=b.lastEffect=d,d.nextEffect=null),d.effectTag=8)));if(e&&!f&&0!==(b.mode&2))if(null===c&&!0!==b.memoizedProps.unstable_avoidThisFallback||\n0!==(I.current&1))X===tf&&(X=wf);else{if(X===tf||X===wf)X=xf;0!==Df&&null!==U&&(Pf(U,W),Qf(U,Df))}Ra&&e&&(b.effectTag|=4);Qa&&(e||f)&&(b.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:rd(b);He(b);break;case 10:yc(b);break;case 9:break;case 14:break;case 17:C(b.type)&&Gb(b);break;case 19:y(I,b);e=b.memoizedState;if(null===e)break;f=0!==(b.effectTag&64);g=e.rendering;if(null===g)if(f)Le(e,!1);else{if(X!==tf||null!==c&&0!==(c.effectTag&64))for(c=b.child;null!==c;){g=ud(c);if(null!==\ng){b.effectTag|=64;Le(e,!1);c=g.updateQueue;null!==c&&(b.updateQueue=c,b.effectTag|=4);null===e.lastEffect&&(b.firstEffect=null);b.lastEffect=e.lastEffect;c=d;for(e=b.child;null!==e;)f=e,d=c,f.effectTag&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childExpirationTime=0,f.expirationTime=d,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null):(f.childExpirationTime=g.childExpirationTime,f.expirationTime=g.expirationTime,\nf.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,d=g.dependencies,f.dependencies=null===d?null:{expirationTime:d.expirationTime,firstContext:d.firstContext,responders:d.responders}),e=e.sibling;z(I,I.current&1|2,b);b=b.child;break a}c=c.sibling}}else{if(!f)if(c=ud(g),null!==c){if(b.effectTag|=64,f=!0,c=c.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),Le(e,!0),null===e.tail&&\"hidden\"===e.tailMode){b=b.lastEffect=e.lastEffect;null!==\nb&&(b.nextEffect=null);break}}else E()>e.tailExpiration&&1e&&(e=d),g>e&&(e=g),f=f.sibling;c.childExpirationTime=e}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=V.firstEffect),a.lastEffect=V.lastEffect),1a?b:a}function ag(a){var b=fc();hc(99,jg.bind(null,a,b));return null}\nfunction jg(a,b){Vf();if((T&(S|sf))!==R)throw Error(n(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(n(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=$f(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=d-1);d<=a.lastPingedTime&&\n(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1=c)return Be(a,b,c);z(I,I.current&\n1,b);b=re(a,b,c);return null!==b?b.sibling:null}z(I,I.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Ee(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);z(I,I.current,b);if(!d)return null}return re(a,b,c)}Bc=!1}}else Bc=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Fb(b,A.current);Ac(b,c);e=Jd(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Nd();if(C(d)){var f=!0;Kb(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Uc(b,d,g,a);e.updater=Xc;b.stateNode=e;e._reactInternalFiber=b;ad(b,d,a,c);b=ye(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;sa(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=og(e);a=rc(e,a);switch(f){case 0:b=ve(null,b,e,a,c);break;case 1:b=xe(null,b,e,a,c);break;case 11:b=qe(null,b,e,a,c);break;case 14:b=se(null,b,e,rc(e.type,a),d,c);break;default:throw Error(n(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:rc(d,e),ve(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:rc(d,e),xe(a,b,d,e,c);case 3:ze(b);d=b.updateQueue;if(null===d)throw Error(n(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Nc(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)oe(),b=re(a,b,c);else{if(e=b.stateNode.hydrate)Sa?(ee=tb(b.stateNode.containerInfo),de=b,e=fe=!0):e=!1;if(e)for(c=ld(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else Q(a,b,d,c),oe();b=b.child}return b;case 5:return sd(b),null===a&&je(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ja(d,e)?g=null:null!==f&&Ja(d,f)&&(b.effectTag|=16),we(a,b),b.mode&4&&1!==c&&Ka(d,e)?(b.expirationTime=\nb.childExpirationTime=1,b=null):(Q(a,b,g,c),b=b.child),b;case 6:return null===a&&je(b),null;case 13:return Be(a,b,c);case 4:return qd(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=kd(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:rc(d,e),qe(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;case 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return Q(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;xc(b,f);if(null!==g){var l=g.value;f=oc(l,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(l,f):1073741823)|0;if(0===f){if(g.children===e.children&&!B.current){b=re(a,b,c);break a}}else for(l=b.child,null!==l&&(l.return=b);null!==l;){var h=l.dependencies;if(null!==h){g=l.child;for(var k=h.firstContext;null!==k;){if(k.context===d&&0!==(k.observedBits&f)){1===l.tag&&(k=Gc(c,null),k.tag=2,Ic(l,k));l.expirationTime=b&&a<=b}function Pf(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Qf(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Uf(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction sg(a){var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(n(188));throw Error(n(268,Object.keys(a)));}a=xa(b);return null===a?null:a.stateNode}function tg(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=H};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125L(n,c))void 0!==r&&0>L(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>L(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function L(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var O=[],P=[],Q=1,R=null,S=3,T=!1,U=!1,V=!1;\nfunction W(a){for(var b=M(P);null!==b;){if(null===b.callback)N(P);else if(b.startTime<=a)N(P),b.sortIndex=b.expirationTime,K(O,b);else break;b=M(P)}}function X(a){V=!1;W(a);if(!U)if(null!==M(O))U=!0,f(Y);else{var b=M(P);null!==b&&g(X,b.startTime-a)}}\nfunction Y(a,b){U=!1;V&&(V=!1,h());T=!0;var c=S;try{W(b);for(R=M(O);null!==R&&(!(R.expirationTime>b)||a&&!k());){var d=R.callback;if(null!==d){R.callback=null;S=R.priorityLevel;var e=d(R.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?R.callback=e:R===M(O)&&N(O);W(b)}else N(O);R=M(O)}if(null!==R)var m=!0;else{var n=M(P);null!==n&&g(X,n.startTime-b);m=!1}return m}finally{R=null,S=c,T=!1}}\nfunction Z(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var aa=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=S;S=a;try{return b()}finally{S=c}};\nexports.unstable_next=function(a){switch(S){case 1:case 2:case 3:var b=3;break;default:b=S}var c=S;S=b;try{return a()}finally{S=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,K(P,a),null===M(O)&&a===M(P)&&(V?h():V=!0,g(X,e-d))):(a.sortIndex=c,K(O,a),U||T||(U=!0,f(Y)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=S;return function(){var c=S;S=b;try{return a.apply(this,arguments)}finally{S=c}}};exports.unstable_getCurrentPriorityLevel=function(){return S};exports.unstable_shouldYield=function(){var a=exports.unstable_now();W(a);var b=M(O);return b!==R&&null!==R&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime= 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[\"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;\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;","\"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 && _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;\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.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.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 = exports.safePreventDefault = 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 safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\n\nexports.safePreventDefault = safePreventDefault;\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 = 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 lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\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 = lazyLoadedList.concat(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 if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\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\" && safePreventDefault(e);\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 safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\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\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\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 safePreventDefault(e);\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) safePreventDefault(e);\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 safePreventDefault(e);\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;","!function(t,r){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=r(require(\"react\"),require(\"yup\")):\"function\"==typeof define&&define.amd?define([\"react\",\"yup\"],r):\"object\"==typeof exports?exports.EdukaForm=r(require(\"react\"),require(\"yup\")):t.EdukaForm=r(t.react,t.yup)}(this,(function(t,r){return function(t){var r={};function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:n})},e.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},e.t=function(t,r){if(1&r&&(t=e(t)),8&r)return t;if(4&r&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&r&&\"string\"!=typeof t)for(var o in t)e.d(n,o,function(r){return t[r]}.bind(null,o));return n},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,\"a\",r),r},e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},e.p=\"\",e(e.s=11)}([function(r,e){r.exports=t},function(t,r,e){\"use strict\";var n=e(3),o=\"object\"==typeof self&&self&&self.Object===Object&&self,a=n.a||o||Function(\"return this\")();r.a=a},function(t,r,e){\"use strict\";(function(t){var n=e(3),o=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,a=o&&\"object\"==typeof t&&t&&!t.nodeType&&t,u=a&&a.exports===o&&n.a.process,c=function(){try{var t=a&&a.require&&a.require(\"util\").types;return t||u&&u.binding&&u.binding(\"util\")}catch(t){}}();r.a=c}).call(this,e(5)(t))},function(t,r,e){\"use strict\";(function(t){var e=\"object\"==typeof t&&t&&t.Object===Object&&t;r.a=e}).call(this,e(10))},function(t,r,e){\"use strict\";(function(t){var n=e(1),o=e(8),a=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,u=a&&\"object\"==typeof t&&t&&!t.nodeType&&t,c=u&&u.exports===a?n.a.Buffer:void 0,i=(c?c.isBuffer:void 0)||o.a;r.a=i}).call(this,e(5)(t))},function(t,r){t.exports=function(t){if(!t.webpackPolyfill){var r=Object.create(t);r.children||(r.children=[]),Object.defineProperty(r,\"loaded\",{enumerable:!0,get:function(){return r.l}}),Object.defineProperty(r,\"id\",{enumerable:!0,get:function(){return r.i}}),Object.defineProperty(r,\"exports\",{enumerable:!0}),r.webpackPolyfill=1}return r}},function(t,e){t.exports=r},,function(t,r,e){\"use strict\";r.a=function(){return!1}},function(t,r,e){\"use strict\";(function(t){var n=e(1),o=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,a=o&&\"object\"==typeof t&&t&&!t.nodeType&&t,u=a&&a.exports===o?n.a.Buffer:void 0,c=u?u.allocUnsafe:void 0;r.a=function(t,r){if(r)return t.slice();var e=t.length,n=c?c(e):new t.constructor(e);return t.copy(n),n}}).call(this,e(5)(t))},function(t,r){var e;e=function(){return this}();try{e=e||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(e=window)}t.exports=e},function(t,r,e){\"use strict\";e.r(r),e.d(r,\"useForm\",(function(){return ze})),e.d(r,\"useFormBag\",(function(){return Ve}));var n=e(0),o=e(6),a=Array.isArray,u=e(1),c=u.a.Symbol,i=Object.prototype,f=i.hasOwnProperty,s=i.toString,l=c?c.toStringTag:void 0;var p=function(t){var r=f.call(t,l),e=t[l];try{t[l]=void 0;var n=!0}catch(t){}var o=s.call(t);return n&&(r?t[l]=e:delete t[l]),o},y=Object.prototype.toString;var v=function(t){return y.call(t)},d=c?c.toStringTag:void 0;var b=function(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":d&&d in Object(t)?p(t):v(t)};var h=function(t){return null!=t&&\"object\"==typeof t};var j=function(t){return\"symbol\"==typeof t||h(t)&&\"[object Symbol]\"==b(t)},m=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,g=/^\\w*$/;var _=function(t,r){if(a(t))return!1;var e=typeof t;return!(\"number\"!=e&&\"symbol\"!=e&&\"boolean\"!=e&&null!=t&&!j(t))||(g.test(t)||!m.test(t)||null!=r&&t in Object(r))};var w=function(t){var r=typeof t;return null!=t&&(\"object\"==r||\"function\"==r)};var O,A=function(t){if(!w(t))return!1;var r=b(t);return\"[object Function]\"==r||\"[object GeneratorFunction]\"==r||\"[object AsyncFunction]\"==r||\"[object Proxy]\"==r},S=u.a[\"__core-js_shared__\"],x=(O=/[^.]+$/.exec(S&&S.keys&&S.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+O:\"\";var E=function(t){return!!x&&x in t},M=Function.prototype.toString;var P=function(t){if(null!=t){try{return M.call(t)}catch(t){}try{return t+\"\"}catch(t){}}return\"\"},T=/^\\[object .+?Constructor\\]$/,I=Function.prototype,F=Object.prototype,k=I.toString,U=F.hasOwnProperty,z=RegExp(\"^\"+k.call(U).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");var V=function(t){return!(!w(t)||E(t))&&(A(t)?z:T).test(P(t))};var C=function(t,r){return null==t?void 0:t[r]};var $=function(t,r){var e=C(t,r);return V(e)?e:void 0},B=$(Object,\"create\");var D=function(){this.__data__=B?B(null):{},this.size=0};var N=function(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r},W=Object.prototype.hasOwnProperty;var q=function(t){var r=this.__data__;if(B){var e=r[t];return\"__lodash_hash_undefined__\"===e?void 0:e}return W.call(r,t)?r[t]:void 0},R=Object.prototype.hasOwnProperty;var L=function(t){var r=this.__data__;return B?void 0!==r[t]:R.call(r,t)};var G=function(t,r){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=B&&void 0===r?\"__lodash_hash_undefined__\":r,this};function H(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1};var et=function(t,r){var e=this.__data__,n=X(e,t);return n<0?(++this.size,e.push([t,r])):e[n][1]=r,this};function nt(t){var r=-1,e=null==t?0:t.length;for(this.clear();++r-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991},tr={};tr[\"[object Float32Array]\"]=tr[\"[object Float64Array]\"]=tr[\"[object Int8Array]\"]=tr[\"[object Int16Array]\"]=tr[\"[object Int32Array]\"]=tr[\"[object Uint8Array]\"]=tr[\"[object Uint8ClampedArray]\"]=tr[\"[object Uint16Array]\"]=tr[\"[object Uint32Array]\"]=!0,tr[\"[object Arguments]\"]=tr[\"[object Array]\"]=tr[\"[object ArrayBuffer]\"]=tr[\"[object Boolean]\"]=tr[\"[object DataView]\"]=tr[\"[object Date]\"]=tr[\"[object Error]\"]=tr[\"[object Function]\"]=tr[\"[object Map]\"]=tr[\"[object Number]\"]=tr[\"[object Object]\"]=tr[\"[object RegExp]\"]=tr[\"[object Set]\"]=tr[\"[object String]\"]=tr[\"[object WeakMap]\"]=!1;var rr=function(t){return h(t)&&Zt(t.length)&&!!tr[b(t)]};var er=function(t){return function(r){return t(r)}},nr=e(2),or=nr.a&&nr.a.isTypedArray,ar=or?er(or):rr,ur=Object.prototype.hasOwnProperty;var cr=function(t,r){var e=a(t),n=!e&&Xt(t),o=!e&&!n&&Object(Yt.a)(t),u=!e&&!n&&!o&&ar(t),c=e||n||o||u,i=c?Gt(t.length,String):[],f=i.length;for(var s in t)!r&&!ur.call(t,s)||c&&(\"length\"==s||o&&(\"offset\"==s||\"parent\"==s)||u&&(\"buffer\"==s||\"byteLength\"==s||\"byteOffset\"==s)||Ut(s,f))||i.push(s);return i},ir=Object.prototype;var fr=function(t){var r=t&&t.constructor;return t===(\"function\"==typeof r&&r.prototype||ir)};var sr=function(t,r){return function(e){return t(r(e))}},lr=sr(Object.keys,Object),pr=Object.prototype.hasOwnProperty;var yr=function(t){if(!fr(t))return lr(t);var r=[];for(var e in Object(t))pr.call(t,e)&&\"constructor\"!=e&&r.push(e);return r};var vr=function(t){return null!=t&&Zt(t.length)&&!A(t)};var dr=function(t){return vr(t)?cr(t):yr(t)};var br=function(t,r){return t&&Lt(r,dr(r),t)};var hr=function(t){var r=[];if(null!=t)for(var e in Object(t))r.push(e);return r},jr=Object.prototype.hasOwnProperty;var mr=function(t){if(!w(t))return hr(t);var r=fr(t),e=[];for(var n in t)(\"constructor\"!=n||!r&&jr.call(t,n))&&e.push(n);return e};var gr=function(t){return vr(t)?cr(t,!0):mr(t)};var _r=function(t,r){return t&&Lt(r,gr(r),t)},wr=e(9);var Or=function(t,r){var e=-1,n=t.length;for(r||(r=Array(n));++et.length)&&(r=t.length);for(var e=0,n=new Array(r);et.length)&&(r=t.length);for(var e=0,n=new Array(r);et.length)&&(r=t.length);for(var e=0,n=new Array(r);et.length)&&(r=t.length);for(var e=0,n=new Array(r);et.length)&&(r=t.length);for(var e=0,n=new Array(r);e2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(n,o){if(e&&b({type:\"touched/update\",payload:function(r){return Vt(r,t,!0),r}}),!c)return m({type:\"errors/reset\"}),n(Mt(r,t));var a;try{a=c.cast(r)}catch(t){return I({touch:!1}),\"TypeError\"!==t.name?o(\"Unhandled validation error\"):o(t)}c.validateAt(t,a,{abortEarly:!1}).then((function(r){return m({type:\"errors/update\",payload:function(r){return Vt(r,t,void 0),r}}),n(r)})).catch((function(r){if(\"ValidationError\"!==r.name)return o(\"Unhandled validateField error\");m({type:\"errors/update\",payload:function(e){return Vt(e,t,r.errors[0]),e}}),o(r)}))}))}}),[m,b,I,c]),k=n.useMemo((function(){return function(t,r,e){y((function(n){n({type:\"values/update\",payload:function(e){return Vt(e,t,r),e}}),e&&I({touch:!1})}))}}),[y,I]),U=n.useMemo((function(){return function(t,r){y({type:\"values/update\",payload:t}),r&&I({touch:!1})}}),[y,I]),z=n.useMemo((function(){return function(t,r,e){return\"function\"==typeof t?(b({type:\"touched/update\",payload:t}),void(r&&I({touch:!1}))):\"string\"==typeof t?(b((function(e,n){e({type:\"touched/update\",payload:function(e){return Vt(e,t,r),e}})})),void(e&&I({touch:!1}))):void 0}}),[b,I]),V=n.useCallback((function(t){var r=t.target.name,e=r.endsWith(\"[]\")?r.slice(0,-2):r;b((function(t,r){t({type:\"touched/update\",payload:function(t){return Vt(t,e,!0),t}})})),I({touch:!1})}),[b,I]),C=n.useCallback((function(t){var r=t.target,e=r.name,n=r.type,a=r.value;switch(S(!0),n){case\"checkbox\":var u,i=t.target.checked,f=e.endsWith(\"[]\"),s=f?e.slice(0,-2):e,l=Object(o.reach)(c,s),v=Mt(p(),s);if(Array.isArray(v))switch((u=v.reduce((function(t,r){return t[r]=!0,t}),{}))[a]=i,(u=Object.entries(u).filter((function(t){return t[1]})).map((function(t){return t[0]}))).length){case 0:u=\"array\"===l.type?[]:void 0;break;case 1:f||\"array\"===l.type||(u=u[0])}else u=void 0===v?\"array\"===l.type||f?[a]:\"on\"===a||a:\"boolean\"==typeof v?i:i?[v,a]:void 0;y((function(t,r){var e=r();Vt(e,s,u);try{var n=c.validateSyncAt(s,e);t({type:\"values/update\",payload:function(t){return Vt(t,s,n),t}}),F(s,e).then((function(t){})).catch((function(t){}))}catch(r){t({type:\"values/update\",payload:function(t){return Vt(t,s,u),t}}),F(s,e).then((function(t){})).catch((function(t){}))}}));break;case\"select-multiple\":var d=t.target.options,b=Array.from(d).filter((function(t){return t.selected})).map((function(t){return t.value}));y((function(t,r){var n=r();Vt(n,e,b),F(e,n).then((function(r){t({type:\"values/update\",payload:function(t){return Vt(t,e,b),t}})})).catch((function(r){t({type:\"values/update\",payload:function(t){return Vt(t,e,b),t}})}))}));break;case\"radio\":case\"select-one\":y((function(t,r){var n=r();Vt(n,e,a);var u=Object(o.reach)(c,e);t({type:\"values/update\",payload:function(t){if(\"number\"===u.type){var r=Number(a);Vt(t,e,Number.isNaN(r)?a:r)}else Vt(t,e,a);return t}}),F(e,n).then((function(t){})).catch((function(t){}))}));break;case\"email\":case\"color\":case\"date\":case\"datetime-local\":case\"time\":case\"month\":case\"password\":case\"search\":case\"tel\":case\"url\":case\"week\":case\"number\":case\"range\":case\"text\":case\"textarea\":default:y((function(t,r){var n=r();Vt(n,e,a),t({type:\"values/update\",payload:function(t){return Vt(t,e,a),t}}),F(e,n).then((function(t){})).catch((function(t){}))}))}}),[c,p,y,F]),$=n.useMemo((function(){return{onBlur:V,onChange:C}}),[V,C]),B=n.useMemo((function(){return function(t,r){return function(e){e.preventDefault();var n=e.currentTarget.closest(\"form\");return w(!0),I().then((function(e){var o=e.values,a=e.errors,u=e.yupErrors;return a?(w(!1),f&&function(t,r,e){var n=r.inner.reduce((function(t,r){return Vt(t,r.path,!0),t}),{});Array.from(t.elements).some((function(t){var o,a=null===(o=t.attributes.getNamedItem(\"name\"))||void 0===o?void 0:o.value;if(!a)return!1;if((a=a.endsWith(\"[]\")?a.slice(0,-2):a)&&Mt(n,a)){if(e&&e[a]){var u;switch(Te(e[a])){case\"string\":u=document.querySelector(\"\".concat(e[a]));break;case\"function\":u=e[a](r)}if(u)return u.focus(),!0}return t.focus(),!0}return!1}))}(n,u,s),r?r(a,p(),u):void 0):t(o)}))}}}),[I,f,s,p]),D=n.useMemo((function(){return{createSubmitHandler:B,field:$,getError:E,getErrors:j,getTouched:d,getValue:x,getValues:p,isChecked:P,isTouched:M,resetErrors:T,setDirty:S,setSubmitting:w,setTouched:z,setValue:k,setValues:U,validateForm:I,validateField:F}}),[B,$,E,j,d,x,p,P,M,T,S,w,z,k,U,I,F]),N=n.useMemo((function(){return function(t){var r=t.children;return n.createElement(Ue.Provider,{value:D},r)}}),[D]);return Object.assign({},D,{values:p(),errors:j(),touched:d(),isValid:0===Object.keys(j()).length,isSubmitting:_,isDirty:A,FormProvider:N})},Ve=function(){var t=n.useContext(Ue);if(!t)throw Error(\"useFormBag was called outside a FormProvider\");return t}}])}));\n//# sourceMappingURL=index.js.map","/** @license React v17.0.2\n * react.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 l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\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 finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\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\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","'use strict';\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\nvar $TypeError = TypeError;\n\nmodule.exports = function getPolyfill() {\n\tif (!supportsDescriptors) {\n\t\tthrow new $TypeError('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tif ((/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (descriptor && typeof descriptor.get === 'function' && typeof (/a/).dotAll === 'boolean') {\n\t\t\treturn descriptor.get;\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","/**\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","// Generated by CoffeeScript 1.7.1\n(function() {\n var key, val, _ref, _ref1;\n\n exports.EncodeStream = require('./src/EncodeStream');\n\n exports.DecodeStream = require('./src/DecodeStream');\n\n exports.Array = require('./src/Array');\n\n exports.LazyArray = require('./src/LazyArray');\n\n exports.Bitfield = require('./src/Bitfield');\n\n exports.Boolean = require('./src/Boolean');\n\n exports.Buffer = require('./src/Buffer');\n\n exports.Enum = require('./src/Enum');\n\n exports.Optional = require('./src/Optional');\n\n exports.Reserved = require('./src/Reserved');\n\n exports.String = require('./src/String');\n\n exports.Struct = require('./src/Struct');\n\n exports.VersionedStruct = require('./src/VersionedStruct');\n\n _ref = require('./src/Number');\n for (key in _ref) {\n val = _ref[key];\n exports[key] = val;\n }\n\n _ref1 = require('./src/Pointer');\n for (key in _ref1) {\n val = _ref1[key];\n exports[key] = val;\n }\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var ArrayT, NumberT, utils;\n\n NumberT = require('./Number').Number;\n\n utils = require('./utils');\n\n ArrayT = (function() {\n function ArrayT(type, length, lengthType) {\n this.type = type;\n this.length = length;\n this.lengthType = lengthType != null ? lengthType : 'count';\n }\n\n ArrayT.prototype.decode = function(stream, parent) {\n var ctx, i, length, pos, res, target, _i;\n pos = stream.pos;\n res = [];\n ctx = parent;\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n }\n if (this.length instanceof NumberT) {\n Object.defineProperties(res, {\n parent: {\n value: parent\n },\n _startOffset: {\n value: pos\n },\n _currentOffset: {\n value: 0,\n writable: true\n },\n _length: {\n value: length\n }\n });\n ctx = res;\n }\n if ((length == null) || this.lengthType === 'bytes') {\n target = length != null ? stream.pos + length : (parent != null ? parent._length : void 0) ? parent._startOffset + parent._length : stream.length;\n while (stream.pos < target) {\n res.push(this.type.decode(stream, ctx));\n }\n } else {\n for (i = _i = 0; _i < length; i = _i += 1) {\n res.push(this.type.decode(stream, ctx));\n }\n }\n return res;\n };\n\n ArrayT.prototype.size = function(array, ctx) {\n var item, size, _i, _len;\n if (!array) {\n return this.type.size(null, ctx) * utils.resolveLength(this.length, null, ctx);\n }\n size = 0;\n if (this.length instanceof NumberT) {\n size += this.length.size();\n ctx = {\n parent: ctx\n };\n }\n for (_i = 0, _len = array.length; _i < _len; _i++) {\n item = array[_i];\n size += this.type.size(item, ctx);\n }\n return size;\n };\n\n ArrayT.prototype.encode = function(stream, array, parent) {\n var ctx, i, item, ptr, _i, _len;\n ctx = parent;\n if (this.length instanceof NumberT) {\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent\n };\n ctx.pointerOffset = stream.pos + this.size(array, ctx);\n this.length.encode(stream, array.length);\n }\n for (_i = 0, _len = array.length; _i < _len; _i++) {\n item = array[_i];\n this.type.encode(stream, item, ctx);\n }\n if (this.length instanceof NumberT) {\n i = 0;\n while (i < ctx.pointers.length) {\n ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val);\n }\n }\n };\n\n return ArrayT;\n\n })();\n\n module.exports = ArrayT;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Bitfield;\n\n Bitfield = (function() {\n function Bitfield(type, flags) {\n this.type = type;\n this.flags = flags != null ? flags : [];\n }\n\n Bitfield.prototype.decode = function(stream) {\n var flag, i, res, val, _i, _len, _ref;\n val = this.type.decode(stream);\n res = {};\n _ref = this.flags;\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n flag = _ref[i];\n if (flag != null) {\n res[flag] = !!(val & (1 << i));\n }\n }\n return res;\n };\n\n Bitfield.prototype.size = function() {\n return this.type.size();\n };\n\n Bitfield.prototype.encode = function(stream, keys) {\n var flag, i, val, _i, _len, _ref;\n val = 0;\n _ref = this.flags;\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n flag = _ref[i];\n if (flag != null) {\n if (keys[flag]) {\n val |= 1 << i;\n }\n }\n }\n return this.type.encode(stream, val);\n };\n\n return Bitfield;\n\n })();\n\n module.exports = Bitfield;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var BooleanT;\n\n BooleanT = (function() {\n function BooleanT(type) {\n this.type = type;\n }\n\n BooleanT.prototype.decode = function(stream, parent) {\n return !!this.type.decode(stream, parent);\n };\n\n BooleanT.prototype.size = function(val, parent) {\n return this.type.size(val, parent);\n };\n\n BooleanT.prototype.encode = function(stream, val, parent) {\n return this.type.encode(stream, +val, parent);\n };\n\n return BooleanT;\n\n })();\n\n module.exports = BooleanT;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var BufferT, NumberT, utils;\n\n utils = require('./utils');\n\n NumberT = require('./Number').Number;\n\n BufferT = (function() {\n function BufferT(length) {\n this.length = length;\n }\n\n BufferT.prototype.decode = function(stream, parent) {\n var length;\n length = utils.resolveLength(this.length, stream, parent);\n return stream.readBuffer(length);\n };\n\n BufferT.prototype.size = function(val, parent) {\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n return val.length;\n };\n\n BufferT.prototype.encode = function(stream, buf, parent) {\n if (this.length instanceof NumberT) {\n this.length.encode(stream, buf.length);\n }\n return stream.writeBuffer(buf);\n };\n\n return BufferT;\n\n })();\n\n module.exports = BufferT;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var DecodeStream, iconv;\n\n try {\n iconv = require('iconv-lite');\n } catch (_error) {}\n\n DecodeStream = (function() {\n var key;\n\n function DecodeStream(buffer) {\n this.buffer = buffer;\n this.pos = 0;\n this.length = this.buffer.length;\n }\n\n DecodeStream.TYPES = {\n UInt8: 1,\n UInt16: 2,\n UInt24: 3,\n UInt32: 4,\n Int8: 1,\n Int16: 2,\n Int24: 3,\n Int32: 4,\n Float: 4,\n Double: 8\n };\n\n for (key in Buffer.prototype) {\n if (key.slice(0, 4) === 'read') {\n (function(key) {\n var bytes;\n bytes = DecodeStream.TYPES[key.replace(/read|[BL]E/g, '')];\n return DecodeStream.prototype[key] = function() {\n var ret;\n ret = this.buffer[key](this.pos);\n this.pos += bytes;\n return ret;\n };\n })(key);\n }\n }\n\n DecodeStream.prototype.readString = function(length, encoding) {\n var buf, byte, i, _i, _ref;\n if (encoding == null) {\n encoding = 'ascii';\n }\n switch (encoding) {\n case 'utf16le':\n case 'ucs2':\n case 'utf8':\n case 'ascii':\n return this.buffer.toString(encoding, this.pos, this.pos += length);\n case 'utf16be':\n buf = new Buffer(this.readBuffer(length));\n for (i = _i = 0, _ref = buf.length - 1; _i < _ref; i = _i += 2) {\n byte = buf[i];\n buf[i] = buf[i + 1];\n buf[i + 1] = byte;\n }\n return buf.toString('utf16le');\n default:\n buf = this.readBuffer(length);\n if (iconv) {\n try {\n return iconv.decode(buf, encoding);\n } catch (_error) {}\n }\n return buf;\n }\n };\n\n DecodeStream.prototype.readBuffer = function(length) {\n return this.buffer.slice(this.pos, this.pos += length);\n };\n\n DecodeStream.prototype.readUInt24BE = function() {\n return (this.readUInt16BE() << 8) + this.readUInt8();\n };\n\n DecodeStream.prototype.readUInt24LE = function() {\n return this.readUInt16LE() + (this.readUInt8() << 16);\n };\n\n DecodeStream.prototype.readInt24BE = function() {\n return (this.readInt16BE() << 8) + this.readUInt8();\n };\n\n DecodeStream.prototype.readInt24LE = function() {\n return this.readUInt16LE() + (this.readInt8() << 16);\n };\n\n return DecodeStream;\n\n })();\n\n module.exports = DecodeStream;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var DecodeStream, EncodeStream, iconv, stream,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n stream = require('stream');\n\n DecodeStream = require('./DecodeStream');\n\n try {\n iconv = require('iconv-lite');\n } catch (_error) {}\n\n EncodeStream = (function(_super) {\n var key;\n\n __extends(EncodeStream, _super);\n\n function EncodeStream(bufferSize) {\n if (bufferSize == null) {\n bufferSize = 65536;\n }\n EncodeStream.__super__.constructor.apply(this, arguments);\n this.buffer = new Buffer(bufferSize);\n this.bufferOffset = 0;\n this.pos = 0;\n }\n\n for (key in Buffer.prototype) {\n if (key.slice(0, 5) === 'write') {\n (function(key) {\n var bytes;\n bytes = +DecodeStream.TYPES[key.replace(/write|[BL]E/g, '')];\n return EncodeStream.prototype[key] = function(value) {\n this.ensure(bytes);\n this.buffer[key](value, this.bufferOffset);\n this.bufferOffset += bytes;\n return this.pos += bytes;\n };\n })(key);\n }\n }\n\n EncodeStream.prototype._read = function() {};\n\n EncodeStream.prototype.ensure = function(bytes) {\n if (this.bufferOffset + bytes > this.buffer.length) {\n return this.flush();\n }\n };\n\n EncodeStream.prototype.flush = function() {\n if (this.bufferOffset > 0) {\n this.push(new Buffer(this.buffer.slice(0, this.bufferOffset)));\n return this.bufferOffset = 0;\n }\n };\n\n EncodeStream.prototype.writeBuffer = function(buffer) {\n this.flush();\n this.push(buffer);\n return this.pos += buffer.length;\n };\n\n EncodeStream.prototype.writeString = function(string, encoding) {\n var buf, byte, i, _i, _ref;\n if (encoding == null) {\n encoding = 'ascii';\n }\n switch (encoding) {\n case 'utf16le':\n case 'ucs2':\n case 'utf8':\n case 'ascii':\n return this.writeBuffer(new Buffer(string, encoding));\n case 'utf16be':\n buf = new Buffer(string, 'utf16le');\n for (i = _i = 0, _ref = buf.length - 1; _i < _ref; i = _i += 2) {\n byte = buf[i];\n buf[i] = buf[i + 1];\n buf[i + 1] = byte;\n }\n return this.writeBuffer(buf);\n default:\n if (iconv) {\n return this.writeBuffer(iconv.encode(string, encoding));\n } else {\n throw new Error('Install iconv-lite to enable additional string encodings.');\n }\n }\n };\n\n EncodeStream.prototype.writeUInt24BE = function(val) {\n this.ensure(3);\n this.buffer[this.bufferOffset++] = val >>> 16 & 0xff;\n this.buffer[this.bufferOffset++] = val >>> 8 & 0xff;\n this.buffer[this.bufferOffset++] = val & 0xff;\n return this.pos += 3;\n };\n\n EncodeStream.prototype.writeUInt24LE = function(val) {\n this.ensure(3);\n this.buffer[this.bufferOffset++] = val & 0xff;\n this.buffer[this.bufferOffset++] = val >>> 8 & 0xff;\n this.buffer[this.bufferOffset++] = val >>> 16 & 0xff;\n return this.pos += 3;\n };\n\n EncodeStream.prototype.writeInt24BE = function(val) {\n if (val >= 0) {\n return this.writeUInt24BE(val);\n } else {\n return this.writeUInt24BE(val + 0xffffff + 1);\n }\n };\n\n EncodeStream.prototype.writeInt24LE = function(val) {\n if (val >= 0) {\n return this.writeUInt24LE(val);\n } else {\n return this.writeUInt24LE(val + 0xffffff + 1);\n }\n };\n\n EncodeStream.prototype.fill = function(val, length) {\n var buf;\n if (length < this.buffer.length) {\n this.ensure(length);\n this.buffer.fill(val, this.bufferOffset, this.bufferOffset + length);\n this.bufferOffset += length;\n return this.pos += length;\n } else {\n buf = new Buffer(length);\n buf.fill(val);\n return this.writeBuffer(buf);\n }\n };\n\n EncodeStream.prototype.end = function() {\n this.flush();\n return this.push(null);\n };\n\n return EncodeStream;\n\n })(stream.Readable);\n\n module.exports = EncodeStream;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Enum;\n\n Enum = (function() {\n function Enum(type, options) {\n this.type = type;\n this.options = options != null ? options : [];\n }\n\n Enum.prototype.decode = function(stream) {\n var index;\n index = this.type.decode(stream);\n return this.options[index] || index;\n };\n\n Enum.prototype.size = function() {\n return this.type.size();\n };\n\n Enum.prototype.encode = function(stream, val) {\n var index;\n index = this.options.indexOf(val);\n if (index === -1) {\n throw new Error(\"Unknown option in enum: \" + val);\n }\n return this.type.encode(stream, index);\n };\n\n return Enum;\n\n })();\n\n module.exports = Enum;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var ArrayT, LazyArray, LazyArrayT, NumberT, inspect, utils,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n ArrayT = require('./Array');\n\n NumberT = require('./Number').Number;\n\n utils = require('./utils');\n\n inspect = require('util').inspect;\n\n LazyArrayT = (function(_super) {\n __extends(LazyArrayT, _super);\n\n function LazyArrayT() {\n return LazyArrayT.__super__.constructor.apply(this, arguments);\n }\n\n LazyArrayT.prototype.decode = function(stream, parent) {\n var length, pos, res;\n pos = stream.pos;\n length = utils.resolveLength(this.length, stream, parent);\n if (this.length instanceof NumberT) {\n parent = {\n parent: parent,\n _startOffset: pos,\n _currentOffset: 0,\n _length: length\n };\n }\n res = new LazyArray(this.type, length, stream, parent);\n stream.pos += length * this.type.size(null, parent);\n return res;\n };\n\n LazyArrayT.prototype.size = function(val, ctx) {\n if (val instanceof LazyArray) {\n val = val.toArray();\n }\n return LazyArrayT.__super__.size.call(this, val, ctx);\n };\n\n LazyArrayT.prototype.encode = function(stream, val, ctx) {\n if (val instanceof LazyArray) {\n val = val.toArray();\n }\n return LazyArrayT.__super__.encode.call(this, stream, val, ctx);\n };\n\n return LazyArrayT;\n\n })(ArrayT);\n\n LazyArray = (function() {\n function LazyArray(type, length, stream, ctx) {\n this.type = type;\n this.length = length;\n this.stream = stream;\n this.ctx = ctx;\n this.base = this.stream.pos;\n this.items = [];\n }\n\n LazyArray.prototype.get = function(index) {\n var pos;\n if (index < 0 || index >= this.length) {\n return void 0;\n }\n if (this.items[index] == null) {\n pos = this.stream.pos;\n this.stream.pos = this.base + this.type.size(null, this.ctx) * index;\n this.items[index] = this.type.decode(this.stream, this.ctx);\n this.stream.pos = pos;\n }\n return this.items[index];\n };\n\n LazyArray.prototype.toArray = function() {\n var i, _i, _ref, _results;\n _results = [];\n for (i = _i = 0, _ref = this.length; _i < _ref; i = _i += 1) {\n _results.push(this.get(i));\n }\n return _results;\n };\n\n LazyArray.prototype.inspect = function() {\n return inspect(this.toArray());\n };\n\n return LazyArray;\n\n })();\n\n module.exports = LazyArrayT;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var DecodeStream, Fixed, NumberT,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n DecodeStream = require('./DecodeStream');\n\n NumberT = (function() {\n function NumberT(type, endian) {\n this.type = type;\n this.endian = endian != null ? endian : 'BE';\n this.fn = this.type;\n if (this.type[this.type.length - 1] !== '8') {\n this.fn += this.endian;\n }\n }\n\n NumberT.prototype.size = function() {\n return DecodeStream.TYPES[this.type];\n };\n\n NumberT.prototype.decode = function(stream) {\n return stream['read' + this.fn]();\n };\n\n NumberT.prototype.encode = function(stream, val) {\n return stream['write' + this.fn](val);\n };\n\n return NumberT;\n\n })();\n\n exports.Number = NumberT;\n\n exports.uint8 = new NumberT('UInt8');\n\n exports.uint16be = exports.uint16 = new NumberT('UInt16', 'BE');\n\n exports.uint16le = new NumberT('UInt16', 'LE');\n\n exports.uint24be = exports.uint24 = new NumberT('UInt24', 'BE');\n\n exports.uint24le = new NumberT('UInt24', 'LE');\n\n exports.uint32be = exports.uint32 = new NumberT('UInt32', 'BE');\n\n exports.uint32le = new NumberT('UInt32', 'LE');\n\n exports.int8 = new NumberT('Int8');\n\n exports.int16be = exports.int16 = new NumberT('Int16', 'BE');\n\n exports.int16le = new NumberT('Int16', 'LE');\n\n exports.int24be = exports.int24 = new NumberT('Int24', 'BE');\n\n exports.int24le = new NumberT('Int24', 'LE');\n\n exports.int32be = exports.int32 = new NumberT('Int32', 'BE');\n\n exports.int32le = new NumberT('Int32', 'LE');\n\n exports.floatbe = exports.float = new NumberT('Float', 'BE');\n\n exports.floatle = new NumberT('Float', 'LE');\n\n exports.doublebe = exports.double = new NumberT('Double', 'BE');\n\n exports.doublele = new NumberT('Double', 'LE');\n\n Fixed = (function(_super) {\n __extends(Fixed, _super);\n\n function Fixed(size, endian, fracBits) {\n if (fracBits == null) {\n fracBits = size >> 1;\n }\n Fixed.__super__.constructor.call(this, \"Int\" + size, endian);\n this._point = 1 << fracBits;\n }\n\n Fixed.prototype.decode = function(stream) {\n return Fixed.__super__.decode.call(this, stream) / this._point;\n };\n\n Fixed.prototype.encode = function(stream, val) {\n return Fixed.__super__.encode.call(this, stream, val * this._point | 0);\n };\n\n return Fixed;\n\n })(NumberT);\n\n exports.Fixed = Fixed;\n\n exports.fixed16be = exports.fixed16 = new Fixed(16, 'BE');\n\n exports.fixed16le = new Fixed(16, 'LE');\n\n exports.fixed32be = exports.fixed32 = new Fixed(32, 'BE');\n\n exports.fixed32le = new Fixed(32, 'LE');\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Optional;\n\n Optional = (function() {\n function Optional(type, condition) {\n this.type = type;\n this.condition = condition != null ? condition : true;\n }\n\n Optional.prototype.decode = function(stream, parent) {\n var condition;\n condition = this.condition;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n if (condition) {\n return this.type.decode(stream, parent);\n }\n };\n\n Optional.prototype.size = function(val, parent) {\n var condition;\n condition = this.condition;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n if (condition) {\n return this.type.size(val, parent);\n } else {\n return 0;\n }\n };\n\n Optional.prototype.encode = function(stream, val, parent) {\n var condition;\n condition = this.condition;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n if (condition) {\n return this.type.encode(stream, val, parent);\n }\n };\n\n return Optional;\n\n })();\n\n module.exports = Optional;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Pointer, VoidPointer, utils;\n\n utils = require('./utils');\n\n Pointer = (function() {\n function Pointer(offsetType, type, options) {\n var _base, _base1, _base2, _base3;\n this.offsetType = offsetType;\n this.type = type;\n this.options = options != null ? options : {};\n if (this.type === 'void') {\n this.type = null;\n }\n if ((_base = this.options).type == null) {\n _base.type = 'local';\n }\n if ((_base1 = this.options).allowNull == null) {\n _base1.allowNull = true;\n }\n if ((_base2 = this.options).nullValue == null) {\n _base2.nullValue = 0;\n }\n if ((_base3 = this.options).lazy == null) {\n _base3.lazy = false;\n }\n if (this.options.relativeTo) {\n this.relativeToGetter = new Function('ctx', \"return ctx.\" + this.options.relativeTo);\n }\n }\n\n Pointer.prototype.decode = function(stream, ctx) {\n var c, decodeValue, offset, ptr, relative, val;\n offset = this.offsetType.decode(stream, ctx);\n if (offset === this.options.nullValue && this.options.allowNull) {\n return null;\n }\n relative = (function() {\n switch (this.options.type) {\n case 'local':\n return ctx._startOffset;\n case 'immediate':\n return stream.pos - this.offsetType.size();\n case 'parent':\n return ctx.parent._startOffset;\n default:\n c = ctx;\n while (c.parent) {\n c = c.parent;\n }\n return c._startOffset || 0;\n }\n }).call(this);\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(ctx);\n }\n ptr = offset + relative;\n if (this.type != null) {\n val = null;\n decodeValue = (function(_this) {\n return function() {\n var pos;\n if (val != null) {\n return val;\n }\n pos = stream.pos;\n stream.pos = ptr;\n val = _this.type.decode(stream, ctx);\n stream.pos = pos;\n return val;\n };\n })(this);\n if (this.options.lazy) {\n return new utils.PropertyDescriptor({\n get: decodeValue\n });\n }\n return decodeValue();\n } else {\n return ptr;\n }\n };\n\n Pointer.prototype.size = function(val, ctx) {\n var parent, type;\n parent = ctx;\n switch (this.options.type) {\n case 'local':\n case 'immediate':\n break;\n case 'parent':\n ctx = ctx.parent;\n break;\n default:\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n type = this.type;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n type = val.type;\n val = val.value;\n }\n if (val && ctx) {\n ctx.pointerSize += type.size(val, parent);\n }\n return this.offsetType.size();\n };\n\n Pointer.prototype.encode = function(stream, val, ctx) {\n var parent, relative, type;\n parent = ctx;\n if (val == null) {\n this.offsetType.encode(stream, this.options.nullValue);\n return;\n }\n switch (this.options.type) {\n case 'local':\n relative = ctx.startOffset;\n break;\n case 'immediate':\n relative = stream.pos + this.offsetType.size(val, parent);\n break;\n case 'parent':\n ctx = ctx.parent;\n relative = ctx.startOffset;\n break;\n default:\n relative = 0;\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(parent.val);\n }\n this.offsetType.encode(stream, ctx.pointerOffset - relative);\n type = this.type;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n type = val.type;\n val = val.value;\n }\n ctx.pointers.push({\n type: type,\n val: val,\n parent: parent\n });\n return ctx.pointerOffset += type.size(val, parent);\n };\n\n return Pointer;\n\n })();\n\n VoidPointer = (function() {\n function VoidPointer(type, value) {\n this.type = type;\n this.value = value;\n }\n\n return VoidPointer;\n\n })();\n\n exports.Pointer = Pointer;\n\n exports.VoidPointer = VoidPointer;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Reserved, utils;\n\n utils = require('./utils');\n\n Reserved = (function() {\n function Reserved(type, count) {\n this.type = type;\n this.count = count != null ? count : 1;\n }\n\n Reserved.prototype.decode = function(stream, parent) {\n stream.pos += this.size(null, parent);\n return void 0;\n };\n\n Reserved.prototype.size = function(data, parent) {\n var count;\n count = utils.resolveLength(this.count, null, parent);\n return this.type.size() * count;\n };\n\n Reserved.prototype.encode = function(stream, val, parent) {\n return stream.fill(0, this.size(val, parent));\n };\n\n return Reserved;\n\n })();\n\n module.exports = Reserved;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var NumberT, StringT, utils;\n\n NumberT = require('./Number').Number;\n\n utils = require('./utils');\n\n StringT = (function() {\n function StringT(length, encoding) {\n this.length = length;\n this.encoding = encoding != null ? encoding : 'ascii';\n }\n\n StringT.prototype.decode = function(stream, parent) {\n var buffer, encoding, length, pos, string;\n length = (function() {\n if (this.length != null) {\n return utils.resolveLength(this.length, stream, parent);\n } else {\n buffer = stream.buffer, length = stream.length, pos = stream.pos;\n while (pos < length && buffer[pos] !== 0x00) {\n ++pos;\n }\n return pos - stream.pos;\n }\n }).call(this);\n encoding = this.encoding;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent, parent) || 'ascii';\n }\n string = stream.readString(length, encoding);\n if ((this.length == null) && stream.pos < stream.length) {\n stream.pos++;\n }\n return string;\n };\n\n StringT.prototype.size = function(val, parent) {\n var encoding, size;\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n encoding = this.encoding;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : void 0, parent != null ? parent.val : void 0) || 'ascii';\n }\n if (encoding === 'utf16be') {\n encoding = 'utf16le';\n }\n size = Buffer.byteLength(val, encoding);\n if (this.length instanceof NumberT) {\n size += this.length.size();\n }\n if (this.length == null) {\n size++;\n }\n return size;\n };\n\n StringT.prototype.encode = function(stream, val, parent) {\n var encoding;\n encoding = this.encoding;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : void 0, parent != null ? parent.val : void 0) || 'ascii';\n }\n if (this.length instanceof NumberT) {\n this.length.encode(stream, Buffer.byteLength(val, encoding));\n }\n stream.writeString(val, encoding);\n if (this.length == null) {\n return stream.writeUInt8(0x00);\n }\n };\n\n return StringT;\n\n })();\n\n module.exports = StringT;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Struct, utils;\n\n utils = require('./utils');\n\n Struct = (function() {\n function Struct(fields) {\n this.fields = fields != null ? fields : {};\n }\n\n Struct.prototype.decode = function(stream, parent, length) {\n var res, _ref;\n if (length == null) {\n length = 0;\n }\n res = this._setup(stream, parent, length);\n this._parseFields(stream, res, this.fields);\n if ((_ref = this.process) != null) {\n _ref.call(res, stream);\n }\n return res;\n };\n\n Struct.prototype._setup = function(stream, parent, length) {\n var res;\n res = {};\n Object.defineProperties(res, {\n parent: {\n value: parent\n },\n _startOffset: {\n value: stream.pos\n },\n _currentOffset: {\n value: 0,\n writable: true\n },\n _length: {\n value: length\n }\n });\n return res;\n };\n\n Struct.prototype._parseFields = function(stream, res, fields) {\n var key, type, val;\n for (key in fields) {\n type = fields[key];\n if (typeof type === 'function') {\n val = type.call(res, res);\n } else {\n val = type.decode(stream, res);\n }\n if (val !== void 0) {\n if (val instanceof utils.PropertyDescriptor) {\n Object.defineProperty(res, key, val);\n } else {\n res[key] = val;\n }\n }\n res._currentOffset = stream.pos - res._startOffset;\n }\n };\n\n Struct.prototype.size = function(val, parent, includePointers) {\n var ctx, key, size, type, _ref;\n if (val == null) {\n val = {};\n }\n if (includePointers == null) {\n includePointers = true;\n }\n ctx = {\n parent: parent,\n val: val,\n pointerSize: 0\n };\n size = 0;\n _ref = this.fields;\n for (key in _ref) {\n type = _ref[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n if (includePointers) {\n size += ctx.pointerSize;\n }\n return size;\n };\n\n Struct.prototype.encode = function(stream, val, parent) {\n var ctx, i, key, ptr, type, _ref, _ref1;\n if ((_ref = this.preEncode) != null) {\n _ref.call(val, stream);\n }\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent,\n val: val,\n pointerSize: 0\n };\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n _ref1 = this.fields;\n for (key in _ref1) {\n type = _ref1[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n i = 0;\n while (i < ctx.pointers.length) {\n ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n };\n\n return Struct;\n\n })();\n\n module.exports = Struct;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var Struct, VersionedStruct,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n Struct = require('./Struct');\n\n VersionedStruct = (function(_super) {\n __extends(VersionedStruct, _super);\n\n function VersionedStruct(type, versions) {\n this.type = type;\n this.versions = versions != null ? versions : {};\n if (typeof this.type === 'string') {\n this.versionGetter = new Function('parent', \"return parent.\" + this.type);\n this.versionSetter = new Function('parent', 'version', \"return parent.\" + this.type + \" = version\");\n }\n }\n\n VersionedStruct.prototype.decode = function(stream, parent, length) {\n var fields, res, _ref;\n if (length == null) {\n length = 0;\n }\n res = this._setup(stream, parent, length);\n if (typeof this.type === 'string') {\n res.version = this.versionGetter(parent);\n } else {\n res.version = this.type.decode(stream);\n }\n if (this.versions.header) {\n this._parseFields(stream, res, this.versions.header);\n }\n fields = this.versions[res.version];\n if (fields == null) {\n throw new Error(\"Unknown version \" + res.version);\n }\n if (fields instanceof VersionedStruct) {\n return fields.decode(stream, parent);\n }\n this._parseFields(stream, res, fields);\n if ((_ref = this.process) != null) {\n _ref.call(res, stream);\n }\n return res;\n };\n\n VersionedStruct.prototype.size = function(val, parent, includePointers) {\n var ctx, fields, key, size, type, _ref;\n if (includePointers == null) {\n includePointers = true;\n }\n if (!val) {\n throw new Error('Not a fixed size');\n }\n ctx = {\n parent: parent,\n val: val,\n pointerSize: 0\n };\n size = 0;\n if (typeof this.type !== 'string') {\n size += this.type.size(val.version, ctx);\n }\n if (this.versions.header) {\n _ref = this.versions.header;\n for (key in _ref) {\n type = _ref[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n }\n fields = this.versions[val.version];\n if (fields == null) {\n throw new Error(\"Unknown version \" + val.version);\n }\n for (key in fields) {\n type = fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n if (includePointers) {\n size += ctx.pointerSize;\n }\n return size;\n };\n\n VersionedStruct.prototype.encode = function(stream, val, parent) {\n var ctx, fields, i, key, ptr, type, _ref, _ref1;\n if ((_ref = this.preEncode) != null) {\n _ref.call(val, stream);\n }\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent,\n val: val,\n pointerSize: 0\n };\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n if (typeof this.type !== 'string') {\n this.type.encode(stream, val.version);\n }\n if (this.versions.header) {\n _ref1 = this.versions.header;\n for (key in _ref1) {\n type = _ref1[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n }\n fields = this.versions[val.version];\n for (key in fields) {\n type = fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n i = 0;\n while (i < ctx.pointers.length) {\n ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n };\n\n return VersionedStruct;\n\n })(Struct);\n\n module.exports = VersionedStruct;\n\n}).call(this);\n","// Generated by CoffeeScript 1.7.1\n(function() {\n var NumberT, PropertyDescriptor;\n\n NumberT = require('./Number').Number;\n\n exports.resolveLength = function(length, stream, parent) {\n var res;\n if (typeof length === 'number') {\n res = length;\n } else if (typeof length === 'function') {\n res = length.call(parent, parent);\n } else if (parent && typeof length === 'string') {\n res = parent[length];\n } else if (stream && length instanceof NumberT) {\n res = length.decode(stream);\n }\n if (isNaN(res)) {\n throw new Error('Not a fixed size');\n }\n return res;\n };\n\n PropertyDescriptor = (function() {\n function PropertyDescriptor(opts) {\n var key, val;\n if (opts == null) {\n opts = {};\n }\n this.enumerable = true;\n this.configurable = true;\n for (key in opts) {\n val = opts[key];\n this[key] = val;\n }\n }\n\n return PropertyDescriptor;\n\n })();\n\n exports.PropertyDescriptor = PropertyDescriptor;\n\n}).call(this);\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","/** @license React v0.20.2\n * scheduler.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 f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\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","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","/*! store2 - v2.12.0 - 2020-08-12\n* Copyright (c) 2020 Nathan Bubna; Licensed (MIT OR GPL-3.0) */\n;(function(window, define) {\n var _ = {\n version: \"2.12.0\",\n areas: {},\n apis: {},\n\n // utilities\n inherit: function(api, o) {\n for (var p in api) {\n if (!o.hasOwnProperty(p)) {\n Object.defineProperty(o, p, Object.getOwnPropertyDescriptor(api, p));\n }\n }\n return o;\n },\n stringify: function(d) {\n return d === undefined || typeof d === \"function\" ? d+'' : JSON.stringify(d);\n },\n parse: function(s, fn) {\n // if it doesn't parse, return as is\n try{ return JSON.parse(s,fn||_.revive); }catch(e){ return s; }\n },\n\n // extension hooks\n fn: function(name, fn) {\n _.storeAPI[name] = fn;\n for (var api in _.apis) {\n _.apis[api][name] = fn;\n }\n },\n get: function(area, key){ return area.getItem(key); },\n set: function(area, key, string){ area.setItem(key, string); },\n remove: function(area, key){ area.removeItem(key); },\n key: function(area, i){ return area.key(i); },\n length: function(area){ return area.length; },\n clear: function(area){ area.clear(); },\n\n // core functions\n Store: function(id, area, namespace) {\n var store = _.inherit(_.storeAPI, function(key, data, overwrite) {\n if (arguments.length === 0){ return store.getAll(); }\n if (typeof data === \"function\"){ return store.transact(key, data, overwrite); }// fn=data, alt=overwrite\n if (data !== undefined){ return store.set(key, data, overwrite); }\n if (typeof key === \"string\" || typeof key === \"number\"){ return store.get(key); }\n if (typeof key === \"function\"){ return store.each(key); }\n if (!key){ return store.clear(); }\n return store.setAll(key, data);// overwrite=data, data=key\n });\n store._id = id;\n try {\n var testKey = '__store2_test';\n area.setItem(testKey, 'ok');\n store._area = area;\n area.removeItem(testKey);\n } catch (e) {\n store._area = _.storage('fake');\n }\n store._ns = namespace || '';\n if (!_.areas[id]) {\n _.areas[id] = store._area;\n }\n if (!_.apis[store._ns+store._id]) {\n _.apis[store._ns+store._id] = store;\n }\n return store;\n },\n storeAPI: {\n // admin functions\n area: function(id, area) {\n var store = this[id];\n if (!store || !store.area) {\n store = _.Store(id, area, this._ns);//new area-specific api in this namespace\n if (!this[id]){ this[id] = store; }\n }\n return store;\n },\n namespace: function(namespace, singleArea) {\n if (!namespace){\n return this._ns ? this._ns.substring(0,this._ns.length-1) : '';\n }\n var ns = namespace, store = this[ns];\n if (!store || !store.namespace) {\n store = _.Store(this._id, this._area, this._ns+ns+'.');//new namespaced api\n if (!this[ns]){ this[ns] = store; }\n if (!singleArea) {\n for (var name in _.areas) {\n store.area(name, _.areas[name]);\n }\n }\n }\n return store;\n },\n isFake: function(){ return this._area.name === 'fake'; },\n toString: function() {\n return 'store'+(this._ns?'.'+this.namespace():'')+'['+this._id+']';\n },\n\n // storage functions\n has: function(key) {\n if (this._area.has) {\n return this._area.has(this._in(key));//extension hook\n }\n return !!(this._in(key) in this._area);\n },\n size: function(){ return this.keys().length; },\n each: function(fn, fill) {// fill is used by keys(fillList) and getAll(fillList))\n for (var i=0, m=_.length(this._area); i _.length(this._area)) { m--; i--; }// in case of removeItem\n }\n return fill || this;\n },\n keys: function(fillList) {\n return this.each(function(k, v, list){ list.push(k); }, fillList || []);\n },\n get: function(key, alt) {\n var s = _.get(this._area, this._in(key)),\n fn;\n if (typeof alt === \"function\") {\n fn = alt;\n alt = null;\n }\n return s !== null ? _.parse(s, fn) :\n alt != null ? alt : s;\n },\n getAll: function(fillObj) {\n return this.each(function(k, v, all){ all[k] = v; }, fillObj || {});\n },\n transact: function(key, fn, alt) {\n var val = this.get(key, alt),\n ret = fn(val);\n this.set(key, ret === undefined ? val : ret);\n return this;\n },\n set: function(key, data, overwrite) {\n var d = this.get(key);\n if (d != null && overwrite === false) {\n return data;\n }\n return _.set(this._area, this._in(key), _.stringify(data), overwrite) || d;\n },\n setAll: function(data, overwrite) {\n var changed, val;\n for (var key in data) {\n val = data[key];\n if (this.set(key, val, overwrite) !== val) {\n changed = true;\n }\n }\n return changed;\n },\n add: function(key, data) {\n var d = this.get(key);\n if (d instanceof Array) {\n data = d.concat(data);\n } else if (d !== null) {\n var type = typeof d;\n if (type === typeof data && type === 'object') {\n for (var k in data) {\n d[k] = data[k];\n }\n data = d;\n } else {\n data = d + data;\n }\n }\n _.set(this._area, this._in(key), _.stringify(data));\n return data;\n },\n remove: function(key, alt) {\n var d = this.get(key, alt);\n _.remove(this._area, this._in(key));\n return d;\n },\n clear: function() {\n if (!this._ns) {\n _.clear(this._area);\n } else {\n this.each(function(k){ _.remove(this._area, this._in(k)); }, 1);\n }\n return this;\n },\n clearAll: function() {\n var area = this._area;\n for (var id in _.areas) {\n if (_.areas.hasOwnProperty(id)) {\n this._area = _.areas[id];\n this.clear();\n }\n }\n this._area = area;\n return this;\n },\n\n // internal use functions\n _in: function(k) {\n if (typeof k !== \"string\"){ k = _.stringify(k); }\n return this._ns ? this._ns + k : k;\n },\n _out: function(k) {\n return this._ns ?\n k && k.indexOf(this._ns) === 0 ?\n k.substring(this._ns.length) :\n undefined : // so each() knows to skip it\n k;\n }\n },// end _.storeAPI\n storage: function(name) {\n return _.inherit(_.storageAPI, { items: {}, name: name });\n },\n storageAPI: {\n length: 0,\n has: function(k){ return this.items.hasOwnProperty(k); },\n key: function(i) {\n var c = 0;\n for (var k in this.items){\n if (this.has(k) && i === c++) {\n return k;\n }\n }\n },\n setItem: function(k, v) {\n if (!this.has(k)) {\n this.length++;\n }\n this.items[k] = v;\n },\n removeItem: function(k) {\n if (this.has(k)) {\n delete this.items[k];\n this.length--;\n }\n },\n getItem: function(k){ return this.has(k) ? this.items[k] : null; },\n clear: function(){ for (var k in this.items){ this.removeItem(k); } }\n }// end _.storageAPI\n };\n\n var store =\n // safely set this up (throws error in IE10/32bit mode for local files)\n _.Store(\"local\", (function(){try{ return localStorage; }catch(e){}})());\n store.local = store;// for completeness\n store._ = _;// for extenders and debuggers...\n // safely setup store.session (throws exception in FF for file:/// urls)\n store.area(\"session\", (function(){try{ return sessionStorage; }catch(e){}})());\n store.area(\"page\", _.storage(\"page\"));\n\n if (typeof define === 'function' && define.amd !== undefined) {\n define('store2', [], function () {\n return store;\n });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = store;\n } else {\n // expose the primary store fn to the global object and save conflicts\n if (window.store){ _.conflict = window.store; }\n window.store = store;\n }\n\n})(this, this && this.define);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","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;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","\"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 && typeof btoa !== 'undefined') {\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 \"},this.getStyleTags=function(){return e.sealed?j(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return j(2);var n=((t={})[A]=\"\",t[\"data-styled-version\"]=\"5.3.0\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=q();return o&&(n.nonce=o),[r.createElement(\"style\",v({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Z({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?j(2):r.createElement(ye,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return j(3)},e}(),Je=function(e){var t=r.forwardRef((function(t,n){var o=i(ze),s=e.defaultProps,a=Oe(t,o,s);return\"production\"!==process.env.NODE_ENV&&void 0===a&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'+_(e)+'\"'),r.createElement(e,v({},t,{theme:a,ref:n}))}));return y(t,e),t.displayName=\"WithTheme(\"+_(e)+\")\",t},Xe=function(){return i(ze)},Ze={StyleSheet:Z,masterSheet:he};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"),\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&(window[\"__styled-components-init__\"]=window[\"__styled-components-init__\"]||0,1===window[\"__styled-components-init__\"]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[\"__styled-components-init__\"]+=1);export default qe;export{Ue as ServerStyleSheet,le as StyleSheetConsumer,ue as StyleSheetContext,ye as StyleSheetManager,Le as ThemeConsumer,ze as ThemeContext,Ge as ThemeProvider,Ze as __PRIVATE__,$e as createGlobalStyle,Ae as css,N as isStyledComponent,We as keyframes,Xe as useTheme,C as version,Je as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbols.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbols.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pxtoFactory('em');\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\nvar rem = /*#__PURE__*/pxtoFactory('rem');\n\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor);\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor);\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * (parseFloat(weight) / 1.0) + color2.alpha * (1 - parseFloat(weight) / 1.0)\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\n\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken as darken, curriedDesaturate as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten as lighten, linearGradient, margin, math, meetsContrastGuidelines, curriedMix as mix, modularScale, normalize, curriedOpacify as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate as saturate, curriedSetHue as setHue, curriedSetLightness as setLightness, curriedSetSaturation as setSaturation, curriedShade as shade, size, stripUnit, textInputs, timingFunctions, curriedTint as tint, toColorString, transitions, curriedTransparentize as transparentize, triangle, wordWrap };\n","export default 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}","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const BenefitTable: React.FC<{}> = () => {\r\n const [showEmployee, setShowEmployee] = React.useState(false);\r\n\r\n return (\r\n \r\n \r\n setShowEmployee(false)}\r\n >\r\n

For the organisation

\r\n \r\n setShowEmployee(true)}\r\n >\r\n

For employees

\r\n \r\n
\r\n \r\n \r\n
  • A comprehensive health and safety program
  • \r\n
  • A positive and caring image
  • \r\n
  • Improved staff morale
  • \r\n
  • Reduced staff turnover
  • \r\n
  • Reduced sick leave
  • \r\n
  • Increased productivity
  • \r\n
  • Reduced risk of fines and litigation
  • \r\n
    \r\n \r\n
  • A safe and healthy work environment
  • \r\n
  • Enhanced self-esteem
  • \r\n
  • Improved morale
  • \r\n
  • Reduced stress
  • \r\n
  • Increased job satisfaction
  • \r\n
  • Increased health awareness and skills
  • \r\n
  • Improved health
  • \r\n
  • Improved sense of wellbeing
  • \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst StyledBenefitTable = styled.div`\r\n width: 100%;\r\n overflow: hidden;\r\n`;\r\n\r\nconst BenefitHeader = styled.div`\r\n display: flex;\r\n`;\r\n\r\nconst BenefitSelector = styled.button<{ active: boolean }>`\r\n width: 50%;\r\n color: ${(props) =>\r\n props.active ? props.theme.info : props.theme.secondary};\r\n background-color: ${(props) => (props.active ? \"white\" : props.theme.info)};\r\n border: 1px solid #4494b9;\r\n padding: 1rem;\r\n`;\r\n\r\nconst BenefitContent = styled.span<{ active: boolean }>`\r\n width: 200%;\r\n display: flex;\r\n overflow: hidden;\r\n transition: 500ms all ease;\r\n transform: ${(props) =>\r\n props.active ? \"translateX(0)\" : \"translateX(-50%)\"};\r\n`;\r\n\r\nconst BenefitList = styled.ul`\r\n width: 50%;\r\n padding: 0;\r\n list-style: none;\r\n & li {\r\n padding: 1rem;\r\n border: 1px solid #4494b9;\r\n border-top: none;\r\n }\r\n`;\r\n","var _path, _path2, _path3;\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\nimport * as React from \"react\";\n\nfunction SvgClipboard(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50 16.7c-1.7 0-3.1-1.4-3.1-3.1s1.4-3.1 3.1-3.1c1.7 0 3.1 1.4 3.1 3.1 0 1.7-1.4 3.1-3.1 3.1zm0-3.7c-.3 0-.6.3-.6.6s.3.6.6.6.6-.3.6-.6-.3-.6-.6-.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 16.5H63.2c-.9-.4-1.9-.6-3-.6-.1 0-1.5.1-2.7-.3-.6-.2-.9-.4-.9-.6v-2.4c0-3.5-2.8-6.3-6.3-6.3h-1.1C45.9 6.2 43 9 43 12.5v2.4c-.2.4-1.8.9-3.4.9-1 0-2 .2-2.9.6H26c-4.3 0-7.9 3.5-7.9 7.9v58.9c0 4.3 3.5 7.9 7.9 7.9h48c4.3 0 7.9-3.5 7.9-7.9V24.4c0-4.4-3.5-7.9-7.9-7.9zM72.7 25v57.6H27.2V25h5.5v.5c0 .7.6 1.3 1.3 1.3h32.2c.7 0 1.3-.6 1.3-1.3V25h5.2zM45.5 14.9v-2.4c0-2.1 1.7-3.8 3.8-3.8h1.1c2.1 0 3.8 1.7 3.8 3.8v2.4c0 .8.3 2.3 2.6 3 1.1.3 2.2.4 3 .4h.5c2.5 0 4.5 2 4.5 4.5v1.3H35.1v-1.3c0-2.5 2-4.5 4.6-4.5 1 0 5.8-.3 5.8-3.4zm33.9 68.3c0 3-2.4 5.4-5.4 5.4H26c-3 0-5.4-2.4-5.4-5.4V24.4c0-3 2.4-5.4 5.4-5.4h7.8c-.7 1-1.1 2.2-1.2 3.5h-6.7c-.7 0-1.3.6-1.3 1.3v60.1c0 .7.6 1.3 1.3 1.3h48c.7 0 1.3-.6 1.3-1.3V23.7c0-.7-.6-1.3-1.3-1.3h-6.6c-.1-1.3-.5-2.5-1.2-3.5H74c3 0 5.4 2.4 5.4 5.4v58.9z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.9 38.3h-36c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h36c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5zM67.9 47.3h-36c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h36c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5zM67.9 56.3h-36c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h36c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5zM67.9 65.3h-36c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h36c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5zM58.1 74.3H31.9c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h26.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBkPSJNNTAsMTYuN2MtMS43LDAtMy4xLTEuNC0zLjEtMy4xczEuNC0zLjEsMy4xLTMuMWMxLjcsMCwzLjEsMS40LDMuMSwzLjFDNTMuMSwxNS4zLDUxLjcsMTYuNyw1MCwxNi43eiBNNTAsMTMNCgkJCQljLTAuMywwLTAuNiwwLjMtMC42LDAuNmMwLDAuMywwLjMsMC42LDAuNiwwLjZzMC42LTAuMywwLjYtMC42QzUwLjYsMTMuMyw1MC4zLDEzLDUwLDEzeiI+PC9wYXRoPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNzQsMTYuNUg2My4yYy0wLjktMC40LTEuOS0wLjYtMy0wLjZjMCwwLDAsMCwwLDBjLTAuMSwwLTEuNSwwLjEtMi43LTAuM2MtMC42LTAuMi0wLjktMC40LTAuOS0wLjZ2LTIuNA0KCQkJYzAtMy41LTIuOC02LjMtNi4zLTYuM2gtMS4xQzQ1LjksNi4yLDQzLDksNDMsMTIuNWwwLDIuNGMtMC4yLDAuNC0xLjgsMC45LTMuNCwwLjljLTEsMC0yLDAuMi0yLjksMC42SDI2Yy00LjMsMC03LjksMy41LTcuOSw3LjkNCgkJCXY1OC45YzAsNC4zLDMuNSw3LjksNy45LDcuOWg0OGM0LjMsMCw3LjktMy41LDcuOS03LjlWMjQuNEM4MS45LDIwLDc4LjQsMTYuNSw3NCwxNi41eiBNNzIuNywyNXY1Ny42SDI3LjJWMjVoNS41djAuNQ0KCQkJYzAsMC43LDAuNiwxLjMsMS4zLDEuM2gzMi4yYzAuNywwLDEuMy0wLjYsMS4zLTEuM1YyNUg3Mi43eiBNNDUuNSwxNC45di0yLjRjMC0yLjEsMS43LTMuOCwzLjgtMy44aDEuMWMyLjEsMCwzLjgsMS43LDMuOCwzLjh2Mi40DQoJCQljMCwwLjgsMC4zLDIuMywyLjYsM2MxLjEsMC4zLDIuMiwwLjQsMywwLjRjMC4zLDAsMC41LDAsMC41LDBjMi41LDAsNC41LDIsNC41LDQuNXYxLjNIMzUuMXYtMS4zYzAtMi41LDItNC41LDQuNi00LjUNCgkJCUM0MC43LDE4LjMsNDUuNSwxOCw0NS41LDE0Ljl6IE03OS40LDgzLjJjMCwzLTIuNCw1LjQtNS40LDUuNEgyNmMtMywwLTUuNC0yLjQtNS40LTUuNFYyNC40YzAtMywyLjQtNS40LDUuNC01LjRoNy44DQoJCQljLTAuNywxLTEuMSwyLjItMS4yLDMuNWgtNi43Yy0wLjcsMC0xLjMsMC42LTEuMywxLjN2NjAuMWMwLDAuNywwLjYsMS4zLDEuMywxLjNoNDhjMC43LDAsMS4zLTAuNiwxLjMtMS4zVjIzLjcNCgkJCWMwLTAuNy0wLjYtMS4zLTEuMy0xLjNoLTYuNmMtMC4xLTEuMy0wLjUtMi41LTEuMi0zLjVINzRjMywwLDUuNCwyLjQsNS40LDUuNFY4My4yeiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTY3LjksMzguM2gtMzZjLTAuOCwwLTEuNS0wLjctMS41LTEuNXMwLjctMS41LDEuNS0xLjVoMzZjMC44LDAsMS41LDAuNywxLjUsMS41UzY4LjcsMzguMyw2Ny45LDM4LjN6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNjcuOSw0Ny4zaC0zNmMtMC44LDAtMS41LTAuNy0xLjUtMS41czAuNy0xLjUsMS41LTEuNWgzNmMwLjgsMCwxLjUsMC43LDEuNSwxLjVTNjguNyw0Ny4zLDY3LjksNDcuM3oiPjwvcGF0aD4NCgk8L2c+DQoJPGc+DQoJCTxwYXRoIGQ9Ik02Ny45LDU2LjNoLTM2Yy0wLjgsMC0xLjUtMC43LTEuNS0xLjVzMC43LTEuNSwxLjUtMS41aDM2YzAuOCwwLDEuNSwwLjcsMS41LDEuNVM2OC43LDU2LjMsNjcuOSw1Ni4zeiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTY3LjksNjUuM2gtMzZjLTAuOCwwLTEuNS0wLjctMS41LTEuNWMwLTAuOCwwLjctMS41LDEuNS0xLjVoMzZjMC44LDAsMS41LDAuNywxLjUsMS41DQoJCQlDNjkuNCw2NC42LDY4LjcsNjUuMyw2Ny45LDY1LjN6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTguMSw3NC4zSDMxLjljLTAuOCwwLTEuNS0wLjctMS41LTEuNXMwLjctMS41LDEuNS0xLjVoMjYuMmMwLjgsMCwxLjUsMC43LDEuNSwxLjVTNTguOSw3NC4zLDU4LjEsNzQuM3oiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgClipboard as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgClockArrow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.9 13.7c-1.7 0-3.1 1.4-3.1 3.1s1.4 3.1 3.1 3.1c16.2 0 29.5 13.2 29.5 29.5 0 16.2-13.2 29.5-29.5 29.5-14.9 0-27.3-11.1-29.2-25.5l2.2 2.2c.6.6 1.4.9 2.2.9s1.6-.3 2.2-.9c1.2-1.2 1.2-3.2 0-4.4l-7.8-7.8c-1.2-1.2-3.2-1.2-4.4 0l-7.8 7.8c-1.2 1.2-1.2 3.2 0 4.4 1.2 1.2 3.2 1.2 4.4 0l2.6-2.6c1.8 18.1 17 32.2 35.6 32.2 19.7 0 35.7-16 35.7-35.7.1-19.8-16-35.8-35.7-35.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.1 66.8c-.9 0-1.7-.3-2.4-1a3.32 3.32 0 010-4.7l10.4-10.4V29.6c0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3V52c0 .9-.3 1.7-1 2.4L42.4 65.8c-.6.7-1.5 1-2.3 1zM75.6 51.5h-3.4c-1.2 0-2.2-1-2.2-2.2 0-1.2 1-2.2 2.2-2.2h3.4c1.2 0 2.2 1 2.2 2.2 0 1.2-.9 2.2-2.2 2.2zM67.5 68.7c-.6 0-1.1-.2-1.6-.6l-2.4-2.4c-.9-.9-.9-2.2 0-3.1.9-.9 2.2-.9 3.1 0L69 65c.9.9.9 2.2 0 3.1-.4.4-1 .6-1.5.6zM50.2 75.8c-1.2 0-2.2-1-2.2-2.2v-3.4c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2v3.4c0 1.2-.9 2.2-2.2 2.2zM65 36.7c-.6 0-1.1-.2-1.6-.6-.9-.9-.9-2.2 0-3.1l2.4-2.4c.9-.9 2.2-.9 3.1 0 .9.9.9 2.2 0 3.1L66.6 36c-.5.5-1 .7-1.6.7z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTUxLjksMTMuN2MtMS43LDAtMy4xLDEuNC0zLjEsMy4xczEuNCwzLjEsMy4xLDMuMWMxNi4yLDAsMjkuNSwxMy4yLDI5LjUsMjkuNWMwLDE2LjItMTMuMiwyOS41LTI5LjUsMjkuNQ0KCQkJYy0xNC45LDAtMjcuMy0xMS4xLTI5LjItMjUuNWwyLjIsMi4yYzAuNiwwLjYsMS40LDAuOSwyLjIsMC45czEuNi0wLjMsMi4yLTAuOWMxLjItMS4yLDEuMi0zLjIsMC00LjRsLTcuOC03LjgNCgkJCWMtMS4yLTEuMi0zLjItMS4yLTQuNCwwbC03LjgsNy44Yy0xLjIsMS4yLTEuMiwzLjIsMCw0LjRjMS4yLDEuMiwzLjIsMS4yLDQuNCwwbDIuNi0yLjZjMS44LDE4LjEsMTcsMzIuMiwzNS42LDMyLjINCgkJCWMxOS43LDAsMzUuNy0xNiwzNS43LTM1LjdDODcuNywyOS43LDcxLjYsMTMuNyw1MS45LDEzLjd6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNDAuMSw2Ni44Yy0wLjksMC0xLjctMC4zLTIuNC0xYy0xLjMtMS4zLTEuMy0zLjQsMC00LjdsMTAuNC0xMC40VjI5LjZjMC0xLjgsMS41LTMuMywzLjMtMy4zDQoJCQljMS44LDAsMy4zLDEuNSwzLjMsMy4zdjIyLjRjMCwwLjktMC4zLDEuNy0xLDIuNEw0Mi40LDY1LjhDNDEuOCw2Ni41LDQwLjksNjYuOCw0MC4xLDY2Ljh6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNzUuNiw1MS41aC0zLjRjLTEuMiwwLTIuMi0xLTIuMi0yLjJjMC0xLjIsMS0yLjIsMi4yLTIuMmgzLjRjMS4yLDAsMi4yLDEsMi4yLDIuMg0KCQkJQzc3LjgsNTAuNSw3Ni45LDUxLjUsNzUuNiw1MS41eiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTY3LjUsNjguN2MtMC42LDAtMS4xLTAuMi0xLjYtMC42bC0yLjQtMi40Yy0wLjktMC45LTAuOS0yLjIsMC0zLjFjMC45LTAuOSwyLjItMC45LDMuMSwwbDIuNCwyLjQNCgkJCWMwLjksMC45LDAuOSwyLjIsMCwzLjFDNjguNiw2OC41LDY4LDY4LjcsNjcuNSw2OC43eiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTUwLjIsNzUuOGMtMS4yLDAtMi4yLTEtMi4yLTIuMnYtMy40YzAtMS4yLDEtMi4yLDIuMi0yLjJjMS4yLDAsMi4yLDEsMi4yLDIuMnYzLjQNCgkJCUM1Mi40LDc0LjgsNTEuNSw3NS44LDUwLjIsNzUuOHoiPjwvcGF0aD4NCgk8L2c+DQoJPGc+DQoJCTxwYXRoIGQ9Ik02NSwzNi43Yy0wLjYsMC0xLjEtMC4yLTEuNi0wLjZjLTAuOS0wLjktMC45LTIuMiwwLTMuMWwyLjQtMi40YzAuOS0wLjksMi4yLTAuOSwzLjEsMGMwLjksMC45LDAuOSwyLjIsMCwzLjENCgkJCUw2Ni42LDM2QzY2LjEsMzYuNSw2NS42LDM2LjcsNjUsMzYuN3oiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgClockArrow as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgSpeechBubbles(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30 82.3c-2.2 0-3.5-.9-4.2-1.7-1.8-1.9-1.7-4.6-1.7-4.9V71h-.6c-6.1 0-11-5-11-11.1V42.5c0-6.1 5-11.1 11.1-11.1h39.2c6.1 0 11.1 5 11.1 11.1v17.4c0 6.1-5 11.1-11.1 11.1H44.1l-7.4 7.6c-1.2 1.2-3.4 3.7-6.7 3.7zm-6.4-46.4c-3.6 0-6.6 3-6.6 6.6v17.4c0 3.6 3 6.6 6.6 6.6l2.8.1c1.2 0 2.2 1 2.2 2.3v7c0 .5.1 1.3.5 1.7.1.1.3.3.9.3V80v-2.3c1.3 0 2.5-1.3 3.3-2.2l.4-.4 7.8-7.9c.4-.4 1-.7 1.6-.7h19.7c3.6 0 6.6-3 6.6-6.6V42.5c0-3.6-2.9-6.6-6.6-6.6H23.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.6 52.4c-1.2 0-2.3-1-2.3-2.3s1-2.3 2.3-2.3c2.9 0 5.3-2.4 5.3-5.3v-12c0-5.9-2.5-8.4-8.3-8.4H43.9c-2.9 0-5.3 2.4-5.3 5.4 0 1.2-1 2.3-2.3 2.3s-2.3-1-2.3-2.3c0-5.4 4.4-9.9 9.8-9.9h30.8c8.4 0 12.8 4.4 12.8 12.9v12c.1 5.5-4.3 9.9-9.8 9.9zM54.9 49.7H28.3c-1.2 0-2.3-1-2.3-2.3s1-2.3 2.3-2.3h26.6c1.2 0 2.3 1 2.3 2.3s-1.1 2.3-2.3 2.3zM43.2 59.4H28.3c-1.2 0-2.3-1-2.3-2.3s1-2.3 2.3-2.3h14.9c1.2 0 2.3 1 2.3 2.3s-1.1 2.3-2.3 2.3z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTMwLDgyLjNDMzAsODIuMywzMCw4Mi4zLDMwLDgyLjNjLTIuMiwwLTMuNS0wLjktNC4yLTEuN2MtMS44LTEuOS0xLjctNC42LTEuNy00LjlsMC00LjdsLTAuNiwwDQoJCQljLTYuMSwwLTExLTUtMTEtMTEuMVY0Mi41YzAtNi4xLDUtMTEuMSwxMS4xLTExLjFoMzkuMmM2LjEsMCwxMS4xLDUsMTEuMSwxMS4xdjE3LjRjMCw2LjEtNSwxMS4xLTExLjEsMTEuMUg0NC4xbC03LjQsNy42DQoJCQlDMzUuNSw3OS44LDMzLjMsODIuMywzMCw4Mi4zeiBNMjMuNiwzNS45Yy0zLjYsMC02LjYsMy02LjYsNi42djE3LjRjMCwzLjYsMyw2LjYsNi42LDYuNmwyLjgsMC4xYzEuMiwwLDIuMiwxLDIuMiwyLjN2Nw0KCQkJYzAsMC41LDAuMSwxLjMsMC41LDEuN2MwLjEsMC4xLDAuMywwLjMsMC45LDAuM1Y4MGwwLTIuM2MxLjMsMCwyLjUtMS4zLDMuMy0yLjJsMC40LTAuNGw3LjgtNy45YzAuNC0wLjQsMS0wLjcsMS42LTAuN2gxOS43DQoJCQljMy42LDAsNi42LTMsNi42LTYuNlY0Mi41YzAtMy42LTIuOS02LjYtNi42LTYuNkgyMy42eiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTc3LjYsNTIuNGMtMS4yLDAtMi4zLTEtMi4zLTIuM3MxLTIuMywyLjMtMi4zYzIuOSwwLDUuMy0yLjQsNS4zLTUuM3YtMTJjMC01LjktMi41LTguNC04LjMtOC40SDQzLjkNCgkJCWMtMi45LDAtNS4zLDIuNC01LjMsNS40YzAsMS4yLTEsMi4zLTIuMywyLjNzLTIuMy0xLTIuMy0yLjNjMC01LjQsNC40LTkuOSw5LjgtOS45aDMwLjhjOC40LDAsMTIuOCw0LjQsMTIuOCwxMi45djEyDQoJCQlDODcuNSw0OCw4My4xLDUyLjQsNzcuNiw1Mi40eiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTU0LjksNDkuN0gyOC4zYy0xLjIsMC0yLjMtMS0yLjMtMi4zczEtMi4zLDIuMy0yLjNoMjYuNmMxLjIsMCwyLjMsMSwyLjMsMi4zUzU2LjEsNDkuNyw1NC45LDQ5Ljd6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNDMuMiw1OS40SDI4LjNjLTEuMiwwLTIuMy0xLTIuMy0yLjNzMS0yLjMsMi4zLTIuM2gxNC45YzEuMiwwLDIuMywxLDIuMywyLjNTNDQuNCw1OS40LDQzLjIsNTkuNHoiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgSpeechBubbles as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgThumbsUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"thumbsUp_svg__st0\",\n d: \"M79.3 40.1l-14.2-4.3 2.1-10.9c.2-.8.2-1.7.2-2.6v-2c0-4.6-3.7-8.3-8.3-8.3h-1.6c-2.2 0-4.1 1.7-4.1 4l-.1 4v.1c.1 2.7-.4 4.1-1.2 5.7 0 0 0 .1-.1.1L47.8 36c-2.5 3.9-6.6 6.2-11.2 6.4-.7-1.9-2.5-3.3-4.7-3.3h-12c-2.8 0-5 2.3-5 5V75c0 2.8 2.3 5 5 5h12c2.7 0 4.9-2.5 5-5.1H41c1.4 0 2.7.7 3.6 1.7l2.1 2.3c1.6 1.7 3.8 2.8 6.2 2.8h17c3.7 0 7.1-2.5 8-6.1l7-25.3c1.3-4.4-1.2-8.9-5.6-10.2zM33.4 75c0 .9-.7 1.6-1.6 1.6h-12c-.9 0-1.6-.7-1.6-1.6V44.3c0-.9.7-1.6 1.6-1.6h12c.9 0 1.6.7 1.6 1.6V75zm48.3-25.6l-7 25.3c-.6 2.1-2.5 3.6-4.8 3.6h-17V80v-1.7c-1.7 0-2.8-.6-3.7-1.6l-2.1-2.4c-1.6-1.7-3.8-2.8-6.2-2.8h-4.1V45.9c5.6-.3 10.7-3.2 13.8-8v-.1c.1-.1.1-.2.1-.3L55 27.4c1-1.9 1.7-3.9 1.6-7.3l.1-4c0-.4.3-.7.7-.7H59c2.7 0 4.9 2.2 4.9 4.9v2c0 .6 0 1.3-.1 1.9l-2.4 12.4c-.2.9.3 1.7 1.2 2l15.7 4.8c2.6.7 4.1 3.4 3.4 6z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc5LjMsNDAuMWwtMTQuMi00LjNsMi4xLTEwLjljMC4yLTAuOCwwLjItMS43LDAuMi0yLjZ2LTJjMC00LjYtMy43LTguMy04LjMtOC4zaC0xLjZjLTIuMiwwLTQuMSwxLjctNC4xLDQNCgkJCWwtMC4xLDRjMCwwLDAsMC4xLDAsMC4xYzAuMSwyLjctMC40LDQuMS0xLjIsNS43YzAsMCwwLDAuMS0wLjEsMC4xbC00LjIsMTAuMWMtMi41LDMuOS02LjYsNi4yLTExLjIsNi40Yy0wLjctMS45LTIuNS0zLjMtNC43LTMuMw0KCQkJaC0xMmMtMi44LDAtNSwyLjMtNSw1Vjc1YzAsMi44LDIuMyw1LDUsNWgxMmMyLjcsMCw0LjktMi41LDUtNS4xSDQxYzEuNCwwLDIuNywwLjcsMy42LDEuN2wyLjEsMi4zYzEuNiwxLjcsMy44LDIuOCw2LjIsMi44aDANCgkJCWwxNywwYzMuNywwLDcuMS0yLjUsOC02LjFsNy0yNS4zQzg2LjIsNDUuOSw4My43LDQxLjQsNzkuMyw0MC4xeiBNMzMuNCw3NWMwLDAuOS0wLjcsMS42LTEuNiwxLjZoLTEyYy0wLjksMC0xLjYtMC43LTEuNi0xLjZWNDQuMw0KCQkJYzAtMC45LDAuNy0xLjYsMS42LTEuNmgxMmMwLjksMCwxLjYsMC43LDEuNiwxLjZ2MjkuMlY3NXogTTgxLjcsNDkuNGwtNywyNS4zYy0wLjYsMi4xLTIuNSwzLjYtNC44LDMuNmwtMTcsMGwwLDEuN3YtMS43DQoJCQljLTEuNywwLTIuOC0wLjYtMy43LTEuNmwtMi4xLTIuNGMtMS42LTEuNy0zLjgtMi44LTYuMi0yLjhoLTQuMVY0NS45YzUuNi0wLjMsMTAuNy0zLjIsMTMuOC04bDAtMC4xYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zDQoJCQlMNTUsMjcuNGMxLTEuOSwxLjctMy45LDEuNi03LjNsMC4xLTRjMC0wLjQsMC4zLTAuNywwLjctMC43aDEuNmMyLjcsMCw0LjksMi4yLDQuOSw0Ljl2MmMwLDAuNiwwLDEuMy0wLjEsMS45bC0yLjQsMTIuNA0KCQkJYy0wLjIsMC45LDAuMywxLjcsMS4yLDJsMTUuNyw0LjhDODAuOSw0NC4xLDgyLjQsNDYuOCw4MS43LDQ5LjR6Ij48L3BhdGg+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgThumbsUp as ReactComponent };","var _path, _path2, _path3;\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\nimport * as React from \"react\";\n\nfunction SvgCloseIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 512C114.84 512 0 397.16 0 256S114.84 0 256 0s256 114.84 256 256-114.84 256-256 256zm0-475.43C135.008 36.57 36.57 135.008 36.57 256S135.008 475.43 256 475.43 475.43 376.992 475.43 256 376.992 36.57 256 36.57zm0 0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M347.43 365.715c-4.68 0-9.36-1.785-12.93-5.36L151.645 177.5c-7.145-7.145-7.145-18.715 0-25.855 7.14-7.141 18.714-7.145 25.855 0L360.355 334.5c7.145 7.145 7.145 18.715 0 25.855a18.207 18.207 0 01-12.925 5.36zm0 0\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.57 365.715c-4.68 0-9.355-1.785-12.925-5.36-7.145-7.14-7.145-18.714 0-25.855L334.5 151.645c7.145-7.145 18.715-7.145 25.855 0 7.141 7.14 7.145 18.714 0 25.855L177.5 360.355a18.216 18.216 0 01-12.93 5.36zm0 0\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIj4NCiAgPHBhdGggZD0ibTI1NiA1MTJjLTE0MS4xNjAxNTYgMC0yNTYtMTE0LjgzOTg0NC0yNTYtMjU2czExNC44Mzk4NDQtMjU2IDI1Ni0yNTYgMjU2IDExNC44Mzk4NDQgMjU2IDI1Ni0xMTQuODM5ODQ0IDI1Ni0yNTYgMjU2em0wLTQ3NS40Mjk2ODhjLTEyMC45OTIxODggMC0yMTkuNDI5Njg4IDk4LjQzNzUtMjE5LjQyOTY4OCAyMTkuNDI5Njg4czk4LjQzNzUgMjE5LjQyOTY4OCAyMTkuNDI5Njg4IDIxOS40Mjk2ODggMjE5LjQyOTY4OC05OC40Mzc1IDIxOS40Mjk2ODgtMjE5LjQyOTY4OC05OC40Mzc1LTIxOS40Mjk2ODgtMjE5LjQyOTY4OC0yMTkuNDI5Njg4em0wIDAiLz4NCiAgPHBhdGggZD0ibTM0Ny40Mjk2ODggMzY1LjcxNDg0NGMtNC42Nzk2ODggMC05LjM1OTM3Ni0xLjc4NTE1Ni0xMi45Mjk2ODgtNS4zNTkzNzVsLTE4Mi44NTU0NjktMTgyLjg1NTQ2OWMtNy4xNDQ1MzEtNy4xNDQ1MzEtNy4xNDQ1MzEtMTguNzE0ODQ0IDAtMjUuODU1NDY5IDcuMTQwNjI1LTcuMTQwNjI1IDE4LjcxNDg0NC03LjE0NDUzMSAyNS44NTU0NjkgMGwxODIuODU1NDY5IDE4Mi44NTU0NjljNy4xNDQ1MzEgNy4xNDQ1MzEgNy4xNDQ1MzEgMTguNzE0ODQ0IDAgMjUuODU1NDY5LTMuNTcwMzEzIDMuNTc0MjE5LTguMjQ2MDk0IDUuMzU5Mzc1LTEyLjkyNTc4MSA1LjM1OTM3NXptMCAwIi8+DQogIDxwYXRoIGQ9Im0xNjQuNTcwMzEyIDM2NS43MTQ4NDRjLTQuNjc5Njg3IDAtOS4zNTU0NjgtMS43ODUxNTYtMTIuOTI1NzgxLTUuMzU5Mzc1LTcuMTQ0NTMxLTcuMTQwNjI1LTcuMTQ0NTMxLTE4LjcxNDg0NCAwLTI1Ljg1NTQ2OWwxODIuODU1NDY5LTE4Mi44NTU0NjljNy4xNDQ1MzEtNy4xNDQ1MzEgMTguNzE0ODQ0LTcuMTQ0NTMxIDI1Ljg1NTQ2OSAwIDcuMTQwNjI1IDcuMTQwNjI1IDcuMTQ0NTMxIDE4LjcxNDg0NCAwIDI1Ljg1NTQ2OWwtMTgyLjg1NTQ2OSAxODIuODU1NDY5Yy0zLjU3MDMxMiAzLjU3NDIxOS04LjI1IDUuMzU5Mzc1LTEyLjkyOTY4OCA1LjM1OTM3NXptMCAwIi8+DQo8L3N2Zz4=\";\nexport { SvgCloseIcon as ReactComponent };","import React from \"react\";\r\n\r\nimport classnames from \"classnames\";\r\nimport styled from \"styled-components\";\r\n\r\nimport questionMarkSvg from \"../assets/svg/questionMark.svg\";\r\nimport clipboardSvg from \"../assets/svg/clipboard.svg\";\r\nimport clockArrowSvg from \"../assets/svg/clockArrow.svg\";\r\nimport dollarSignSvg from \"../assets/svg/dollarSignCircled.svg\";\r\nimport lightbulbSvg from \"../assets/svg/lightbulb.svg\";\r\nimport speechSvg from \"../assets/svg/speechBubbles.svg\";\r\nimport thumbsUpSvg from \"../assets/svg/thumbsUp.svg\";\r\nimport warningSvg from \"../assets/svg/warningSign.svg\";\r\n\r\nimport { ReactComponent as CloseIcon } from \"../assets/svg/closeIcon.svg\";\r\n\r\ntype Datum = {\r\n svgSrc: string;\r\n title: string;\r\n description: string;\r\n tip: React.ReactNode;\r\n};\r\n\r\nconst BUSINESS_DATA: Datum[] = [\r\n {\r\n svgSrc: speechSvg,\r\n title: \"Consultation\",\r\n description: \"What evidence did you use? Who did you consult with?\",\r\n tip: null,\r\n },\r\n {\r\n svgSrc: questionMarkSvg,\r\n title: \"The problem\",\r\n description: \"Why are you doing this?\",\r\n tip: (\r\n <>\r\n To support your case you should include key workplace statistics and\r\n specific information about the health status of your employees to help\r\n emphasise your point (e.g. sick leave rates, health survey results,\r\n levels of overweight/obesity). Use statistics from our{\" \"}\r\n \r\n Business Case Brochure\r\n {\" \"}\r\n to help make your point.\r\n \r\n ),\r\n },\r\n {\r\n svgSrc: lightbulbSvg,\r\n title: \"The solution\",\r\n description: \"What do you plan to do and achieve?\",\r\n tip: null,\r\n },\r\n {\r\n svgSrc: thumbsUpSvg,\r\n title: \"The benefits\",\r\n description: \"What are the gains for business?\",\r\n tip: (\r\n <>\r\n Use examples like increased productivity, improved business reputation,\r\n reduced sick leave and staff turnover.\r\n \r\n ),\r\n },\r\n {\r\n svgSrc: warningSvg,\r\n title: \"The risks\",\r\n description: \"What could go wrong and how will you minimise these risks?\",\r\n tip: null,\r\n },\r\n {\r\n svgSrc: dollarSignSvg,\r\n title: \"The cost\",\r\n description:\r\n \"Include out of pocket expenses as well as in-kind (e.g. hours to coordinate).\",\r\n tip: (\r\n <>\r\n Workplace health and wellbeing strategies don’t need to cost a lot.\r\n There are many free or low cost strategies and these should be included\r\n in your business case. Unlock our{\" \"}\r\n \r\n Quick Wins\r\n {\" \"}\r\n for some inspiration.\r\n \r\n ),\r\n },\r\n {\r\n svgSrc: clockArrowSvg,\r\n title: \"The timeline\",\r\n description:\r\n \"What are the major milestones and when will they be completed?\",\r\n tip: null,\r\n },\r\n {\r\n svgSrc: clipboardSvg,\r\n title: \"Evaluation\",\r\n description: \"How will you measure and report results?\",\r\n tip: null,\r\n },\r\n];\r\n\r\nexport const BusinessCircles: React.FC<{}> = () => {\r\n const [rotateSatellites, setRotateSatellites] = React.useState(0);\r\n const [showInfo, setShowInfo] = React.useState(false);\r\n\r\n const changeButton = (e: React.MouseEvent) => {\r\n if (showInfo) {\r\n setShowInfo(false);\r\n }\r\n const { value } = e.currentTarget;\r\n setRotateSatellites(parseInt(value, 10));\r\n };\r\n\r\n const toggleInfo = () => {\r\n setShowInfo((prev) => !prev);\r\n };\r\n\r\n return (\r\n \r\n \r\n

    \r\n {BUSINESS_DATA[rotateSatellites].description}\r\n

    \r\n {BUSINESS_DATA[rotateSatellites].tip && (\r\n \r\n {showInfo ? (\r\n \r\n Tip\r\n \r\n {BUSINESS_DATA[rotateSatellites].tip}\r\n \r\n \r\n \r\n ) : (\r\n \"i\"\r\n )}\r\n \r\n )}\r\n
    \r\n {BUSINESS_DATA.map(({ svgSrc, title }, idx) => (\r\n \r\n \r\n \r\n {`${title}\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nconst OuterWrapper = styled.div`\r\n position: relative;\r\n margin: 2rem auto;\r\n width: 45rem;\r\n height: 45rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transform: rotate(-90deg);\r\n`;\r\n\r\nconst InnerWrapper = styled.div`\r\n position: relative;\r\n padding: 1rem 2rem;\r\n width: 50%;\r\n height: 50%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n color: white;\r\n border: 1.5rem solid lightgrey;\r\n border-radius: 50%;\r\n transform: rotate(90deg);\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n top: calc(-10rem - 2%);\r\n bottom: calc(-10rem - 2%);\r\n left: calc(-10rem - 2%);\r\n right: calc(-10rem - 2%);\r\n border: 1px dashed grey;\r\n border-radius: 50%;\r\n }\r\n`;\r\n\r\nconst SatelliteWrapper = styled.div<{\r\n rotation: number;\r\n rotateSatellites: number;\r\n}>`\r\n position: absolute;\r\n width: 18%;\r\n height: 18%;\r\n border-radius: 50%;\r\n transition: 500ms all cubic-bezier(0.34, 1.25, 0.64, 1);\r\n transform: ${(props) =>\r\n `rotate(${\r\n ((props.rotation - props.rotateSatellites) / 8) * 360\r\n }deg) translate(20rem)`};\r\n`;\r\n\r\nconst SatelliteContent = styled.div<{\r\n rotation: number;\r\n rotateSatellites: number;\r\n}>`\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n transition: 300ms all cubic-bezier(0.34, 1.56, 0.64, 1);\r\n transform: ${(props) =>\r\n `rotate(${\r\n (props.rotateSatellites + 1) * 90 -\r\n ((props.rotation + props.rotateSatellites) / 8) * 360\r\n }deg)`};\r\n`;\r\n\r\nconst SatelliteIcon = styled.button<{ active: boolean }>`\r\n border-radius: 50%;\r\n width: 60%;\r\n height: 60%;\r\n padding: 1rem;\r\n border: none;\r\n background-color: ${(p) => (p.active ? p.theme.info : p.theme.gray800)};\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst SatelliteTitle = styled.strong<{ active: boolean }>`\r\n color: ${(p) => (p.active ? p.theme.info : p.theme.gray800)};\r\n`;\r\n\r\nconst InfoButton = styled.button<{ active: boolean }>`\r\n position: absolute;\r\n left: ${(props) => (props.active ? \"-25%\" : \"calc(50% - 1rem)\")};\r\n bottom: ${(props) => (props.active ? \"-25%\" : \"2rem\")};\r\n width: ${(props) => (props.active ? \"150%\" : \"2rem\")};\r\n height: ${(props) => (props.active ? \"150%\" : \"2rem\")};\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n color: white;\r\n border: none;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n z-index: 1;\r\n overflow: hidden;\r\n transition: 400ms all ease;\r\n &:focus {\r\n outline: ${(props) => (props.active ? \"none\" : \"auto\")};\r\n }\r\n`;\r\n\r\nconst OpenTip = styled.small`\r\n padding: 1rem 4rem;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgQuestionMark(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.6 47.7c0-2.9 3.2-3.4 6.5-4.3 3.2-.9 6.4-2.2 6.4-6.8 0-3.5-3.3-6.1-6.7-6.1-6.8 0-7.8 8-12.9 8-2.9 0-4.9-2.3-4.9-5.8 0-8.4 10.6-13.3 17.8-13.3 10.4 0 19.2 6.4 19.2 17.2 0 8.9-5.6 14.1-13.9 16.2v2.9c0 3.2-2.4 5.5-5.8 5.5-3.6 0-5.8-2.3-5.8-5.5v-8zm-.5 24.6c0-3.5 2.8-6.3 6.3-6.3s6.3 2.8 6.3 6.3-2.8 6.3-6.3 6.3-6.3-2.8-6.3-6.3z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTQyLjYsNDcuN2MwLTIuOSwzLjItMy40LDYuNS00LjNjMy4yLTAuOSw2LjQtMi4yLDYuNC02LjhjMC0zLjUtMy4zLTYuMS02LjctNi4xYy02LjgsMC03LjgsOC0xMi45LDgNCgkJCWMtMi45LDAtNC45LTIuMy00LjktNS44YzAtOC40LDEwLjYtMTMuMywxNy44LTEzLjNjMTAuNCwwLDE5LjIsNi40LDE5LjIsMTcuMmMwLDguOS01LjYsMTQuMS0xMy45LDE2LjJ2Mi45DQoJCQljMCwzLjItMi40LDUuNS01LjgsNS41Yy0zLjYsMC01LjgtMi4zLTUuOC01LjVWNDcuN3ogTTQyLjEsNzIuM2MwLTMuNSwyLjgtNi4zLDYuMy02LjNzNi4zLDIuOCw2LjMsNi4zYzAsMy41LTIuOCw2LjMtNi4zLDYuMw0KCQkJUzQyLjEsNzUuOCw0Mi4xLDcyLjN6Ij48L3BhdGg+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgQuestionMark as ReactComponent };","var _path, _path2, _path3, _path4, _g, _g2;\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\nimport * as React from \"react\";\n\nfunction SvgLightbulb(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57 86.5H43c-2.7 0-4.9-2.2-4.9-4.9v-6.3c0-2.7 2.2-4.9 4.9-4.9h14c2.7 0 4.9 2.2 4.9 4.9v6.3c-.1 2.7-2.3 4.9-4.9 4.9zM43 73.4c-1.1 0-1.9.9-1.9 1.9v6.3c0 1.1.9 1.9 1.9 1.9h14c1.1 0 1.9-.9 1.9-1.9v-6.3c0-1.1-.9-1.9-1.9-1.9H43z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57 73.4H43c-2.7 0-4.9-2.2-4.9-4.9V67c0-3.8-2.5-8.2-5.2-12.9-3.5-6.1-7.5-13.1-7.5-21 0-13.5 11-24.6 24.6-24.6s24.6 11 24.6 24.6c0 7.3-3.9 14.3-7.3 20.4-2.8 5-5.4 9.7-5.4 13.6v1.5c-.1 2.6-2.3 4.8-4.9 4.8zm-7-61.9c-11.9 0-21.6 9.7-21.6 21.6 0 7.2 3.8 13.8 7.1 19.6 2.9 5.1 5.6 9.8 5.6 14.4v1.5c0 1.1.9 1.9 1.9 1.9h14c1.1 0 1.9-.9 1.9-1.9V67c0-4.6 2.8-9.7 5.8-15 3.4-6.1 6.9-12.5 6.9-19 0-11.9-9.7-21.5-21.6-21.5z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53.8 71.9h-3V47.2h-2.7v-3H51c.2-1.1.6-2.4 1.6-3.4.9-1 2.2-1.5 3.7-1.5 1.6 0 2.9.5 3.9 1.6 1.7 1.9 1.6 4.6 1.6 5-.1.8-.7 1.4-1.5 1.4h-6.5v24.6zm.2-27.7h4.7c-.1-.5-.3-1-.7-1.4-.4-.4-1-.6-1.7-.6s-1.2.2-1.6.6c-.3.4-.5.9-.7 1.4z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.1 71.9h-3V47.2h-6.5c-.8 0-1.4-.6-1.5-1.4 0-.3-.2-3.1 1.6-5 1-1 2.3-1.6 3.9-1.6 1.5 0 2.8.5 3.7 1.5.9 1 1.4 2.3 1.6 3.4h2.9v3h-2.7v24.8zm-7.8-27.7H46c-.1-.5-.4-1-.7-1.4-.4-.4-.9-.6-1.6-.6-.8 0-1.3.2-1.7.6-.4.4-.6.9-.7 1.4z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.6 77h20.7v3H39.6z\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.8 90.3h-9.6c-1.9 0-3.4-1.5-3.4-3.4s1.5-3.4 3.4-3.4h9.6c1.9 0 3.4 1.5 3.4 3.4s-1.6 3.4-3.4 3.4zm-9.6-3.8c-.2 0-.4.2-.4.4s.2.4.4.4h9.6c.2 0 .4-.2.4-.4s-.2-.4-.4-.4h-9.6z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBkPSJNNTcsODYuNUg0M2MtMi43LDAtNC45LTIuMi00LjktNC45di02LjNjMC0yLjcsMi4yLTQuOSw0LjktNC45SDU3YzIuNywwLDQuOSwyLjIsNC45LDQuOXY2LjMNCgkJCQkJQzYxLjgsODQuMyw1OS42LDg2LjUsNTcsODYuNXogTTQzLDczLjRjLTEuMSwwLTEuOSwwLjktMS45LDEuOXY2LjNjMCwxLjEsMC45LDEuOSwxLjksMS45SDU3YzEuMSwwLDEuOS0wLjksMS45LTEuOXYtNi4zDQoJCQkJCWMwLTEuMS0wLjktMS45LTEuOS0xLjlINDN6Ij48L3BhdGg+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBkPSJNNTcsNzMuNEg0M2MtMi43LDAtNC45LTIuMi00LjktNC45VjY3YzAtMy44LTIuNS04LjItNS4yLTEyLjlDMjkuNCw0OCwyNS40LDQxLDI1LjQsMzMuMQ0KCQkJCQljMC0xMy41LDExLTI0LjYsMjQuNi0yNC42czI0LjYsMTEsMjQuNiwyNC42YzAsNy4zLTMuOSwxNC4zLTcuMywyMC40Yy0yLjgsNS01LjQsOS43LTUuNCwxMy42djEuNUM2MS44LDcxLjIsNTkuNiw3My40LDU3LDczLjQNCgkJCQkJeiBNNTAsMTEuNWMtMTEuOSwwLTIxLjYsOS43LTIxLjYsMjEuNmMwLDcuMiwzLjgsMTMuOCw3LjEsMTkuNmMyLjksNS4xLDUuNiw5LjgsNS42LDE0LjR2MS41YzAsMS4xLDAuOSwxLjksMS45LDEuOUg1Nw0KCQkJCQljMS4xLDAsMS45LTAuOSwxLjktMS45VjY3YzAtNC42LDIuOC05LjcsNS44LTE1YzMuNC02LjEsNi45LTEyLjUsNi45LTE5QzcxLjYsMjEuMSw2MS45LDExLjUsNTAsMTEuNXoiPjwvcGF0aD4NCgkJCTwvZz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxnPg0KCQkJCQk8cGF0aCBkPSJNNTMuOCw3MS45aC0zVjQ3LjJoLTIuN3YtM0g1MWMwLjItMS4xLDAuNi0yLjQsMS42LTMuNGMwLjktMSwyLjItMS41LDMuNy0xLjVjMS42LDAsMi45LDAuNSwzLjksMS42DQoJCQkJCQljMS43LDEuOSwxLjYsNC42LDEuNiw1Yy0wLjEsMC44LTAuNywxLjQtMS41LDEuNGgtNi41TDUzLjgsNzEuOXogTTU0LDQ0LjJoNC43Yy0wLjEtMC41LTAuMy0xLTAuNy0xLjRjLTAuNC0wLjQtMS0wLjYtMS43LTAuNg0KCQkJCQkJYy0wLjcsMC0xLjIsMC4yLTEuNiwwLjZDNTQuNCw0My4yLDU0LjIsNDMuNyw1NCw0NC4yeiI+PC9wYXRoPg0KCQkJCTwvZz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxnPg0KCQkJCQk8cGF0aCBkPSJNNDkuMSw3MS45aC0zVjQ3LjJoLTYuNWMtMC44LDAtMS40LTAuNi0xLjUtMS40YzAtMC4zLTAuMi0zLjEsMS42LTVjMS0xLDIuMy0xLjYsMy45LTEuNg0KCQkJCQkJYzEuNSwwLDIuOCwwLjUsMy43LDEuNWMwLjksMSwxLjQsMi4zLDEuNiwzLjRoMi45djNoLTIuN0w0OS4xLDcxLjl6IE00MS4zLDQ0LjJINDZjLTAuMS0wLjUtMC40LTEtMC43LTEuNA0KCQkJCQkJYy0wLjQtMC40LTAuOS0wLjYtMS42LTAuNmMtMC44LDAtMS4zLDAuMi0xLjcsMC42QzQxLjYsNDMuMiw0MS40LDQzLjcsNDEuMyw0NC4yeiI+PC9wYXRoPg0KCQkJCTwvZz4NCgkJCTwvZz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxyZWN0IHg9IjM5LjYiIHk9Ijc3IiB3aWR0aD0iMjAuNyIgaGVpZ2h0PSIzIj48L3JlY3Q+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTU0LjgsOTAuM2gtOS42Yy0xLjksMC0zLjQtMS41LTMuNC0zLjRzMS41LTMuNCwzLjQtMy40aDkuNmMxLjksMCwzLjQsMS41LDMuNCwzLjRTNTYuNiw5MC4zLDU0LjgsOTAuM3oNCgkJCQkgTTQ1LjIsODYuNWMtMC4yLDAtMC40LDAuMi0wLjQsMC40czAuMiwwLjQsMC40LDAuNGg5LjZjMC4yLDAsMC40LTAuMiwwLjQtMC40cy0wLjItMC40LTAuNC0wLjRINDUuMnoiPjwvcGF0aD4NCgkJPC9nPg0KCTwvZz4NCjwvc3ZnPg==\";\nexport { SvgLightbulb as ReactComponent };","var _circle, _circle2, _path, _circle3, _path2, _path3, _path4, _path5;\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\nimport * as React from \"react\";\n\nfunction SvgWarningSign(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 43.2,\n r: 3.7\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 61.3,\n r: 1.9\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.9 61.3h-3.8l-1.8-18.1h7.4z\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 67.8,\n r: 3\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"warningSign_svg__st2\",\n d: \"M50.3 21L18.1 77.3\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.1 79.8c-.4 0-.8-.1-1.2-.3-1.2-.7-1.6-2.2-.9-3.4l32.2-56.4c.7-1.2 2.2-1.6 3.4-.9 1.2.7 1.6 2.2.9 3.4L20.3 78.6c-.5.8-1.3 1.2-2.2 1.2z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.9 79.8H18.1c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5h63.8c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.9 79.8c-.9 0-1.7-.5-2.2-1.3L48.1 22.2c-.7-1.2-.2-2.7.9-3.4 1.2-.7 2.7-.2 3.4.9L84 76.1c.7 1.2.2 2.7-.9 3.4-.4.2-.8.3-1.2.3z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPGNpcmNsZSBjeD0iNTAiIGN5PSI0My4yIiByPSIzLjciPjwvY2lyY2xlPg0KCTwvZz4NCgk8Zz4NCgkJPGNpcmNsZSBjeD0iNTAiIGN5PSI2MS4zIiByPSIxLjkiPjwvY2lyY2xlPg0KCTwvZz4NCgk8Zz4NCgkJPHBvbHlnb24gcG9pbnRzPSI1MS45LDYxLjMgNDguMSw2MS4zIDQ2LjMsNDMuMiA1My43LDQzLjIgCSI+PC9wb2x5Z29uPg0KCTwvZz4NCgk8Zz4NCgkJPGNpcmNsZSBjeD0iNTAiIGN5PSI2Ny44IiByPSIzIj48L2NpcmNsZT4NCgk8L2c+DQoJPGc+DQoJCTxsaW5lIGNsYXNzPSJzdDIiIHgxPSI1MC4zIiB5MT0iMjEiIHgyPSIxOC4xIiB5Mj0iNzcuMyI+PC9saW5lPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTE4LjEsNzkuOGMtMC40LDAtMC44LTAuMS0xLjItMC4zYy0xLjItMC43LTEuNi0yLjItMC45LTMuNGwzMi4yLTU2LjRjMC43LTEuMiwyLjItMS42LDMuNC0wLjkNCgkJCWMxLjIsMC43LDEuNiwyLjIsMC45LDMuNEwyMC4zLDc4LjZDMTkuOCw3OS40LDE5LDc5LjgsMTguMSw3OS44eiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTgxLjksNzkuOEgxOC4xYy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVjMC0xLjQsMS4xLTIuNSwyLjUtMi41aDYzLjhjMS40LDAsMi41LDEuMSwyLjUsMi41DQoJCQlDODQuNCw3OC43LDgzLjMsNzkuOCw4MS45LDc5Ljh6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNODEuOSw3OS44Yy0wLjksMC0xLjctMC41LTIuMi0xLjNMNDguMSwyMi4yYy0wLjctMS4yLTAuMi0yLjcsMC45LTMuNGMxLjItMC43LDIuNy0wLjIsMy40LDAuOWwzMS42LDU2LjQNCgkJCWMwLjcsMS4yLDAuMiwyLjctMC45LDMuNEM4Mi43LDc5LjcsODIuMyw3OS44LDgxLjksNzkuOHoiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgWarningSign as ReactComponent };","var _path, _path2, _path3, _path4;\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\nimport * as React from \"react\";\n\nfunction SvgDollarSignCircled(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.2 62.7c-4.7 0-8-2.9-8-7 0-1.3 1-2.3 2.3-2.3 1.3 0 2.3 1 2.3 2.3 0 2.1 2.1 2.5 3.4 2.5 1.3 0 3.4-.3 3.4-2.5 0-1.3-.1-1.5-3.5-3.2l-1.8-.9c-3.2-1.6-6-3-6-7.3 0-4.2 3.3-7.1 8-7.1 4.6 0 7.9 2.9 7.9 7.1 0 1.3-1 2.3-2.3 2.3s-2.3-1-2.3-2.3c0-2.2-2.1-2.5-3.3-2.5-1 0-3.4.2-3.4 2.5 0 1.3.1 1.5 3.5 3.2l1.8.9c3.2 1.6 6.1 3 6.1 7.3-.1 4.1-3.4 7-8.1 7z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.1 41.7c-1.3 0-2.3-1-2.3-2.3v-2.7c0-1.3 1-2.3 2.3-2.3 1.3 0 2.3 1 2.3 2.3v2.7c0 1.2-1.1 2.3-2.3 2.3zM50.1 65.6c-1.3 0-2.3-1-2.3-2.3v-2.7c0-1.3 1-2.3 2.3-2.3 1.3 0 2.3 1 2.3 2.3v2.7c0 1.2-1.1 2.3-2.3 2.3z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50 86.5c-20.1 0-36.5-16.4-36.5-36.5S29.9 13.5 50 13.5 86.5 29.9 86.5 50 70.1 86.5 50 86.5zm0-68.4c-17.6 0-31.9 14.3-31.9 31.9S32.4 81.9 50 81.9 81.9 67.6 81.9 50 67.6 18.1 50 18.1z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50 75.1c-13.8 0-25.1-11.3-25.1-25.1S36.2 24.9 50 24.9 75.1 36.2 75.1 50 63.8 75.1 50 75.1zm0-45.6c-11.3 0-20.5 9.2-20.5 20.5S38.7 70.5 50 70.5 70.5 61.3 70.5 50 61.3 29.5 50 29.5z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTUwLjIsNjIuN2MtNC43LDAtOC0yLjktOC03YzAtMS4zLDEtMi4zLDIuMy0yLjNjMS4zLDAsMi4zLDEsMi4zLDIuM2MwLDIuMSwyLjEsMi41LDMuNCwyLjUNCgkJCWMxLjMsMCwzLjQtMC4zLDMuNC0yLjVjMC0xLjMtMC4xLTEuNS0zLjUtMy4ybC0xLjgtMC45Yy0zLjItMS42LTYtMy02LTcuM2MwLTQuMiwzLjMtNy4xLDgtNy4xYzQuNiwwLDcuOSwyLjksNy45LDcuMQ0KCQkJYzAsMS4zLTEsMi4zLTIuMywyLjNzLTIuMy0xLTIuMy0yLjNjMC0yLjItMi4xLTIuNS0zLjMtMi41Yy0xLDAtMy40LDAuMi0zLjQsMi41YzAsMS4zLDAuMSwxLjUsMy41LDMuMmwxLjgsMC45DQoJCQljMy4yLDEuNiw2LjEsMyw2LjEsNy4zQzU4LjIsNTkuOCw1NC45LDYyLjcsNTAuMiw2Mi43eiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTUwLjEsNDEuN2MtMS4zLDAtMi4zLTEtMi4zLTIuM3YtMi43YzAtMS4zLDEtMi4zLDIuMy0yLjNjMS4zLDAsMi4zLDEsMi4zLDIuM3YyLjcNCgkJCUM1Mi40LDQwLjYsNTEuMyw0MS43LDUwLjEsNDEuN3oiPjwvcGF0aD4NCgk8L2c+DQoJPGc+DQoJCTxwYXRoIGQ9Ik01MC4xLDY1LjZjLTEuMywwLTIuMy0xLTIuMy0yLjN2LTIuN2MwLTEuMywxLTIuMywyLjMtMi4zYzEuMywwLDIuMywxLDIuMywyLjN2Mi43DQoJCQlDNTIuNCw2NC41LDUxLjMsNjUuNiw1MC4xLDY1LjZ6Ij48L3BhdGg+DQoJPC9nPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTAsODYuNWMtMjAuMSwwLTM2LjUtMTYuNC0zNi41LTM2LjVTMjkuOSwxMy41LDUwLDEzLjVTODYuNSwyOS45LDg2LjUsNTBTNzAuMSw4Ni41LDUwLDg2LjV6IE01MCwxOC4xDQoJCQljLTE3LjYsMC0zMS45LDE0LjMtMzEuOSwzMS45UzMyLjQsODEuOSw1MCw4MS45UzgxLjksNjcuNiw4MS45LDUwUzY3LjYsMTguMSw1MCwxOC4xeiI+PC9wYXRoPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTUwLDc1LjFjLTEzLjgsMC0yNS4xLTExLjMtMjUuMS0yNS4xUzM2LjIsMjQuOSw1MCwyNC45Uzc1LjEsMzYuMiw3NS4xLDUwUzYzLjgsNzUuMSw1MCw3NS4xeiBNNTAsMjkuNQ0KCQkJYy0xMS4zLDAtMjAuNSw5LjItMjAuNSwyMC41YzAsMTEuMyw5LjIsMjAuNSwyMC41LDIwLjVTNzAuNSw2MS4zLDcwLjUsNTBDNzAuNSwzOC43LDYxLjMsMjkuNSw1MCwyOS41eiI+PC9wYXRoPg0KCTwvZz4NCjwvc3ZnPg==\";\nexport { SvgDollarSignCircled as ReactComponent };","import React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { Tooltips } from \".\";\r\nimport { ReactComponent as CloseIcon } from \"../assets/svg/closeIcon.svg\";\r\n\r\nexport const PracticeCircles: React.FC<{}> = () => {\r\n const [activeCircle, setActiveCircle] = useState(-1);\r\n\r\n const handleClick = (id: number) => {\r\n return id === activeCircle ? setActiveCircle(-1) : setActiveCircle(id);\r\n };\r\n\r\n const practiceCircleData = [\r\n {\r\n title: \"Policy\",\r\n description: (\r\n \r\n A policy is a written document setting out an organisation’s intention\r\n in relation to managing employee health and wellbeing.\r\n A health policy demonstrates the commitment of\r\n your organisation to providing a work environment that encourages good\r\n health.\r\n \r\n ),\r\n },\r\n {\r\n title: \"Environment\",\r\n description: (\r\n \r\n The physical workplace environment (infrastructure and facilities)\r\n should support and reinforce your health-related policies, education\r\n and activities in order to make healthy choices the easy choices.\r\n Even small improvements can significantly\r\n increase the health of your employees.\r\n \r\n ),\r\n },\r\n {\r\n title: \"Education and Activities\",\r\n description: (\r\n \r\n Education provides employees with knowledge on how their behaviours\r\n affect their health, which may motivate them to make healthier\r\n choices. Activities provide an opportunity for employees to practice\r\n new skills in a non-judgemental environment. Education and activities\r\n alone, however, is the least likely of the three elements to bring\r\n about changes in personal behaviour.\r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n
    \r\n \r\n {practiceCircleData.map(({ title, description }, idx) => (\r\n \r\n handleClick(idx)}\r\n >\r\n

    {title}

    \r\n {description}\r\n {idx === activeCircle && (\r\n \r\n )}\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst ThreeCircles = styled.div`\r\n position: relative;\r\n height: 550px;\r\n`;\r\n\r\nconst CircleContainer = styled.div<{ active: boolean }>`\r\n position: absolute;\r\n display: block;\r\n top: 0;\r\n left: 0;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n transition: transform 600ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n transform: ${(p) => (p.active ? \"scale(1.5)\" : \"scale(1)\")};\r\n z-index: ${(p) => (p.active ? 2 : 1)};\r\n &:nth-of-type(1) {\r\n top: 0;\r\n left: calc(50% - 150px);\r\n transform-origin: top center;\r\n }\r\n &:nth-of-type(2) {\r\n top: 200px;\r\n left: calc(50% - 250px);\r\n transform-origin: bottom left;\r\n }\r\n &:nth-of-type(3) {\r\n top: 200px;\r\n left: calc(50%);\r\n transform-origin: bottom right;\r\n }\r\n`;\r\n\r\nconst Circle = styled.button<{ active: boolean }>`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n padding: 1rem 2rem;\r\n overflow: hidden;\r\n display: block;\r\n border-radius: 50%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: ${(p) => (p.active ? \"center\" : \"flex-start\")};\r\n align-items: center;\r\n margin: auto;\r\n background: ${(p) => (p.active ? p.theme.info : \"rgba(255, 255, 255, 0.2)\")};\r\n transition: all 600ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n border: none;\r\n &:focus {\r\n outline: none;\r\n }\r\n & h3 {\r\n font-size: 1.25rem;\r\n transition: all 600ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n margin: 0 2rem;\r\n margin-top: ${(p) => (p.active ? \"1rem\" : \"45%\")};\r\n margin-bottom: 1rem;\r\n }\r\n & small {\r\n transition: all 400ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n color: ${(p) => (p.active ? \"white\" : \"transparent\")};\r\n font-size: 0.7rem;\r\n }\r\n`;\r\n","const teal = \"#007096\";\r\nconst gold = \"#FFCC00\";\r\nconst aubergine = \"#87027B\";\r\nconst sage = \"#007A33\";\r\nconst blueberry = \"#004C97\";\r\nconst orange = \"#E5721D\";\r\nconst raspberry = \"#D50032\";\r\nconst lime = \"#ADCB00\";\r\nconst almond = \"#914d17\";\r\nconst grey = \"#53565A\";\r\nconst dark = \"#000000\";\r\n\r\nconst white = \"#FFFFFF\";\r\nconst black = \"#000000\";\r\n\r\nconst gray100 = \"#f8f9fa\";\r\nconst gray200 = \"#e9ecef\";\r\nconst gray300 = \"#dee2e6\";\r\nconst gray400 = \"#ced4da\";\r\nconst gray500 = \"#adb5bd\";\r\nconst gray600 = \"#6c757d\";\r\nconst gray700 = \"#495057\";\r\nconst gray800 = \"#343a40\";\r\nconst gray900 = \"#212529\";\r\n\r\nexport const theme = {\r\n primary: teal,\r\n secondary: gold,\r\n success: sage,\r\n info: blueberry,\r\n warning: orange,\r\n danger: raspberry,\r\n light: gray100,\r\n\r\n gray100,\r\n gray200,\r\n gray300,\r\n gray400,\r\n gray500,\r\n gray600,\r\n gray700,\r\n gray800,\r\n gray900,\r\n\r\n teal,\r\n gold,\r\n aubergine,\r\n sage,\r\n blueberry,\r\n orange,\r\n raspberry,\r\n lime,\r\n almond,\r\n grey,\r\n dark,\r\n white,\r\n black\r\n};\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\nimport { rgba } from \"polished\";\r\n\r\nimport CigaretteSvg from \"../assets/svg/cigarette.svg\";\r\nimport HamburgerSvg from \"../assets/svg/hamburger.svg\";\r\nimport BeerSvg from \"../assets/svg/beer.svg\";\r\nimport CouchSvg from \"../assets/svg/couch.svg\";\r\nimport { theme } from \"~/theme\";\r\nimport { Tooltips } from \".\";\r\n\r\nconst StyledList = styled.ol`\r\n list-style: none;\r\n counter-reset: count;\r\n padding: 0;\r\n`;\r\n\r\nconst StyledListItem = styled.li`\r\n counter-increment: count;\r\n margin-bottom: 0.5rem;\r\n padding-left: 0.5rem;\r\n ::before {\r\n content: counter(count) \". \";\r\n font-family: FeltTipRoman, Chalkboard, Marker Felt, cursive;\r\n color: ${(p) => p.theme.warning};\r\n padding-right: 0.5rem;\r\n }\r\n`;\r\n\r\ntype Risk = {\r\n title: string;\r\n icon: string;\r\n description: JSX.Element;\r\n link: JSX.Element;\r\n didYouKnow: JSX.Element;\r\n summary: string | null;\r\n};\r\n\r\nconst ItemDescription: React.FC<{ risk: Risk }> = ({ risk }) => {\r\n return (\r\n \r\n
    \r\n

    {risk.title}

    \r\n {risk.description}\r\n {risk.link}\r\n
    \r\n {!!risk.didYouKnow && (\r\n
    \r\n

    \r\n Did you know?\r\n

    \r\n {risk.didYouKnow}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport const RiskFactors: React.FC<{}> = () => {\r\n const [itemSelected, setItemSelected] = useState(0);\r\n\r\n const RISK_DATA = [\r\n {\r\n title: \"Physical inactivity\",\r\n icon: CouchSvg,\r\n description: (\r\n

    \r\n With changes in transportation and technology, and with many types of work (e.g. office work) and leisure activities becoming increasingly sedentary, there has been a decline in physical activity and an increase in sitting. High levels of sedentary behaviour are linked to increasing rates of overweight and obesity. Low levels of physical activity has been shown to increase an individual’s risk of cardiovascular disease, some cancers, type 2 diabetes and osteoporosis.\r\n

    \r\n ),\r\n link: (\r\n \r\n For more information, check out the{\" \"}\r\n \r\n Physical Activity and Sedentary Behaviour Guidelines\r\n \r\n \r\n ),\r\n didYouKnow: (\r\n
      \r\n
    • \r\n \r\n Worldwide, physical inactivity is the 4th leading risk factor for\r\n mortality, contributing to 6% of deaths.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n In Australia, physical inactivity is the 5th leading risk factor for men and the 3rd leading risk factor for women.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Approximately 1 in 2 Australian adults (55%) do not exercise\r\n enough to meet physical activity guidelines.\r\n \r\n \r\n
    • \r\n
    \r\n ),\r\n summary: null,\r\n },\r\n {\r\n title: \"Unhealthy eating and drinking\",\r\n icon: HamburgerSvg,\r\n description: (\r\n

    \r\n Poor nutrition relates to the inadequate intake of nutrient-rich\r\n foods such as fruit, vegetables, wholegrain breads and cereals, as\r\n well as the excessive consumption of junk food (high in energy or\r\n kilojoules, saturated fat, sugar and salt, and low in nutrients).\r\n It can result in adverse health outcomes such as\r\n obesity, high blood pressure and high cholesterol.\r\n These health outcomes are widely recognised as\r\n Australia’s leading health concerns as they are strongly linked with\r\n chronic diseases, such as type 2 diabetes, heart disease, stroke and\r\n some cancers.\r\n \r\n

    \r\n ),\r\n link: (\r\n \r\n For more information, check out the{\" \"}\r\n \r\n Australian Dietary Guidelines\r\n \r\n \r\n ),\r\n didYouKnow: (\r\n
      \r\n
    • \r\n \r\n Only 51% of Australian adults meet the daily recommendation of 2\r\n serves of fruit.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Only 8% of Australian adults meet the daily recommendation of 5\r\n serves of vegetables.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Adults are getting 35% of their daily energy (kilojoule)\r\n requirements from junk foods and drinks, including alcoholic\r\n drinks, cakes, chocolate, pastries, biscuits, sugary drinks, chips\r\n and meat pies.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n 1 in 3 Australian adults has high cholesterol.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n 1 in 5 Australian adults has high blood pressure.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Two thirds (67%) of Australian adults are overweight or obese.\r\n Rates are higher in men (75%) compared to women (60%).\r\n \r\n \r\n
    • \r\n
    \r\n ),\r\n summary:\r\n \"Eating a diet high in nutrient-rich foods, such as fruit and vegetables, and limiting the intake of junk food to only occasionally and in small amounts, will assist in maintaining a healthy weight and help prevent the onset of chronic disease.\",\r\n },\r\n {\r\n title: \"Smoking\",\r\n icon: CigaretteSvg,\r\n description: (\r\n

    \r\n Smoking is a leading cause of death and disease in Australia,\r\n resulting in cancers, heart disease, respiratory disease and many\r\n other damaging and potentially fatal conditions.\r\n Passive smokers, who unintentionally inhale\r\n second-hand smoke are at risk too.\r\n \r\n

    \r\n ),\r\n link: (\r\n \r\n For more information, check out the{\" \"}\r\n \r\n information on environmental tobacco smoke (ETS) in the workplace\r\n {\" \"}\r\n and the{\" \"}\r\n \r\n National guidance note on the elimination of ETS in the workplace\r\n \r\n .\r\n \r\n ),\r\n didYouKnow: (\r\n
      \r\n
    • \r\n \r\n 8.6% of Western Australians over the age of 18 smoke daily\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Nearly 1,700 Western Australians die each year from smoking-related causes which is almost 5 deaths every day.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Smoking costs Australia a staggering $137 billion each year, $5 billion of this is borne by businesses.\r\n \r\n \r\n
    • \r\n
    \r\n ),\r\n summary: null,\r\n },\r\n {\r\n title: \"Alcohol use\",\r\n icon: BeerSvg,\r\n description: (\r\n

    \r\n Drinking alcohol can significantly affect long term health. There are\r\n several chronic diseases associated with alcohol consumption,\r\n including cancer (e.g. bowel, breast, throat, mouth, oesophagus,\r\n liver), heart disease, liver disease, stroke and mental health\r\n problems.\r\n \r\n ,\r\n \r\n

    \r\n ),\r\n link: (\r\n \r\n For more information, check out{\" \"}\r\n \r\n how much alcohol is safe to drink?\r\n \r\n \r\n ),\r\n didYouKnow: (\r\n
      \r\n
    • \r\n \r\n 1 in 5 (17.6%) Australian adults drink at levels that exceed the\r\n lifetime risk guidelines, which equates to more than 4 standard\r\n drinks a day.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n About 90% of the Australian workforce population consumes alcohol.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n Alcohol costs Australian workplaces an estimated $3.5 billion\r\n annually in lost productivity.\r\n \r\n \r\n
    • \r\n
    • \r\n \r\n High-risk alcohol use reduces workplace productivity, safety and work relations, and increases absenteeism.\r\n \r\n \r\n
    • \r\n
    \r\n ),\r\n summary: null,\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n

    Risk Factors

    \r\n

    The key behavioural risk factors in workplace health are:

    \r\n

    \r\n Physical inactivity, unhealthy eating and drinking, smoking,\r\n alcohol use\r\n

    \r\n

    Having a good understanding of these risk factors and the relevant national guidelines will help you to design effective and evidence-based workplace health strategies.

    \r\n

    \r\n Click the symbols below to reveal more information.\r\n

    \r\n
    \r\n
    \r\n {RISK_DATA.map((risk, idx) => (\r\n setItemSelected(idx)}\r\n >\r\n \r\n \r\n {`${risk.title}\r\n \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nconst StyledButton = styled.button`\r\n background-color: transparent;\r\n border: none;\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst CircleDiv = styled.div<{ active: boolean }>`\r\n position: relative;\r\n width: 100%;\r\n padding-bottom: 100%;\r\n transition: transform 500ms cubic-bezier(0.34, 1.86, 0.64, 1);\r\n transform: ${(props) => (props.active ? \"scale(1.5)\" : \"scale(1)\")};\r\n`;\r\n\r\nconst IconDiv = styled.div`\r\n position: absolute;\r\n top: 10%;\r\n left: 10%;\r\n bottom: 10%;\r\n right: 10%;\r\n padding: 1rem;\r\n border-radius: 50%;\r\n`;\r\n\r\nconst RiskInformation = styled.div`\r\n padding: 2rem;\r\n display: flex;\r\n flex-direction: column;\r\n text-align: center;\r\n`;\r\n","var _g;\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\nimport * as React from \"react\";\n\nfunction SvgCouch(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"couch_svg__icon\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.4 47.8c-.8 0-1.5-.7-1.5-1.5V42c0-4.8-3.9-8.6-8.6-8.6H20.7c-4.7 0-8.6 3.9-8.6 8.6v4.3c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5V42c0-6.4 5.2-11.7 11.7-11.7h58.6C85.7 30.3 91 35.6 91 42v4.3c0 .8-.7 1.5-1.6 1.5zM84.7 59H17.1c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h67.5c.8 0 1.5.7 1.5 1.5.1.8-.6 1.5-1.4 1.5zM84.7 74.7H12.1c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h72.6c.8 0 1.5.7 1.5 1.5 0 .9-.7 1.5-1.5 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.2 74.7h-9.6c-.8 0-1.5-.7-1.5-1.5V51.1c0-3.5 2.8-6.3 6.3-6.3s6.3 2.8 6.3 6.3v22.2c0 .8-.6 1.4-1.5 1.4zm-8-3h6.5V51.1c0-1.8-1.5-3.3-3.3-3.3s-3.3 1.5-3.3 3.3v20.6zM15.3 74.7H5.8c-.8 0-1.5-.7-1.5-1.5V51.1c0-3.5 2.8-6.3 6.3-6.3s6.3 2.8 6.3 6.3v22.2c0 .8-.7 1.4-1.6 1.4zm-8-3h6.5V51.1c0-1.8-1.5-3.3-3.3-3.3s-3.3 1.5-3.3 3.3v20.6z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8ZyBjbGFzcz0iaWNvbiI+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTg5LjQsNDcuOGMtMC44LDAtMS41LTAuNy0xLjUtMS41VjQyYzAtNC44LTMuOS04LjYtOC42LTguNkgyMC43Yy00LjcsMC04LjYsMy45LTguNiw4LjZ2NC4zDQoJCWMwLDAuOC0wLjcsMS41LTEuNSwxLjVjLTAuOCwwLTEuNS0wLjctMS41LTEuNVY0MmMwLTYuNCw1LjItMTEuNywxMS43LTExLjdoNTguNkM4NS43LDMwLjMsOTEsMzUuNiw5MSw0MnY0LjMNCgkJQzkxLDQ3LjEsOTAuMyw0Ny44LDg5LjQsNDcuOHoiPjwvcGF0aD4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik04NC43LDU5SDE3LjFjLTAuOCwwLTEuNS0wLjctMS41LTEuNWMwLTAuOCwwLjctMS41LDEuNS0xLjVoNjcuNWMwLjgsMCwxLjUsMC43LDEuNSwxLjUNCgkJQzg2LjIsNTguMyw4NS41LDU5LDg0LjcsNTl6Ij48L3BhdGg+DQoJCTwvZz4NCgkJPGc+DQoJCQk8cGF0aCBkPSJNODQuNyw3NC43SDEyLjFjLTAuOCwwLTEuNS0wLjctMS41LTEuNWMwLTAuOCwwLjctMS41LDEuNS0xLjVoNzIuNmMwLjgsMCwxLjUsMC43LDEuNSwxLjUNCgkJQzg2LjIsNzQuMSw4NS41LDc0LjcsODQuNyw3NC43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTk0LjIsNzQuN2gtOS42Yy0wLjgsMC0xLjUtMC43LTEuNS0xLjVWNTEuMWMwLTMuNSwyLjgtNi4zLDYuMy02LjNjMy41LDAsNi4zLDIuOCw2LjMsNi4zdjIyLjINCgkJQzk1LjcsNzQuMSw5NS4xLDc0LjcsOTQuMiw3NC43eiBNODYuMiw3MS43aDYuNVY1MS4xYzAtMS44LTEuNS0zLjMtMy4zLTMuM3MtMy4zLDEuNS0zLjMsMy4zVjcxLjd6Ij48L3BhdGg+DQoJCTwvZz4NCgkJPGc+DQoJCQk8cGF0aCBkPSJNMTUuMyw3NC43SDUuOGMtMC44LDAtMS41LTAuNy0xLjUtMS41VjUxLjFjMC0zLjUsMi44LTYuMyw2LjMtNi4zczYuMywyLjgsNi4zLDYuM3YyMi4yDQoJCUMxNi45LDc0LjEsMTYuMiw3NC43LDE1LjMsNzQuN3ogTTcuMyw3MS43aDYuNVY1MS4xYzAtMS44LTEuNS0zLjMtMy4zLTMuM3MtMy4zLDEuNS0zLjMsMy4zVjcxLjd6Ij48L3BhdGg+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgCouch as ReactComponent };","var _g;\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\nimport * as React from \"react\";\n\nfunction SvgHamburger(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"hamburger_svg__icon\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.9 29.4c-1.2 0-2.3 1-2.3 2.3 0 1.2 1 2.3 2.3 2.3 1.2 0 2.3-1 2.3-2.3-.1-1.3-1.1-2.3-2.3-2.3zm0 3.3v-1.1 1.1zM60.1 25.3c-1.2 0-2.3 1-2.3 2.3 0 1.2 1 2.3 2.3 2.3 1.2 0 2.3-1 2.3-2.3 0-1.2-1-2.3-2.3-2.3zm0 3.4v-1.1 1.1zM40 25.3c-1.2 0-2.3 1-2.3 2.3 0 1.2 1 2.3 2.3 2.3s2.3-1 2.3-2.3c0-1.2-1-2.3-2.3-2.3zm0 3.4v-1.1 1.1zM45 29.4c-1.2 0-2.3 1-2.3 2.3 0 1.2 1 2.3 2.3 2.3 1.2 0 2.3-1 2.3-2.3 0-1.3-1-2.3-2.3-2.3zm0 3.3v-1.1 1.1zM55.2 29.4c-1.2 0-2.3 1-2.3 2.3 0 1.2 1 2.3 2.3 2.3 1.2 0 2.3-1 2.3-2.3 0-1.3-1.1-2.3-2.3-2.3zm0 3.3v-1.1 1.1zM66.5 29.7c-1-.6-2.5-.3-3.1.7-.7 1.1-.3 2.5.7 3.1.4.2.8.3 1.2.3.8 0 1.5-.4 1.9-1.1.3-.5.4-1.1.3-1.7-.1-.5-.5-1-1-1.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91 58.6c0-3.9-3-7.1-6.8-7.4v-7.4-.1-.1c0-13.9-11.3-25.3-25.3-25.3H43.1c-13.9 0-25.3 11.3-25.3 25.3V51.2c-3.8.3-6.8 3.5-6.8 7.4 0 3.7 2.8 6.8 6.3 7.4V76.9c0 5.9 4.8 10.7 10.7 10.7h45c5.9 0 10.7-4.8 10.7-10.7V66.1c4-.1 7.3-3.4 7.3-7.5zm-9.7-9.3l-3.6-2.5c-.5-.3-1-.3-1.5 0l-6.9 4-7.9-4.1c-.4-.2-.9-.2-1.3 0l-7.3 4.1-7.2-4.1c-.4-.2-.9-.2-1.3 0l-8.5 4.1-6.2-4c-.4-.3-.9-.3-1.3-.1L20.7 50v-5h60.7v4.3zm-52.7.3l2.4 1.5h-5.9l3.5-1.5zm16.2 0l2.8 1.5h-6l3.2-1.5zm16 0l3 1.5H58l2.8-1.5zm16 .1l2.2 1.5h-4.7l2.5-1.5zM43.1 21.1h15.8c11.9 0 21.6 9.3 22.4 21H20.7c.8-11.7 10.5-21 22.4-21zm37.7 49.3H33.3c-3.5.9-4.1 4.7-4 6.7 0 1-.8 1.7-1.8 1.7s-1.8-.8-1.8-1.8v-5.3c0-.8-.6-1.4-1.4-1.4h-4.1V66h60.6v4.4zM73 84.7H28c-4.3 0-7.8-3.5-7.8-7.8v-3.6h2.7v3.8c0 2.6 2.1 4.6 4.6 4.6 2.6 0 4.6-2.1 4.6-4.6V77c0-.1-.2-3.1 1.7-3.7h47v3.6c0 4.3-3.5 7.8-7.8 7.8zm10.5-21.5h-65c-2.5 0-4.6-2.1-4.6-4.6 0-2.5 2.1-4.6 4.6-4.6h65c2.5 0 4.6 2.1 4.6 4.6 0 2.5-2 4.6-4.6 4.6z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8ZyBjbGFzcz0iaWNvbiI+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTM0LjksMjkuNGMtMS4yLDAtMi4zLDEtMi4zLDIuM2MwLDEuMiwxLDIuMywyLjMsMi4zYzEuMiwwLDIuMy0xLDIuMy0yLjNDMzcuMSwzMC40LDM2LjEsMjkuNCwzNC45LDI5LjR6DQoJCQkgTTM0LjksMzIuN2wwLTEuMWMwLDAsMCwwLDAsMFYzMi43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTYwLjEsMjUuM2MtMS4yLDAtMi4zLDEtMi4zLDIuM2MwLDEuMiwxLDIuMywyLjMsMi4zYzEuMiwwLDIuMy0xLDIuMy0yLjNDNjIuNCwyNi40LDYxLjQsMjUuMyw2MC4xLDI1LjN6DQoJCQkgTTYwLjEsMjguN2wwLTEuMWMwLDAsMCwwLDAsMFYyOC43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTQwLDI1LjNjLTEuMiwwLTIuMywxLTIuMywyLjNjMCwxLjIsMSwyLjMsMi4zLDIuM3MyLjMtMSwyLjMtMi4zQzQyLjMsMjYuNCw0MS4zLDI1LjMsNDAsMjUuM3ogTTQwLDI4LjcNCgkJCWwwLTEuMWMwLDAsMCwwLDAsMFYyOC43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTQ1LDI5LjRjLTEuMiwwLTIuMywxLTIuMywyLjNjMCwxLjIsMSwyLjMsMi4zLDIuM2MxLjIsMCwyLjMtMSwyLjMtMi4zQzQ3LjMsMzAuNCw0Ni4zLDI5LjQsNDUsMjkuNHoNCgkJCSBNNDUsMzIuN2wwLTEuMWMwLDAsMCwwLDAsMFYzMi43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTU1LjIsMjkuNGMtMS4yLDAtMi4zLDEtMi4zLDIuM2MwLDEuMiwxLDIuMywyLjMsMi4zYzEuMiwwLDIuMy0xLDIuMy0yLjNDNTcuNSwzMC40LDU2LjQsMjkuNCw1NS4yLDI5LjR6DQoJCQkgTTU1LjIsMzIuN2wwLTEuMWMwLDAsMCwwLDAsMFYzMi43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTY2LjUsMjkuN2MtMS0wLjYtMi41LTAuMy0zLjEsMC43Yy0wLjcsMS4xLTAuMywyLjUsMC43LDMuMWMwLjQsMC4yLDAuOCwwLjMsMS4yLDAuMw0KCQkJYzAuOCwwLDEuNS0wLjQsMS45LTEuMWMwLjMtMC41LDAuNC0xLjEsMC4zLTEuN0M2Ny40LDMwLjUsNjcsMzAsNjYuNSwyOS43eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTkxLDU4LjZjMC0zLjktMy03LjEtNi44LTcuNHYtNy40YzAsMCwwLTAuMSwwLTAuMWMwLDAsMCwwLDAtMC4xYzAtMTMuOS0xMS4zLTI1LjMtMjUuMy0yNS4zSDQzLjENCgkJCWMtMTMuOSwwLTI1LjMsMTEuMy0yNS4zLDI1LjNjMCwwLDAsMC4xLDAsMC4xYzAsMCwwLDAuMSwwLDAuMXY3LjRDMTQsNTEuNSwxMSw1NC43LDExLDU4LjZjMCwzLjcsMi44LDYuOCw2LjMsNy40djUuOHY1LjENCgkJCWMwLDUuOSw0LjgsMTAuNywxMC43LDEwLjdoNDVjNS45LDAsMTAuNy00LjgsMTAuNy0xMC43di01LjF2LTUuN0M4Ny43LDY2LDkxLDYyLjcsOTEsNTguNnogTTgxLjMsNDkuM2wtMy42LTIuNQ0KCQkJYy0wLjUtMC4zLTEtMC4zLTEuNSwwbC02LjksNGwtNy45LTQuMWMtMC40LTAuMi0wLjktMC4yLTEuMywwbC03LjMsNC4xbC03LjItNC4xYy0wLjQtMC4yLTAuOS0wLjItMS4zLDBsLTguNSw0LjFsLTYuMi00DQoJCQljLTAuNC0wLjMtMC45LTAuMy0xLjMtMC4xTDIwLjcsNTB2LTVoNjAuN1Y0OS4zeiBNMjguNiw0OS42bDIuNCwxLjVoLTUuOUwyOC42LDQ5LjZ6IE00NC44LDQ5LjZsMi44LDEuNWgtNkw0NC44LDQ5LjZ6DQoJCQkgTTYwLjgsNDkuNmwzLDEuNUg1OEw2MC44LDQ5LjZ6IE03Ni44LDQ5LjdsMi4yLDEuNWgtNC43TDc2LjgsNDkuN3ogTTQzLjEsMjEuMWgxNS44YzExLjksMCwyMS42LDkuMywyMi40LDIxSDIwLjcNCgkJCUMyMS41LDMwLjQsMzEuMiwyMS4xLDQzLjEsMjEuMXogTTgwLjgsNzAuNEgzMy43Yy0wLjEsMC0wLjIsMC0wLjQsMGMtMy41LDAuOS00LjEsNC43LTQsNi43YzAsMS0wLjgsMS43LTEuOCwxLjcNCgkJCWMtMSwwLTEuOC0wLjgtMS44LTEuOHYtNS4zYzAtMC44LTAuNi0xLjQtMS40LTEuNGgtNC4xdi00LjNoNjAuNkw4MC44LDcwLjRMODAuOCw3MC40eiBNNzMsODQuN0gyOGMtNC4zLDAtNy44LTMuNS03LjgtNy44di0zLjYNCgkJCWgyLjd2My44YzAsMi42LDIuMSw0LjYsNC42LDQuNmMyLjYsMCw0LjYtMi4xLDQuNi00LjZjMCwwLDAtMC4xLDAtMC4xYzAtMC4xLTAuMi0zLjEsMS43LTMuN2g0N3YzLjZDODAuOCw4MS4yLDc3LjMsODQuNyw3Myw4NC43DQoJCQl6IE04My41LDYzLjJoLTEuM0gxOC44aC0wLjNjLTIuNSwwLTQuNi0yLjEtNC42LTQuNmMwLTIuNSwyLjEtNC42LDQuNi00LjZoNjVjMi41LDAsNC42LDIuMSw0LjYsNC42DQoJCQlDODguMSw2MS4xLDg2LjEsNjMuMiw4My41LDYzLjJ6Ij48L3BhdGg+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgHamburger as ReactComponent };","var _g;\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\nimport * as React from \"react\";\n\nfunction SvgCigarette(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"cigarette_svg__icon\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M80 70.8H13c-1.6 0-2.8-1.3-2.8-2.8v-7.4c0-1.6 1.3-2.8 2.8-2.8h67c1.6 0 2.8 1.3 2.8 2.8V68c0 1.5-1.2 2.8-2.8 2.8zm-66.4-3.4h65.8v-6.3H13.6v6.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.5 59.4h3.4v9.7h-3.4zM73 59.4h3.4v9.7H73zM85.6 53.4h-4c-.9 0-1.7-.8-1.7-1.7s.8-1.7 1.7-1.7h4c1.6 0 2.9-1.3 2.9-2.9s-1.3-2.9-2.9-2.9h-6.5a6.7 6.7 0 010-13.4l3.6-.1h6.6c1.7 0 3.1-1.4 3.1-3.1 0-1.7-1.4-3.1-3.1-3.1H73c-.9 0-1.7-.8-1.7-1.7s.8-1.7 1.7-1.7h16.3c3.6 0 6.5 2.9 6.5 6.5s-2.9 6.5-6.5 6.5l-10.2.1c-1.9 0-3.3 1.5-3.3 3.3s1.5 3.3 3.3 3.3h6.5c3.5 0 6.3 2.8 6.3 6.3s-2.8 6.3-6.3 6.3z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8ZyBjbGFzcz0iaWNvbiI+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTgwLDcwLjhIMTNjLTEuNiwwLTIuOC0xLjMtMi44LTIuOHYtNy40YzAtMS42LDEuMy0yLjgsMi44LTIuOGg2N2MxLjYsMCwyLjgsMS4zLDIuOCwyLjh2Ny40DQoJCQkJQzgyLjgsNjkuNSw4MS42LDcwLjgsODAsNzAuOHogTTEzLjYsNjcuNGg2NS44di02LjNIMTMuNlY2Ny40eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHJlY3QgeD0iMzEuNSIgeT0iNTkuNCIgd2lkdGg9IjMuNCIgaGVpZ2h0PSI5LjciPjwvcmVjdD4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxyZWN0IHg9IjczIiB5PSI1OS40IiB3aWR0aD0iMy40IiBoZWlnaHQ9IjkuNyI+PC9yZWN0Pg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTg1LjYsNTMuNGgtNGMtMC45LDAtMS43LTAuOC0xLjctMS43czAuOC0xLjcsMS43LTEuN2g0YzEuNiwwLDIuOS0xLjMsMi45LTIuOXMtMS4zLTIuOS0yLjktMi45aC02LjUNCgkJCQljLTMuNywwLTYuNy0zLTYuNy02LjdzMy02LjcsNi43LTYuN2wzLjYtMC4xaDYuNmMxLjcsMCwzLjEtMS40LDMuMS0zLjFjMC0xLjctMS40LTMuMS0zLjEtMy4xSDczYy0wLjksMC0xLjctMC44LTEuNy0xLjcNCgkJCQlzMC44LTEuNywxLjctMS43aDE2LjNjMy42LDAsNi41LDIuOSw2LjUsNi41cy0yLjksNi41LTYuNSw2LjVsLTEwLjIsMC4xYy0xLjksMC0zLjMsMS41LTMuMywzLjNzMS41LDMuMywzLjMsMy4zaDYuNQ0KCQkJCWMzLjUsMCw2LjMsMi44LDYuMyw2LjNDOTEuOSw1MC42LDg5LjEsNTMuNCw4NS42LDUzLjR6Ij48L3BhdGg+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgCigarette as ReactComponent };","var _g;\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\nimport * as React from \"react\";\n\nfunction SvgBeer(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n className: \"beer_svg__icon\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65 88.4H37c-.8 0-1.5-.7-1.5-1.5V72.1c0-.2.4-10.3-1.9-17.3-2.5-7.6-2.3-15.2-2.3-15.5V18.9c0-.8.7-1.5 1.5-1.5h36.3c.8 0 1.5.7 1.5 1.5v20.4c0 .3.2 7.9-2.3 15.5-2.3 7.1-1.9 17.2-1.9 17.3V87c.1.7-.6 1.4-1.4 1.4zm-26.5-3h24.9V72.1c0-.4-.4-10.7 2.1-18.3 2.3-7.1 2.1-14.4 2.1-14.5V20.4H34.3v18.9c0 .1-.2 7.5 2.1 14.5 2.5 7.6 2.1 17.9 2.1 18.3v13.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.8 82.2c-2.5 0-8-.2-11.4-3.6-1.9-1.9-2.8-4.4-2.8-7.5 0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5c0 2.3.6 4.1 2 5.4 2.8 2.8 7.8 2.7 9.7 2.7h.6c1.9 0 7.7 0 10.7-2.9 1.3-1.3 1.9-3 1.9-5.1 0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5c0 3-.9 5.4-2.8 7.3-3.9 3.9-10.6 3.8-12.8 3.8h-.6c-.2-.1-.3-.1-.5-.1zM69.2 28.2H32.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h36.3c.8 0 1.5.7 1.5 1.5s-.6 1.5-1.4 1.5z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8ZyBjbGFzcz0iaWNvbiI+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTY1LDg4LjRIMzdjLTAuOCwwLTEuNS0wLjctMS41LTEuNVY3Mi4xYzAtMC4yLDAuNC0xMC4zLTEuOS0xNy4zYy0yLjUtNy42LTIuMy0xNS4yLTIuMy0xNS41bDAtMjAuNA0KCQkJYzAtMC44LDAuNy0xLjUsMS41LTEuNWgzNi4zYzAuOCwwLDEuNSwwLjcsMS41LDEuNXYyMC40YzAsMC4zLDAuMiw3LjktMi4zLDE1LjVjLTIuMyw3LjEtMS45LDE3LjItMS45LDE3LjNsMCwxNC45DQoJCQlDNjYuNSw4Ny43LDY1LjgsODguNCw2NSw4OC40eiBNMzguNSw4NS40aDI0LjlWNzIuMWMwLTAuNC0wLjQtMTAuNywyLjEtMTguM2MyLjMtNy4xLDIuMS0xNC40LDIuMS0xNC41bDAtMTguOUgzNC4zdjE4LjkNCgkJCWMwLDAuMS0wLjIsNy41LDIuMSwxNC41YzIuNSw3LjYsMi4xLDE3LjksMi4xLDE4LjNMMzguNSw4NS40eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggZD0iTTQ5LjgsODIuMmMtMi41LDAtOC0wLjItMTEuNC0zLjZjLTEuOS0xLjktMi44LTQuNC0yLjgtNy41YzAtMC44LDAuNy0xLjUsMS41LTEuNXMxLjUsMC43LDEuNSwxLjUNCgkJCWMwLDIuMywwLjYsNC4xLDIsNS40YzIuOCwyLjgsNy44LDIuNyw5LjcsMi43bDAuMywwbDAuMywwYzEuOSwwLDcuNywwLDEwLjctMi45YzEuMy0xLjMsMS45LTMsMS45LTUuMWMwLTAuOCwwLjctMS41LDEuNS0xLjUNCgkJCXMxLjUsMC43LDEuNSwxLjVjMCwzLTAuOSw1LjQtMi44LDcuM2MtMy45LDMuOS0xMC42LDMuOC0xMi44LDMuOGwtMC4zLDBsLTAuMywwQzUwLjEsODIuMiw1MCw4Mi4yLDQ5LjgsODIuMnoiPjwvcGF0aD4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoDQoJCQkJZD0iTTY5LjIsMjguMkgzMi44Yy0wLjgsMC0xLjUtMC43LTEuNS0xLjVzMC43LTEuNSwxLjUtMS41aDM2LjNjMC44LDAsMS41LDAuNywxLjUsMS41UzcwLDI4LjIsNjkuMiwyOC4yeiI+DQoJCQk8L3BhdGg+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgBeer as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgTissue(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.4 51.9c-.2-.2-.4-.3-.6-.3l-24.3-8.1c1-7.3 2.3-16.3 2.3-17.4 0-5.2-13.5-8-23.3-8-4.5 0-8.5.5-11.6 1.6-3.6 1.2-4.9 2.1-4.8 3.3v.1l.4 4.3c-1.7 0-3.4-.1-5.1-.2-3.7-.2-7.2-.4-9-.1-1.1.2-3.4 1-4 2.9-.4 1.3.1 2.8 1.7 4.3 2 2 4.9 10 7 16.7L6.3 54.3c-.3 0-.5.2-.8.3-.5.4-.8.9-.8 1.5v19.4c0 .8.5 1.5 1.3 1.8l24.9 8.3c.2.1.4.1.6.1h.4l63.7-13.1c.9-.2 1.5-.9 1.5-1.8V53.3c-.1-.5-.3-1-.7-1.4zM39.5 21.3c2.9-.9 6.6-1.5 11-1.5 11.5 0 21.4 3.4 21.4 6.2 0 1.3-2.1 16-3.5 26-6.7 1.4-16.9 3.4-24.9 4.9.4-5.2 2.1-26.1.4-31.2-.4-1.1-2.1-1.5-4.4-2-1-.2-2.5-.6-3.2-.9.3-.4 1.2-.8 3.2-1.5zm-3.1 6l-.2-2.6c.8.3 1.8.5 2.8.7 1 .2 2.4.6 3 .8-.3.4-1.4 1.1-5.6 1.1zm-18.3 3.1c.3-.8 1.7-1.4 2.6-1.6 1.6-.3 5-.1 8.6.1 2.3.1 4.7.3 6.8.3 2.4 0 4.8-.1 6.3-.9.8 6.2-.2 20.8-.9 29-4.8.9-8.6 1.5-9.8 1.5-1.4 0-2.5-.9-2.9-1.2-.7-2.5-5.9-21-9.5-24.6-.6-.9-1.4-1.8-1.2-2.6zm8.4 25.5c-.9.5-1.1 1.3-1.2 1.7 0 .5.1 1.8 2 2.4l2.1.7c.8.3 2 .4 3.1.4.5 0 1 0 1.5-.1l37.4-6.8c2-.4 2.3-1.6 2.3-2.1s-.1-1.8-2-2.4l-1-.3c.1-.7.2-1.4.3-2.2l16.7 5.6-55.9 9.7-17.6-5.9 12-2.2c0 .5.2 1 .3 1.5zm66.8 13.3L31.6 81.9 8.5 74.1V58.7L31 66.2c.3.1.6.1.9.1l61.5-10.7-.1 13.6z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTk2LjQsNTEuOWMtMC4yLTAuMi0wLjQtMC4zLTAuNi0wLjNsMCwwbC0yNC4zLTguMWMxLTcuMywyLjMtMTYuMywyLjMtMTcuNGMwLTUuMi0xMy41LTgtMjMuMy04DQoJCQljLTQuNSwwLTguNSwwLjUtMTEuNiwxLjZjLTMuNiwxLjItNC45LDIuMS00LjgsMy4zYzAsMCwwLDAuMSwwLDAuMWwwLjQsNC4zYy0xLjcsMC0zLjQtMC4xLTUuMS0wLjJjLTMuNy0wLjItNy4yLTAuNC05LTAuMQ0KCQkJYy0xLjEsMC4yLTMuNCwxLTQsMi45Yy0wLjQsMS4zLDAuMSwyLjgsMS43LDQuM2MyLDIsNC45LDEwLDcsMTYuN0w2LjMsNTQuM2MwLDAsMCwwLDAsMGwwLDB2MGMtMC4zLDAtMC41LDAuMi0wLjgsMC4zDQoJCQljLTAuNSwwLjQtMC44LDAuOS0wLjgsMS41djE5LjRjMCwwLjgsMC41LDEuNSwxLjMsMS44bDI0LjksOC4zYzAuMiwwLjEsMC40LDAuMSwwLjYsMC4xYzAuMSwwLDAuMywwLDAuNCwwbDYzLjctMTMuMQ0KCQkJYzAuOS0wLjIsMS41LTAuOSwxLjUtMS44VjUzLjNDOTcsNTIuOCw5Ni44LDUyLjMsOTYuNCw1MS45eiBNMzkuNSwyMS4zYzIuOS0wLjksNi42LTEuNSwxMS0xLjVjMTEuNSwwLDIxLjQsMy40LDIxLjQsNi4yDQoJCQljMCwxLjMtMi4xLDE2LTMuNSwyNmMtNi43LDEuNC0xNi45LDMuNC0yNC45LDQuOWMwLjQtNS4yLDIuMS0yNi4xLDAuNC0zMS4yYzAsMCwwLDAsMCwwYy0wLjQtMS4xLTIuMS0xLjUtNC40LTINCgkJCWMtMS0wLjItMi41LTAuNi0zLjItMC45QzM2LjYsMjIuNCwzNy41LDIyLDM5LjUsMjEuM3ogTTM2LjQsMjcuM2wtMC4yLTIuNmMwLjgsMC4zLDEuOCwwLjUsMi44LDAuN2MxLDAuMiwyLjQsMC42LDMsMC44DQoJCQlDNDEuNywyNi42LDQwLjYsMjcuMywzNi40LDI3LjN6IE0xOC4xLDMwLjRjMC4zLTAuOCwxLjctMS40LDIuNi0xLjZjMS42LTAuMyw1LTAuMSw4LjYsMC4xYzIuMywwLjEsNC43LDAuMyw2LjgsMC4zDQoJCQljMi40LDAsNC44LTAuMSw2LjMtMC45YzAuOCw2LjItMC4yLDIwLjgtMC45LDI5Yy00LjgsMC45LTguNiwxLjUtOS44LDEuNWMtMS40LDAtMi41LTAuOS0yLjktMS4yYy0wLjctMi41LTUuOS0yMS05LjUtMjQuNg0KCQkJQzE4LjcsMzIuMSwxNy45LDMxLjIsMTguMSwzMC40eiBNMjYuNSw1NS45Yy0wLjksMC41LTEuMSwxLjMtMS4yLDEuN2MwLDAuNSwwLjEsMS44LDIsMi40bDIuMSwwLjdjMC44LDAuMywyLDAuNCwzLjEsMC40bDAsMA0KCQkJYzAuNSwwLDEsMCwxLjUtMC4xbDM3LjQtNi44YzItMC40LDIuMy0xLjYsMi4zLTIuMWMwLTAuNS0wLjEtMS44LTItMi40bC0xLTAuM2MwLjEtMC43LDAuMi0xLjQsMC4zLTIuMmwxNi43LDUuNmwtNTUuOSw5LjcNCgkJCWwtMTcuNi01LjlsMTItMi4yQzI2LjIsNTQuOSwyNi40LDU1LjQsMjYuNSw1NS45eiBNOTMuMyw2OS4yTDMxLjYsODEuOUw4LjUsNzQuMVY1OC43bDIyLjUsNy41YzAuMywwLjEsMC42LDAuMSwwLjksMC4xbDYxLjUtMTAuNw0KCQkJTDkzLjMsNjkuMnoiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgTissue as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgArrowsUp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.9 69L26.3 57c-.7-.7-1.2-1.3-2-1.3s-1.3.5-2 1.3L10.7 69c-.4.7-.3 1.6.1 2.2.4.7 1.1 1.1 1.9 1.1h7v11c0 2.5 2.1 4.6 4.6 4.6s4.6-2.1 4.6-4.6v-11h7c.8 0 1.5-.4 1.9-1.1.2-.4.3-.8.3-1.2 0-.3-.1-.6-.2-1zM64.6 58L53 46c-.7-.7-1.2-1.3-2-1.3s-1.3.5-2 1.3L37.4 58c-.4.7-.3 1.6.1 2.2.4.7 1.1 1.1 1.9 1.1h7v22.1c0 2.5 2.1 4.6 4.6 4.6 2.5 0 4.6-2.1 4.6-4.6V61.3h7c.8 0 1.5-.4 1.9-1.1.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1zM91.3 21.2l-11.6-12c-.7-.7-1.2-1.2-2-1.2s-1.3.5-2 1.3l-11.6 12c-.4.7-.3 1.6.1 2.2.4.7 1.1 1.1 1.9 1.1h7v58.9c0 2.5 2.1 4.6 4.6 4.6s4.6-2.1 4.6-4.6v-59h7c.8 0 1.5-.4 1.9-1.1.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTM3LjksNjlsLTExLjYtMTJjLTAuNy0wLjctMS4yLTEuMy0yLTEuM2MtMC44LDAtMS4zLDAuNS0yLDEuM0wxMC43LDY5Yy0wLjQsMC43LTAuMywxLjYsMC4xLDIuMg0KCQkJYzAuNCwwLjcsMS4xLDEuMSwxLjksMS4xaDd2MTFjMCwyLjUsMi4xLDQuNiw0LjYsNC42czQuNi0yLjEsNC42LTQuNnYtMTFoN2MwLjgsMCwxLjUtMC40LDEuOS0xLjFjMC4yLTAuNCwwLjMtMC44LDAuMy0xLjINCgkJCUMzOC4xLDY5LjcsMzgsNjkuNCwzNy45LDY5eiI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNNjQuNiw1OEw1Myw0NmMtMC43LTAuNy0xLjItMS4zLTItMS4zYy0wLjgsMC0xLjMsMC41LTIsMS4zTDM3LjQsNThjLTAuNCwwLjctMC4zLDEuNiwwLjEsMi4yDQoJCQljMC40LDAuNywxLjEsMS4xLDEuOSwxLjFoN3YyMi4xYzAsMi41LDIuMSw0LjYsNC42LDQuNmMyLjUsMCw0LjYtMi4xLDQuNi00LjZWNjEuM2g3YzAuOCwwLDEuNS0wLjQsMS45LTEuMQ0KCQkJYzAuMi0wLjQsMC4zLTAuOCwwLjMtMS4yQzY0LjgsNTguNyw2NC43LDU4LjMsNjQuNiw1OHoiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTkxLjMsMjEuMmwtMTEuNi0xMkM3OSw4LjUsNzguNSw4LDc3LjcsOGMtMC44LDAtMS4zLDAuNS0yLDEuM2wtMTEuNiwxMmMtMC40LDAuNy0wLjMsMS42LDAuMSwyLjINCgkJCWMwLjQsMC43LDEuMSwxLjEsMS45LDEuMWg3djU4LjljMCwyLjUsMi4xLDQuNiw0LjYsNC42czQuNi0yLjEsNC42LTQuNlYyNC41aDdjMC44LDAsMS41LTAuNCwxLjktMS4xYzAuMi0wLjQsMC4zLTAuOCwwLjMtMS4yDQoJCQlDOTEuNSwyMS45LDkxLjQsMjEuNSw5MS4zLDIxLjJ6Ij48L3BhdGg+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgArrowsUp as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgUserOxygen(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 35.6H61.8v8.7h2.3v-.8s0-1.1.6-1.5c.3-.2 1.2-.2 2.2 1.1 3 4.3 6 12.6 4.6 16.6-.7 2-3 1-7.3-1.7V46.3h-6.6v11.8c-4.3 2.7-6.6 3.7-7.3 1.7-1.4-4 1.6-12.3 4.6-16.6 1-1.4 1.9-1.3 2.2-1.1.6.4.6 1.5.6 1.5v.8H60v-8.7H47.7c-8.8 0-14.3 7.4-14.3 14.9v29.8c0 6.8 8.8 6.8 8.8 0V51.2H45v34.2h31.7V51.2h2.8v29.1c0 6.8 8.9 6.8 8.8 0V50.4c0-7.5-5.5-14.8-14.3-14.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.8 12.6c-5.6 0-10.2 4.5-10.2 10.2 0 .8.1 1.6.3 2.3H37.8c.6-.9.9-1.9.9-3 0-3-2.5-5.5-5.5-5.5S27.8 19 27.8 22c0 1.1.3 2.2.9 3h-3v-8.2h-4V25h-5.1v-3.7h-2.9v10.2h2.9v-4h5.1v3.1c-2.8.9-4.9 3.5-4.9 6.6v48.1h13.8V37.2c0-3.1-2.1-5.7-4.9-6.6v-3.1H52c1.6 2.9 4.5 4.9 7.9 5.2v-5.5h-8.1c-.1-.2-.3-.6-.4-1-.1-.4-.2-.7-.3-.9h10.7v7.5C67 32.3 71 28 71 22.7c0-5.5-4.6-10.1-10.2-10.1zM28.1 37.2v45.6h-8.8V37.2c0-2.4 2-4.4 4.4-4.4 2.4 0 4.4 2 4.4 4.4zM33.2 25c-1.6 0-3-1.3-3-3s1.3-3 3-3c1.6 0 3 1.3 3 3s-1.3 3-3 3z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTc0LDM1LjZINjEuOHY4LjdoMi4zdi0wLjhjMCwwLDAtMS4xLDAuNi0xLjVjMC4zLTAuMiwxLjItMC4yLDIuMiwxLjFjMyw0LjMsNiwxMi42LDQuNiwxNi42DQoJCQljLTAuNywyLTMsMS03LjMtMS43VjQ2LjNoLTYuNnYxMS44Yy00LjMsMi43LTYuNiwzLjctNy4zLDEuN2MtMS40LTQsMS42LTEyLjMsNC42LTE2LjZjMS0xLjQsMS45LTEuMywyLjItMS4xDQoJCQljMC42LDAuNCwwLjYsMS41LDAuNiwxLjV2MC44aDIuM3YtOC43SDQ3LjdjLTguOCwwLTE0LjMsNy40LTE0LjMsMTQuOXYyOS44YzAsNi44LDguOCw2LjgsOC44LDBWNTEuMkg0NWwwLDM0LjJoMzEuN2wwLTM0LjJoMi44DQoJCQl2MjkuMWMwLDYuOCw4LjksNi44LDguOCwwVjUwLjRDODguMyw0Mi45LDgyLjgsMzUuNiw3NCwzNS42eiI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNNjAuOCwxMi42Yy01LjYsMC0xMC4yLDQuNS0xMC4yLDEwLjJjMCwwLjgsMC4xLDEuNiwwLjMsMi4zSDM3LjhjMC42LTAuOSwwLjktMS45LDAuOS0zYzAtMy0yLjUtNS41LTUuNS01LjUNCgkJCVMyNy44LDE5LDI3LjgsMjJjMCwxLjEsMC4zLDIuMiwwLjksM2gtM3YtOC4yaC00djguMmgtNS4xdi0zLjdoLTIuOXYxMC4yaDIuOXYtNGg1LjF2My4xYy0yLjgsMC45LTQuOSwzLjUtNC45LDYuNnY0OC4xaDEzLjhWMzcuMg0KCQkJYzAtMy4xLTIuMS01LjctNC45LTYuNnYtMy4xSDUyYzEuNiwyLjksNC41LDQuOSw3LjksNS4ydi01LjVoLTguMWMtMC4xLTAuMi0wLjMtMC42LTAuNC0xYy0wLjEtMC40LTAuMi0wLjctMC4zLTAuOWgxMC43djcuNQ0KCQkJYzUuMi0wLjUsOS4yLTQuOCw5LjItMTAuMUM3MSwxNy4yLDY2LjQsMTIuNiw2MC44LDEyLjZ6IE0yOC4xLDM3LjJ2NDUuNmgtOC44VjM3LjJjMC0yLjQsMi00LjQsNC40LTQuNA0KCQkJQzI2LjEsMzIuOCwyOC4xLDM0LjgsMjguMSwzNy4yeiBNMzMuMiwyNWMtMS42LDAtMy0xLjMtMy0zczEuMy0zLDMtM2MxLjYsMCwzLDEuMywzLDNTMzQuOSwyNSwzMy4yLDI1eiI+PC9wYXRoPg0KCTwvZz4NCjwvc3ZnPg==\";\nexport { SvgUserOxygen as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgUserWinning(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.4 17.4c0 4.7-3.8 8.4-8.4 8.4-4.7 0-8.4-3.8-8.4-8.4 0-4.7 3.8-8.4 8.4-8.4 4.7 0 8.4 3.8 8.4 8.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"userWinning_svg__st0\",\n d: \"M79.6 15.9L59.9 35.7v51.8c0 2.3-1.9 4.2-4.2 4.2s-4.2-1.9-4.2-4.2V59.3c0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4v28.1c0 2.3-1.9 4.2-4.2 4.2-2.3 0-4.2-1.9-4.2-4.2V35.7L20.4 15.9c-1.6-1.6-1.6-4.3 0-6 1.6-1.6 4.3-1.6 6 0 0 0 10.2 10.4 13.8 13.8 2 1.9 5.6 5 9.9 5s7.8-3.1 9.9-5c3.5-3.3 13.8-13.8 13.8-13.8 1.6-1.6 4.3-1.6 6 0s1.5 4.4-.2 6z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBkPSJNNTguNCwxNy40YzAsNC43LTMuOCw4LjQtOC40LDguNGMtNC43LDAtOC40LTMuOC04LjQtOC40YzAtNC43LDMuOC04LjQsOC40LTguNEM1NC43LDksNTguNCwxMi44LDU4LjQsMTcuNHoiPjwvcGF0aD4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03OS42LDE1LjlMNTkuOSwzNS43djUxLjhjMCwyLjMtMS45LDQuMi00LjIsNC4ycy00LjItMS45LTQuMi00LjJWNTkuM2MwLTAuOC0wLjYtMS40LTEuNC0xLjQNCgkJCQkJYy0wLjgsMC0xLjQsMC42LTEuNCwxLjR2MjguMWMwLDIuMy0xLjksNC4yLTQuMiw0LjJjLTIuMywwLTQuMi0xLjktNC4yLTQuMlYzNS43TDIwLjQsMTUuOWMtMS42LTEuNi0xLjYtNC4zLDAtNg0KCQkJCQljMS42LTEuNiw0LjMtMS42LDYsMGMwLDAsMTAuMiwxMC40LDEzLjgsMTMuOGMyLDEuOSw1LjYsNSw5LjksNXM3LjgtMy4xLDkuOS01YzMuNS0zLjMsMTMuOC0xMy44LDEzLjgtMTMuOGMxLjYtMS42LDQuMy0xLjYsNiwwDQoJCQkJCVM4MS4zLDE0LjMsNzkuNiwxNS45eiI+PC9wYXRoPg0KCQkJPC9nPg0KCQk8L2c+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgUserWinning as ReactComponent };","import * as React from \"react\";\r\nimport { Flipper, Tooltips } from \".\";\r\nimport type { FlipData } from \".\";\r\n\r\n// Benefit Flip Imports\r\nimport tissue from \"../assets/svg/tissue.svg\";\r\nimport arrowsUp from \"../assets/svg/arrowsUp.svg\";\r\nimport injuredHand from \"../assets/svg/injuredHand.svg\";\r\nimport userOxygen from \"../assets/svg/userOxygen.svg\";\r\nimport userWinning from \"../assets/svg/userWinning.svg\";\r\n\r\nexport const RoleOfManagement: React.FC<{}> = () => {\r\n const benefits: FlipData[] = [\r\n {\r\n imgSrc: arrowsUp,\r\n smallText: \"Up to\",\r\n title: \"3x\",\r\n description: (\r\n <>\r\n Healthy employees are 3x more productive than unhealthy employees.\r\n \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: injuredHand,\r\n smallText: null,\r\n title: null,\r\n description: (\r\n <>\r\n Reduced likelihood of industrial accidents or injuries.\r\n \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: userWinning,\r\n smallText: null,\r\n title: null,\r\n description: (\r\n <>\r\n Create a positive work environment, resulting in healthier and safer\r\n employees.\r\n \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: userOxygen,\r\n smallText: null,\r\n title: null,\r\n description: (\r\n <>\r\n Decrease the risk of type 2 diabetes, cardiovascular diseases, breast\r\n and colon cancer.\r\n \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: tissue,\r\n smallText: null,\r\n title: \"25%\",\r\n description: (\r\n <>\r\n An average 25% reduction in absence due to sick leave.\r\n \r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n
    \r\n

    \r\n Role of management and gaining their support\r\n

    \r\n
    \r\n
    \r\n

    \r\n Getting the support of senior managers is especially important as\r\n they can commit money and people to the program and help make it a\r\n success. If managers lead the change by supporting the program goals\r\n and participating, workers will be more enthusiastic and motivated\r\n to join in.\r\n

    \r\n

    \r\n A great way to gain management support is to provide evidence of how\r\n investing in workplace health and wellbeing will benefit the\r\n business.\r\n

    \r\n

    \r\n Recent studies and reports indicate several benefits that effective\r\n workplace health and wellbeing programs can produce for both\r\n individuals and businesses.\r\n

    \r\n \r\n Click the arrows to see some of the potential benefits of workplace\r\n health and wellbeing programs.\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgInjuredHand(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.4 44.4c-.7 0-1.2-.5-1.2-1.2V14.5c0-1.8-1.4-3.2-3.2-3.2-1.8 0-3.2 1.4-3.2 3.2v28.7c0 .7-.5 1.2-1.2 1.2h-1.1c-.7 0-1.2-.5-1.2-1.2V15.8c0-1.6-1.3-2.8-2.8-2.8-1.6 0-2.8 1.3-2.8 2.8v27.4c0 .7-.5 1.2-1.2 1.2h-.7c-.7 0-1.2-.5-1.2-1.2v-25c0-1.5-1.2-2.6-2.6-2.6-1.5 0-2.6 1.2-2.6 2.6v49.2c0 2.3 1.2 5.6 2.6 7.4l4.1 5.1c1.4 1.8 2.6 4.9 2.6 7V91h23.6v-3.9c0-1.9 1.5-4.6 3.3-6l1.7-1.2c1.8-1.4 4.2-4.1 5.3-6.2l13.2-25.1c1.1-2 .5-3.6-1.2-3.5-1.7.1-4.3 1.6-5.7 3.4l-9.4 11.7c-1.3 1.8-2.5 1.4-2.5-.9V44.4H52.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.4 28.4l-7.6 3.9h7.6zM54.5 26.8V31l8.2-4.2zM54.5 35.5h12V41h-12zM62.7 17.8h-8.2V22zM66.4 14.6c-.2-3.1-2.8-5.6-6-5.6s-5.8 2.5-5.9 5.7h11.9zM58.2 23.6h8.2v-4.2z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPGc+DQogICAgPHBhdGggZD0iTTUyLjQsNDQuNGMtMC43LDAtMS4yLTAuNS0xLjItMS4yVjE0LjVjMC0xLjgtMS40LTMuMi0zLjItMy4yYy0xLjgsMC0zLjIsMS40LTMuMiwzLjJ2MjguNw0KICAgICAgYzAsMC43LTAuNSwxLjItMS4yLDEuMmgtMS4xYy0wLjcsMC0xLjItMC41LTEuMi0xLjJWMTUuOGMwLTEuNi0xLjMtMi44LTIuOC0yLjhjLTEuNiwwLTIuOCwxLjMtMi44LDIuOHYyNy40YzAsMC43LTAuNSwxLjItMS4yLDEuMg0KICAgICAgaC0wLjdjLTAuNywwLTEuMi0wLjUtMS4yLTEuMnYtMjVjMC0xLjUtMS4yLTIuNi0yLjYtMi42Yy0xLjUsMC0yLjYsMS4yLTIuNiwyLjZ2MjUuN2gwdjIzLjVjMCwyLjMsMS4yLDUuNiwyLjYsNy40bDQuMSw1LjENCiAgICAgIGMxLjQsMS44LDIuNiw0LjksMi42LDd2MC44VjkxaDIzLjZ2LTMuNGwwLTAuNWMwLTEuOSwxLjUtNC42LDMuMy02bDEuNy0xLjJjMS44LTEuNCw0LjItNC4xLDUuMy02LjJsMTMuMi0yNS4xDQogICAgICBjMS4xLTIsMC41LTMuNi0xLjItMy41Yy0xLjcsMC4xLTQuMywxLjYtNS43LDMuNGwtOS40LDExLjdDNjYuMiw2Miw2NSw2MS42LDY1LDU5LjNWNDQuNEg1Mi40eiI+PC9wYXRoPg0KICAgIDxwb2x5Z29uIHBvaW50cz0iNjYuNCwyOC40IDU4LjgsMzIuMyA2Ni40LDMyLjMgIj48L3BvbHlnb24+DQogICAgPHBvbHlnb24gcG9pbnRzPSI1NC41LDI2LjggNTQuNSwzMSA2Mi43LDI2LjggIj48L3BvbHlnb24+DQogICAgPHJlY3QgeD0iNTQuNSIgeT0iMzUuNSIgd2lkdGg9IjEyIiBoZWlnaHQ9IjUuNSI+PC9yZWN0Pg0KICAgIDxwb2x5Z29uIHBvaW50cz0iNjIuNywxNy44IDU0LjUsMTcuOCA1NC41LDIyICI+PC9wb2x5Z29uPg0KICAgIDxwYXRoIGQ9Ik02Ni40LDE0LjZDNjYuMiwxMS41LDYzLjYsOSw2MC40LDljLTMuMiwwLTUuOCwyLjUtNS45LDUuN0g2Ni40eiI+PC9wYXRoPg0KICAgIDxwb2x5Z29uIHBvaW50cz0iNTguMiwyMy42IDY2LjQsMjMuNiA2Ni40LDE5LjQgIj48L3BvbHlnb24+DQogIDwvZz4NCjwvc3ZnPg==\";\nexport { SvgInjuredHand as ReactComponent };","import React from \"react\";\r\n\r\nimport cogsIcon from \"../assets/svg/cogsColour.svg\";\r\nimport lightbulbIcon from \"../assets/svg/lightbulbColour.svg\";\r\nimport speechIcon from \"../assets/svg/speechBubblesColour.svg\";\r\n\r\ntype DataType = {\r\n imgUrl: string;\r\n title: string;\r\n description: JSX.Element;\r\n};\r\n\r\nconst DATA: DataType[] = [\r\n {\r\n imgUrl: speechIcon,\r\n title: \"engage\",\r\n description: (\r\n
    \r\n

    \r\n Most organisations implement a workplace health and wellbeing program\r\n to improve the overall health of their workforce. In order to do this,\r\n staff must be engaged with your program.\r\n

    \r\n

    \r\n Often it is the healthiest staff members that are the easiest to\r\n engage, but in order to improve the health and wellbeing of your\r\n workforce, you need to find ways to engage all staff members. Focus on\r\n ways to include and motivate those who demonstrate less healthy\r\n behaviours and are more resistant to change.\r\n

    \r\n
    \r\n ),\r\n },\r\n {\r\n imgUrl: lightbulbIcon,\r\n title: \"motivate\",\r\n description: (\r\n
    \r\n

    \r\n While reducing the risk of chronic disease will be a motivating factor\r\n for some people to change their health behaviours, this will not be true\r\n for everyone. Consulting with staff will help you to identify what\r\n factors might motivate them to engage with workplace health and wellbeing\r\n initiatives. Ensure you also identify any barriers that exist in the\r\n workplace currently (e.g. a biscuit tin in the staff kitchen). Some\r\n examples of common motivators include:\r\n

    \r\n
      \r\n
    • \r\n

      Weight management

      \r\n
    • \r\n
    • \r\n

      Stress reduction

      \r\n
    • \r\n
    • \r\n

      Sleep improvements

      \r\n
    • \r\n
    • \r\n

      Being a good role-model for children

      \r\n
    • \r\n
    • \r\n

      Workplace incentives and comradery

      \r\n
    • \r\n
    \r\n
    \r\n ),\r\n },\r\n {\r\n imgUrl: cogsIcon,\r\n title: \"action\",\r\n description: (\r\n
    \r\n

    \r\n Once you understand what motivates your staff, you can then tailor how\r\n you promote your workplace health and wellbeing program in order to\r\n increase participation.\r\n

    \r\n
    \r\n ),\r\n },\r\n];\r\n\r\nexport const MotivateEngage: React.FC<{}> = () => {\r\n return (\r\n
    \r\n
    \r\n {DATA.map(({ imgUrl, title, description }, idx) => (\r\n
    \r\n
    \r\n {`${title}\r\n
    \r\n

    {title}

    \r\n {description}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n","var _circle, _path, _path2, _path3, _path4, _g, _g2;\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\nimport * as React from \"react\";\n\nfunction SvgSpeechBubblesColour(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 194.5 194.3\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#178BC4\",\n cx: 97.3,\n cy: 97,\n r: 97.3\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA900\",\n d: \"M76 73c-22.7 0-41.2 14.5-41.2 32.5 0 13 9.7 24.1 23.6 29.3-.3.6-.5 1.1-.8 1.7-2.7 4.6-6.7 8-11.4 10.4 10.5.7 20.2-2.4 26.7-9 1.1.1 2.1.1 3.2.1 22.7 0 41.2-14.5 41.2-32.5C117.1 87.6 98.7 73 76 73z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9700\",\n d: \"M104.3 129c-25.5-.6-45.9-17-45.9-37.2 0-6.3 2-12.2 5.4-17.3 3.9-1 7.9-1.5 12.2-1.5 22.7 0 41.2 14.5 41.2 32.5-.1 9.2-5 17.6-12.9 23.5z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M111.1 46.4c26.1 0 47.2 16.7 47.2 37.2 0 14.9-11.1 27.7-27 33.6.3.6.6 1.3 1 1.9 3.1 5.2 7.7 9.2 13.1 11.9-12.1.9-23.2-2.8-30.6-10.3-1.2.1-2.5.2-3.7.2-26.1 0-47.2-16.7-47.2-37.2 0-20.6 21.1-37.3 47.2-37.3z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1ECFB\",\n d: \"M158.3 83.7c-.1 14.8-11.1 27.5-27 33.5.3.6.6 1.3 1 1.9 3.1 5.2 7.7 9.2 13.1 11.9-12.1.9-23.2-2.8-30.6-10.3-1.2.1-2.5.2-3.7.2-26 0-47.1-16.6-47.2-37.1h94.4z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#2E2E4E\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M124.7 84.3c0 3.7 3 6.6 6.6 6.6 3.6 0 6.6-3 6.6-6.6 0-3.7-3-6.6-6.6-6.6-3.7 0-6.6 2.9-6.6 6.6zM104.3 84.3c0 3.7 3 6.6 6.6 6.6 3.7 0 6.6-3 6.6-6.6 0-3.7-3-6.6-6.6-6.6-3.6 0-6.6 2.9-6.6 6.6zM84 84.3c0 3.7 3 6.6 6.6 6.6 3.7 0 6.6-3 6.6-6.6 0-3.7-3-6.6-6.6-6.6-3.6 0-6.6 2.9-6.6 6.6z\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#474770\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.9 83.7h-13.1c.3-3.4 3.1-6.1 6.6-6.1 3.4.1 6.2 2.7 6.5 6.1zM117.5 83.7h-13.1c.3-3.4 3.1-6.1 6.6-6.1 3.4.1 6.2 2.7 6.5 6.1zM97.2 83.7H84c.3-3.4 3.1-6.1 6.6-6.1 3.5.1 6.3 2.7 6.6 6.1z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTk0LjUgMTk0LjMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE5NC41IDE5NC4zIj4NCiAgPGNpcmNsZSBmaWxsPSIjMTc4QkM0IiBjeD0iOTcuMyIgY3k9Ijk3IiByPSI5Ny4zIi8+DQogIDxnPg0KICAgIDxnPg0KICAgICAgPHBhdGggZmlsbD0iI0ZGQTkwMCIgZD0iTTc2LDczYy0yMi43LDAtNDEuMiwxNC41LTQxLjIsMzIuNWMwLDEzLDkuNywyNC4xLDIzLjYsMjkuM2MtMC4zLDAuNi0wLjUsMS4xLTAuOCwxLjcgICAgYy0yLjcsNC42LTYuNyw4LTExLjQsMTAuNGMxMC41LDAuNywyMC4yLTIuNCwyNi43LTljMS4xLDAuMSwyLjEsMC4xLDMuMiwwLjFjMjIuNywwLDQxLjItMTQuNSw0MS4yLTMyLjUgICAgQzExNy4xLDg3LjYsOTguNyw3Myw3Niw3M3oiLz4NCiAgICAgIDxwYXRoIGZpbGw9IiNGRjk3MDAiIGQ9Ik0xMDQuMywxMjljLTI1LjUtMC42LTQ1LjktMTctNDUuOS0zNy4yYzAtNi4zLDItMTIuMiw1LjQtMTcuM0M2Ny43LDczLjUsNzEuNyw3Myw3Niw3MyAgICBjMjIuNywwLDQxLjIsMTQuNSw0MS4yLDMyLjVDMTE3LjEsMTE0LjcsMTEyLjIsMTIzLjEsMTA0LjMsMTI5eiIvPg0KICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTExMS4xLDQ2LjRjMjYuMSwwLDQ3LjIsMTYuNyw0Ny4yLDM3LjJjMCwxNC45LTExLjEsMjcuNy0yNywzMy42YzAuMywwLjYsMC42LDEuMywxLDEuOSAgICBjMy4xLDUuMiw3LjcsOS4yLDEzLjEsMTEuOWMtMTIuMSwwLjktMjMuMi0yLjgtMzAuNi0xMC4zYy0xLjIsMC4xLTIuNSwwLjItMy43LDAuMmMtMjYuMSwwLTQ3LjItMTYuNy00Ny4yLTM3LjIgICAgQzYzLjksNjMuMSw4NSw0Ni40LDExMS4xLDQ2LjR6Ii8+DQogICAgICA8cGF0aCBmaWxsPSIjRDFFQ0ZCIiBkPSJNMTU4LjMsODMuN2MtMC4xLDE0LjgtMTEuMSwyNy41LTI3LDMzLjVjMC4zLDAuNiwwLjYsMS4zLDEsMS45YzMuMSw1LjIsNy43LDkuMiwxMy4xLDExLjkgICAgYy0xMi4xLDAuOS0yMy4yLTIuOC0zMC42LTEwLjNjLTEuMiwwLjEtMi41LDAuMi0zLjcsMC4yYy0yNiwwLTQ3LjEtMTYuNi00Ny4yLTM3LjFIMTU4LjN6Ii8+DQogICAgICA8Zz4NCiAgICAgICAgPGc+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzJFMkU0RSIgZD0iTTEyNC43LDg0LjNjMCwzLjcsMyw2LjYsNi42LDYuNmMzLjYsMCw2LjYtMyw2LjYtNi42YzAtMy43LTMtNi42LTYuNi02LjYgICAgICBDMTI3LjYsNzcuNywxMjQuNyw4MC42LDEyNC43LDg0LjN6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzJFMkU0RSIgZD0iTTEwNC4zLDg0LjNjMCwzLjcsMyw2LjYsNi42LDYuNmMzLjcsMCw2LjYtMyw2LjYtNi42YzAtMy43LTMtNi42LTYuNi02LjYgICAgICBDMTA3LjMsNzcuNywxMDQuMyw4MC42LDEwNC4zLDg0LjN6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzJFMkU0RSIgZD0iTTg0LDg0LjNjMCwzLjcsMyw2LjYsNi42LDYuNmMzLjcsMCw2LjYtMyw2LjYtNi42YzAtMy43LTMtNi42LTYuNi02LjZDODcsNzcuNyw4NCw4MC42LDg0LDg0LjN6Ii8+DQogICAgICAgIDwvZz4NCiAgICAgICAgPGc+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzQ3NDc3MCIgZD0iTTEzNy45LDgzLjdoLTEzLjFjMC4zLTMuNCwzLjEtNi4xLDYuNi02LjFDMTM0LjgsNzcuNywxMzcuNiw4MC4zLDEzNy45LDgzLjd6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzQ3NDc3MCIgZD0iTTExNy41LDgzLjdoLTEzLjFjMC4zLTMuNCwzLjEtNi4xLDYuNi02LjFDMTE0LjQsNzcuNywxMTcuMiw4MC4zLDExNy41LDgzLjd6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzQ3NDc3MCIgZD0iTTk3LjIsODMuN0g4NGMwLjMtMy40LDMuMS02LjEsNi42LTYuMUM5NC4xLDc3LjcsOTYuOSw4MC4zLDk3LjIsODMuN3oiLz4NCiAgICAgICAgPC9nPg0KICAgICAgPC9nPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+\";\nexport { SvgSpeechBubblesColour as ReactComponent };","var _defs, _use, _clipPath, _g;\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\nimport * as React from \"react\";\n\nfunction SvgLightbulbColour(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n viewBox: \"0 0 194.5 194.5\"\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"lightbulbColour_svg__a\",\n cx: 97.3,\n cy: 97.2,\n r: 97.3\n }))), _use || (_use = /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#lightbulbColour_svg__a\",\n overflow: \"visible\",\n fill: \"#178BC4\"\n })), _clipPath || (_clipPath = /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"lightbulbColour_svg__b\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#lightbulbColour_svg__a\",\n overflow: \"visible\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#lightbulbColour_svg__b)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1ECFB\",\n d: \"M74 105.1c-1.8 1.8-1.8 4.8 0 6.6l2.6 2.6c1.8 1.8 4.8 1.8 6.6 0 1.8-1.8 1.8-4.8 0-6.6l-2.6-2.6c-1.8-1.8-4.8-1.8-6.6 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A7DFF9\",\n d: \"M73.6 128c-1.8 1.8-1.8 4.8 0 6.6l7.5 7.5c1.8 1.8 4.8 1.8 6.6 0 1.8-1.8 1.8-4.8 0-6.6l-7.5-7.5c-1.9-1.8-4.8-1.8-6.6 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1ECFB\",\n d: \"M73.5 116.5c-1.8 1.8-1.8 4.8 0 6.6l6.1 6.1c1.8 1.8 4.8 1.8 6.6 0 1.8-1.8 1.8-4.8 0-6.6l-6.1-6.1c-1.9-1.8-4.8-1.8-6.6 0z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M94.7 205.7v-54.2c0-4.5 3.7-8.2 8.2-8.2h13.3c4.5 0 8.2 3.7 8.2 8.2v54.2H94.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1ECFB\",\n d: \"M120.7 134.5c4.3 4.3 4.3 11.3 0 15.6L108 162.9c-4.3 4.3-11.3 4.3-15.6 0l-12.7-12.7c-4.3-4.3-9.4-6.4-5.1-10.7l7.4-18.9c4.3-4.3 21.7-3 26 1.3l12.7 12.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M74.1 146.8l19.4 19.4s3.8 4.6 6.4 2.5c6.6-5.6 5.6-17.9-2-25.5-4-4-17.4-4.6-21.5 1.4l-2.3 2.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CDD8E8\",\n d: \"M96.4 174.9h33.3v17H96.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E2E4E\",\n d: \"M95.2 178H131v34.9H95.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E2E4E\",\n d: \"M95.2 178H131v2.7H95.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EBF1FC\",\n d: \"M94.5 174.9h16.6v3.1H94.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#474770\",\n d: \"M93.2 180.7h17.9v32.2H93.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E2E4E\",\n d: \"M111.1 178v2.7H93.2V178h1.3z\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#2E2E4E\",\n cx: 98.8,\n cy: 185.9,\n r: 1.7\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D1ECFB\",\n d: \"M73.7 139.6c-1.8 1.8-1.8 4.8 0 6.6l2.6 2.6c1.8 1.8 4.8 1.8 6.6 0 1.8-1.8 1.8-4.8 0-6.6l-2.6-2.6c-1.9-1.8-4.8-1.8-6.6 0z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2C5871\",\n d: \"M83.7 126.9h24c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5h-24c-.8 0-1.5.7-1.5 1.5 0 .9.6 1.5 1.5 1.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M95.7 29c-.4 0-.8-.3-.8-.8V22c0-.4.3-.8.8-.8.4 0 .8.3.8.8v6.2c0 .5-.4.8-.8.8zM105.5 30.3h-.2c-.4-.1-.7-.5-.5-.9l1.6-6c.1-.4.5-.7.9-.5.4.1.7.5.5.9l-1.6 6c-.1.3-.4.5-.7.5zM114.5 34.1c-.1 0-.3 0-.4-.1-.4-.2-.5-.7-.3-1l3.1-5.4c.2-.4.7-.5 1-.3.4.2.5.7.3 1l-3.1 5.4c0 .2-.3.4-.6.4zM122.3 40.1c-.2 0-.4-.1-.5-.2-.3-.3-.3-.8 0-1.1l4.4-4.4c.3-.3.8-.3 1.1 0 .3.3.3.8 0 1.1l-4.4 4.4c-.2.1-.4.2-.6.2zM128.3 47.9c-.3 0-.5-.1-.7-.4-.2-.4-.1-.8.3-1l5.4-3.1c.4-.2.8-.1 1 .3.2.4.1.8-.3 1l-5.4 3.1c-.1.1-.2.1-.3.1zM132 57c-.3 0-.6-.2-.7-.6-.1-.4.1-.8.5-.9l6-1.6c.4-.1.8.1.9.5.1.4-.1.8-.5.9l-6 1.6c0 .1-.1.1-.2.1zM139.5 66.7h-6.2c-.4 0-.8-.3-.8-.8 0-.4.3-.8.8-.8h6.2c.4 0 .8.3.8.8s-.4.8-.8.8zM138 78.1h-.2l-6-1.6c-.4-.1-.7-.5-.5-.9.1-.4.5-.7.9-.5l6 1.6c.4.1.7.5.5.9 0 .2-.4.5-.7.5zM133.6 88.6c-.1 0-.3 0-.4-.1l-5.4-3.1c-.4-.2-.5-.7-.3-1 .2-.4.7-.5 1-.3l5.4 3.1c.4.2.5.7.3 1-.1.3-.3.4-.6.4zM126.6 97.7c-.2 0-.4-.1-.5-.2l-4.4-4.4c-.3-.3-.3-.8 0-1.1.3-.3.8-.3 1.1 0l4.4 4.4c.3.3.3.8 0 1.1-.2.1-.4.2-.6.2zM64.6 97.6c-.2 0-.4-.1-.5-.2-.3-.3-.3-.8 0-1.1l4.4-4.4c.3-.3.8-.3 1.1 0 .3.3.3.8 0 1.1l-4.4 4.4c-.2.1-.4.2-.6.2zM57.6 88.5c-.3 0-.5-.1-.7-.4-.2-.4-.1-.8.3-1l5.4-3.1c.4-.2.8-.1 1 .3.2.4.1.8-.3 1L58 88.4c-.1.1-.2.1-.4.1zM53.3 77.9c-.3 0-.6-.2-.7-.6-.1-.4.1-.8.5-.9l6-1.6c.4-.1.8.1.9.5.1.4-.1.8-.5.9l-6 1.6c-.1.1-.2.1-.2.1zM58 66.6h-6.2c-.4 0-.8-.3-.8-.8 0-.4.3-.8.8-.8H58c.4 0 .8.3.8.8 0 .4-.4.8-.8.8zM59.3 56.8h-.2l-6-1.6c-.4-.1-.7-.5-.5-.9.1-.4.5-.7.9-.5l6 1.6c.4.1.7.5.5.9 0 .3-.3.5-.7.5zM63.1 47.8c-.1 0-.3 0-.4-.1l-5.4-3.1c-.4-.2-.5-.7-.3-1 .2-.4.7-.5 1-.3l5.4 3.1c.4.2.5.7.3 1-.1.2-.3.4-.6.4zM69.1 40c-.2 0-.4-.1-.5-.2l-4.4-4.4c-.3-.3-.3-.8 0-1.1.3-.3.8-.3 1.1 0l4.4 4.4c.3.3.3.8 0 1.1-.2.1-.4.2-.6.2zM76.9 34c-.3 0-.5-.1-.7-.4l-3.1-5.4c-.2-.4-.1-.8.3-1 .4-.2.8-.1 1 .3l3.1 5.4c.2.4.1.8-.3 1 0 .1-.2.1-.3.1zM86 30.3c-.3 0-.6-.2-.7-.6l-1.6-6c-.1-.4.1-.8.5-.9.4-.1.8.1.9.5l1.6 6c.1.4-.1.8-.5.9-.1.1-.2.1-.2.1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9700\",\n d: \"M64.8 65.6c0-16.5 13.3-29.8 29.8-29.8s29.8 13.3 29.8 29.8c0 1-.7 14.8-11.9 29.2-3.3 4.4-2.7 13.1-2.7 13.1H79.5s.6-8.8-2.6-13.1C65.5 80.3 64.8 66.5 64.8 65.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA900\",\n d: \"M95.7 107.9H80.5s.6-8.8-2.6-13.1C66.5 80.3 65.8 66.5 65.8 65.6c0-16.5 13.3-29.8 29.8-29.8\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA900\",\n d: \"M119.1 65.6h-2.6c0-11.5-9.4-20.9-20.9-20.9v-2.6c13 0 23.5 10.5 23.5 23.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M102.2 110.3l-2.6-.5 5.1-30.8 2.6.6-5.1 30.8zM89.1 110.4L84 79.6l2.6-.6 5.1 30.8-2.6.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M105.8 83.4c-1.1 0-1.5-1-1.9-1.8-.1-.3-.4-1-.6-1-.2 0-.5.7-.6 1-.3.8-.8 1.8-1.9 1.8-1.1 0-1.5-1-1.9-1.8-.1-.3-.4-1-.6-1-.2 0-.5.7-.6 1-.3.8-.8 1.8-1.9 1.8-1.1 0-1.5-1-1.9-1.8-.1-.3-.4-1-.6-1-.2 0-.5.7-.6 1-.3.8-.8 1.8-1.9 1.8-1.1 0-1.5-1-1.9-1.8-.1-.3-.4-1-.6-1-.2 0-.5.7-.6 1-.3.8-.8 1.8-1.9 1.8V82c.2 0 .5-.7.6-1 .3-.8.8-1.8 1.9-1.8 1.1 0 1.5 1 1.9 1.8.1.3.4 1 .6 1 .2 0 .5-.7.6-1 .3-.8.8-1.8 1.9-1.8 1.1 0 1.5 1 1.9 1.8.1.3.4 1 .6 1 .2 0 .5-.7.6-1 .3-.8.8-1.8 1.9-1.8 1.1 0 1.5 1 1.9 1.8.1.3.4 1 .6 1 .2 0 .5-.7.6-1 .3-.8.8-1.8 1.9-1.8 1.1 0 1.5 1 1.9 1.8.1.3.4 1 .6 1v1.4z\"\n }))), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0E303F\",\n d: \"M110.8 108.1v15.6c0 1.1-.9 1.9-1.9 1.9H82.4c-1.1 0-1.9-.9-1.9-1.9v-15.6h30.3z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2C5871\",\n d: \"M111.5 111.1H79.9c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h31.6c.8 0 1.5.7 1.5 1.5 0 .9-.7 1.5-1.5 1.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2C5871\",\n d: \"M111.5 116.2H79.9c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h31.6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2C5871\",\n d: \"M111.5 121.3H79.9c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h31.6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M121.7 120.6l-12.8.4c-4.5.1-8.1-3.5-8.2-7.9v-2.7-.3l16.2-.2 4.8 10.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M108.6 115l4.9 14.6 10.5-3.5-7.1-16.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M124 163.5V126c-.9-.2-1.8-.3-2.8-.3-9.2 0-16.6 9.8-16.6 21.9 0 6.3 2 12 5.3 16H124z\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M72.1 142.9c0 2.6 2.1 4.7 4.7 4.7h3.7c2.6 0 4.6-2.1 4.7-4.7 0-2.6-2.1-4.7-4.7-4.7h-3.7c-2.6 0-4.7 2.1-4.7 4.7zM72.1 107.4c0 2.6 2.1 4.6 4.7 4.7h3.7c2.6 0 4.6-2.1 4.7-4.6 0-2.6-2.1-4.7-4.7-4.7h-3.7c-2.6 0-4.7 2.1-4.7 4.6zM72.1 131.2c0 2.6 2.1 4.6 4.7 4.6h10.7c2.6 0 4.7-2.1 4.7-4.6 0-2.6-2.1-4.7-4.7-4.7H76.8c-2.6.1-4.7 2.2-4.7 4.7zM72.1 119.6c0 2.6 2.1 4.7 4.7 4.7h8.6c2.6 0 4.7-2.1 4.6-4.6 0-2.6-2.1-4.7-4.6-4.7h-8.6c-2.6-.1-4.7 2-4.7 4.6z\"\n })))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTk0LjUgMTk0LjUiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE5NC41IDE5NC41IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCiAgPGc+DQogICAgPGRlZnM+DQogICAgICA8Y2lyY2xlIGlkPSJTVkdJRF8xXyIgY3g9Ijk3LjMiIGN5PSI5Ny4yIiByPSI5Ny4zIi8+DQogICAgPC9kZWZzPg0KICAgIDx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzFfIiBvdmVyZmxvdz0idmlzaWJsZSIgZmlsbD0iIzE3OEJDNCIvPg0KICAgIDxjbGlwUGF0aCBpZD0iU1ZHSURfMl8iPg0KICAgICAgPHVzZSB4bGluazpocmVmPSIjU1ZHSURfMV8iIG92ZXJmbG93PSJ2aXNpYmxlIi8+DQogICAgPC9jbGlwUGF0aD4NCiAgICA8ZyBjbGlwLXBhdGg9InVybCgjU1ZHSURfMl8pIj4NCiAgICAgIDxwYXRoIGZpbGw9IiNEMUVDRkIiIGQ9Ik03NCwxMDUuMWMtMS44LDEuOC0xLjgsNC44LDAsNi42bDIuNiwyLjZjMS44LDEuOCw0LjgsMS44LDYuNiwwbDAsMGMxLjgtMS44LDEuOC00LjgsMC02LjZsLTIuNi0yLjYgICAgQzc4LjgsMTAzLjMsNzUuOCwxMDMuMyw3NCwxMDUuMUw3NCwxMDUuMXoiLz4NCiAgICAgIDxwYXRoIGZpbGw9IiNBN0RGRjkiIGQ9Ik03My42LDEyOGMtMS44LDEuOC0xLjgsNC44LDAsNi42bDcuNSw3LjVjMS44LDEuOCw0LjgsMS44LDYuNiwwbDAsMGMxLjgtMS44LDEuOC00LjgsMC02LjZsLTcuNS03LjUgICAgQzc4LjMsMTI2LjIsNzUuNCwxMjYuMiw3My42LDEyOEw3My42LDEyOHoiLz4NCiAgICAgIDxwYXRoIGZpbGw9IiNEMUVDRkIiIGQ9Ik03My41LDExNi41Yy0xLjgsMS44LTEuOCw0LjgsMCw2LjZsNi4xLDYuMWMxLjgsMS44LDQuOCwxLjgsNi42LDBsMCwwYzEuOC0xLjgsMS44LTQuOCwwLTYuNmwtNi4xLTYuMSAgICBDNzguMiwxMTQuNyw3NS4zLDExNC43LDczLjUsMTE2LjVMNzMuNSwxMTYuNXoiLz4NCiAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik05NC43LDIwNS43di01NC4yYzAtNC41LDMuNy04LjIsOC4yLTguMmgxMy4zYzQuNSwwLDguMiwzLjcsOC4yLDguMnY1NC4ySDk0Ljd6Ii8+DQogICAgICA8cGF0aCBmaWxsPSIjRDFFQ0ZCIiBkPSJNMTIwLjcsMTM0LjVjNC4zLDQuMyw0LjMsMTEuMywwLDE1LjZMMTA4LDE2Mi45Yy00LjMsNC4zLTExLjMsNC4zLTE1LjYsMGwtMTIuNy0xMi43ICAgIGMtNC4zLTQuMy05LjQtNi40LTUuMS0xMC43bDcuNC0xOC45YzQuMy00LjMsMjEuNy0zLDI2LDEuM0wxMjAuNywxMzQuNXoiLz4NCiAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik03NC4xLDE0Ni44bDE5LjQsMTkuNGMwLDAsMy44LDQuNiw2LjQsMi41YzYuNi01LjYsNS42LTE3LjktMi0yNS41Yy00LTQtMTcuNC00LjYtMjEuNSwxLjRMNzQuMSwxNDYuOHoiLz4NCiAgICAgIDxnPg0KICAgICAgICA8Zz4NCiAgICAgICAgICA8cmVjdCB4PSI5Ni40IiB5PSIxNzQuOSIgZmlsbD0iI0NERDhFOCIgd2lkdGg9IjMzLjMiIGhlaWdodD0iMTciLz4NCiAgICAgICAgICA8cmVjdCB4PSI5NS4yIiB5PSIxNzgiIGZpbGw9IiMyRTJFNEUiIHdpZHRoPSIzNS44IiBoZWlnaHQ9IjM0LjkiLz4NCiAgICAgICAgICA8cmVjdCB4PSI5NS4yIiB5PSIxNzgiIGZpbGw9IiMyRTJFNEUiIHdpZHRoPSIzNS44IiBoZWlnaHQ9IjIuNyIvPg0KICAgICAgICA8L2c+DQogICAgICAgIDxwb2x5Z29uIGZpbGw9IiNFQkYxRkMiIHBvaW50cz0iOTQuNSwxNzQuOSAxMTEuMSwxNzQuOSAxMTEuMSwxNzggOTQuNSwxNzggICAgIi8+DQogICAgICAgIDxyZWN0IHg9IjkzLjIiIHk9IjE4MC43IiBmaWxsPSIjNDc0NzcwIiB3aWR0aD0iMTcuOSIgaGVpZ2h0PSIzMi4yIi8+DQogICAgICAgIDxwb2x5Z29uIGZpbGw9IiMyRTJFNEUiIHBvaW50cz0iMTExLjEsMTc4IDExMS4xLDE4MC43IDkzLjIsMTgwLjcgOTMuMiwxNzggOTQuNSwxNzggICAgIi8+DQogICAgICAgIDxjaXJjbGUgZmlsbD0iIzJFMkU0RSIgY3g9Ijk4LjgiIGN5PSIxODUuOSIgcj0iMS43Ii8+DQogICAgICA8L2c+DQogICAgICA8cGF0aCBmaWxsPSIjRDFFQ0ZCIiBkPSJNNzMuNywxMzkuNmMtMS44LDEuOC0xLjgsNC44LDAsNi42bDIuNiwyLjZjMS44LDEuOCw0LjgsMS44LDYuNiwwbDAsMGMxLjgtMS44LDEuOC00LjgsMC02LjZsLTIuNi0yLjYgICAgQzc4LjQsMTM3LjgsNzUuNSwxMzcuOCw3My43LDEzOS42TDczLjcsMTM5LjZ6Ii8+DQogICAgICA8Zz4NCiAgICAgICAgPGc+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzJDNTg3MSIgZD0iTTgzLjcsMTI2LjloMjRjMC44LDAsMS41LTAuNywxLjUtMS41YzAtMC44LTAuNy0xLjUtMS41LTEuNWgtMjRjLTAuOCwwLTEuNSwwLjctMS41LDEuNSAgICAgIEM4Mi4yLDEyNi4zLDgyLjgsMTI2LjksODMuNywxMjYuOUw4My43LDEyNi45eiIvPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTk1LjcsMjljLTAuNCwwLTAuOC0wLjMtMC44LTAuOFYyMmMwLTAuNCwwLjMtMC44LDAuOC0wLjhjMC40LDAsMC44LDAuMywwLjgsMC44djYuMiAgICAgICBDOTYuNSwyOC43LDk2LjEsMjksOTUuNywyOUw5NS43LDI5eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMDUuNSwzMC4zYy0wLjEsMC0wLjEsMC0wLjIsMGMtMC40LTAuMS0wLjctMC41LTAuNS0wLjlsMS42LTZjMC4xLTAuNCwwLjUtMC43LDAuOS0wLjUgICAgICAgYzAuNCwwLjEsMC43LDAuNSwwLjUsMC45bC0xLjYsNkMxMDYuMSwzMC4xLDEwNS44LDMwLjMsMTA1LjUsMzAuM0wxMDUuNSwzMC4zeiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMTQuNSwzNC4xYy0wLjEsMC0wLjMsMC0wLjQtMC4xYy0wLjQtMC4yLTAuNS0wLjctMC4zLTFsMy4xLTUuNGMwLjItMC40LDAuNy0wLjUsMS0wLjMgICAgICAgYzAuNCwwLjIsMC41LDAuNywwLjMsMWwtMy4xLDUuNEMxMTUuMSwzMy45LDExNC44LDM0LjEsMTE0LjUsMzQuMUwxMTQuNSwzNC4xeiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMjIuMyw0MC4xYy0wLjIsMC0wLjQtMC4xLTAuNS0wLjJjLTAuMy0wLjMtMC4zLTAuOCwwLTEuMWw0LjQtNC40YzAuMy0wLjMsMC44LTAuMywxLjEsMCAgICAgICBjMC4zLDAuMywwLjMsMC44LDAsMS4xbC00LjQsNC40QzEyMi43LDQwLDEyMi41LDQwLjEsMTIyLjMsNDAuMUwxMjIuMyw0MC4xeiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMjguMyw0Ny45Yy0wLjMsMC0wLjUtMC4xLTAuNy0wLjRjLTAuMi0wLjQtMC4xLTAuOCwwLjMtMWw1LjQtMy4xYzAuNC0wLjIsMC44LTAuMSwxLDAuMyAgICAgICBjMC4yLDAuNCwwLjEsMC44LTAuMywxbC01LjQsMy4xQzEyOC41LDQ3LjksMTI4LjQsNDcuOSwxMjguMyw0Ny45TDEyOC4zLDQ3Ljl6Ii8+DQogICAgICAgICAgPC9nPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTEzMiw1N2MtMC4zLDAtMC42LTAuMi0wLjctMC42Yy0wLjEtMC40LDAuMS0wLjgsMC41LTAuOWw2LTEuNmMwLjQtMC4xLDAuOCwwLjEsMC45LDAuNSAgICAgICBjMC4xLDAuNC0wLjEsMC44LTAuNSwwLjlsLTYsMS42QzEzMi4yLDU3LDEzMi4xLDU3LDEzMiw1N0wxMzIsNTd6Ii8+DQogICAgICAgICAgPC9nPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTEzOS41LDY2LjdoLTYuMmMtMC40LDAtMC44LTAuMy0wLjgtMC44YzAtMC40LDAuMy0wLjgsMC44LTAuOGg2LjJjMC40LDAsMC44LDAuMywwLjgsMC44ICAgICAgIEMxNDAuMyw2Ni40LDEzOS45LDY2LjcsMTM5LjUsNjYuN0wxMzkuNSw2Ni43eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMzgsNzguMWMtMC4xLDAtMC4xLDAtMC4yLDBsLTYtMS42Yy0wLjQtMC4xLTAuNy0wLjUtMC41LTAuOWMwLjEtMC40LDAuNS0wLjcsMC45LTAuNWw2LDEuNiAgICAgICBjMC40LDAuMSwwLjcsMC41LDAuNSwwLjlDMTM4LjcsNzcuOCwxMzguMyw3OC4xLDEzOCw3OC4xTDEzOCw3OC4xeiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMzMuNiw4OC42Yy0wLjEsMC0wLjMsMC0wLjQtMC4xbC01LjQtMy4xYy0wLjQtMC4yLTAuNS0wLjctMC4zLTFjMC4yLTAuNCwwLjctMC41LDEtMC4zbDUuNCwzLjEgICAgICAgYzAuNCwwLjIsMC41LDAuNywwLjMsMUMxMzQuMSw4OC41LDEzMy45LDg4LjYsMTMzLjYsODguNkwxMzMuNiw4OC42eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMjYuNiw5Ny43Yy0wLjIsMC0wLjQtMC4xLTAuNS0wLjJsLTQuNC00LjRjLTAuMy0wLjMtMC4zLTAuOCwwLTEuMWMwLjMtMC4zLDAuOC0wLjMsMS4xLDBsNC40LDQuNCAgICAgICBjMC4zLDAuMywwLjMsMC44LDAsMS4xQzEyNyw5Ny42LDEyNi44LDk3LjcsMTI2LjYsOTcuN0wxMjYuNiw5Ny43eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik02NC42LDk3LjZjLTAuMiwwLTAuNC0wLjEtMC41LTAuMmMtMC4zLTAuMy0wLjMtMC44LDAtMS4xbDQuNC00LjRjMC4zLTAuMywwLjgtMC4zLDEuMSwwICAgICAgIGMwLjMsMC4zLDAuMywwLjgsMCwxLjFsLTQuNCw0LjRDNjUsOTcuNSw2NC44LDk3LjYsNjQuNiw5Ny42TDY0LjYsOTcuNnoiLz4NCiAgICAgICAgICA8L2c+DQogICAgICAgICAgPGc+DQogICAgICAgICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNTcuNiw4OC41Yy0wLjMsMC0wLjUtMC4xLTAuNy0wLjRjLTAuMi0wLjQtMC4xLTAuOCwwLjMtMWw1LjQtMy4xYzAuNC0wLjIsMC44LTAuMSwxLDAuMyAgICAgICBjMC4yLDAuNCwwLjEsMC44LTAuMywxTDU4LDg4LjRDNTcuOSw4OC41LDU3LjgsODguNSw1Ny42LDg4LjVMNTcuNiw4OC41eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik01My4zLDc3LjljLTAuMywwLTAuNi0wLjItMC43LTAuNmMtMC4xLTAuNCwwLjEtMC44LDAuNS0wLjlsNi0xLjZjMC40LTAuMSwwLjgsMC4xLDAuOSwwLjUgICAgICAgYzAuMSwwLjQtMC4xLDAuOC0wLjUsMC45bC02LDEuNkM1My40LDc3LjksNTMuMyw3Ny45LDUzLjMsNzcuOUw1My4zLDc3Ljl6Ii8+DQogICAgICAgICAgPC9nPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTU4LDY2LjZoLTYuMmMtMC40LDAtMC44LTAuMy0wLjgtMC44YzAtMC40LDAuMy0wLjgsMC44LTAuOEg1OGMwLjQsMCwwLjgsMC4zLDAuOCwwLjggICAgICAgQzU4LjgsNjYuMiw1OC40LDY2LjYsNTgsNjYuNkw1OCw2Ni42eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik01OS4zLDU2LjhjLTAuMSwwLTAuMSwwLTAuMiwwbC02LTEuNmMtMC40LTAuMS0wLjctMC41LTAuNS0wLjljMC4xLTAuNCwwLjUtMC43LDAuOS0wLjVsNiwxLjYgICAgICAgYzAuNCwwLjEsMC43LDAuNSwwLjUsMC45QzYwLDU2LjYsNTkuNyw1Ni44LDU5LjMsNTYuOEw1OS4zLDU2Ljh6Ii8+DQogICAgICAgICAgPC9nPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYzLjEsNDcuOGMtMC4xLDAtMC4zLDAtMC40LTAuMWwtNS40LTMuMWMtMC40LTAuMi0wLjUtMC43LTAuMy0xYzAuMi0wLjQsMC43LTAuNSwxLTAuM2w1LjQsMy4xICAgICAgIGMwLjQsMC4yLDAuNSwwLjcsMC4zLDFDNjMuNiw0Ny42LDYzLjQsNDcuOCw2My4xLDQ3LjhMNjMuMSw0Ny44eiIvPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik02OS4xLDQwYy0wLjIsMC0wLjQtMC4xLTAuNS0wLjJsLTQuNC00LjRjLTAuMy0wLjMtMC4zLTAuOCwwLTEuMWMwLjMtMC4zLDAuOC0wLjMsMS4xLDBsNC40LDQuNCAgICAgICBjMC4zLDAuMywwLjMsMC44LDAsMS4xQzY5LjUsMzkuOSw2OS4zLDQwLDY5LjEsNDBMNjkuMSw0MHoiLz4NCiAgICAgICAgICA8L2c+DQogICAgICAgICAgPGc+DQogICAgICAgICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNzYuOSwzNGMtMC4zLDAtMC41LTAuMS0wLjctMC40bC0zLjEtNS40Yy0wLjItMC40LTAuMS0wLjgsMC4zLTFjMC40LTAuMiwwLjgtMC4xLDEsMC4zbDMuMSw1LjQgICAgICAgYzAuMiwwLjQsMC4xLDAuOC0wLjMsMUM3Ny4yLDM0LDc3LDM0LDc2LjksMzRMNzYuOSwzNHoiLz4NCiAgICAgICAgICA8L2c+DQogICAgICAgICAgPGc+DQogICAgICAgICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNODYsMzAuM2MtMC4zLDAtMC42LTAuMi0wLjctMC42bC0xLjYtNmMtMC4xLTAuNCwwLjEtMC44LDAuNS0wLjljMC40LTAuMSwwLjgsMC4xLDAuOSwwLjVsMS42LDYgICAgICAgYzAuMSwwLjQtMC4xLDAuOC0wLjUsMC45Qzg2LjEsMzAuMyw4NiwzMC4zLDg2LDMwLjNMODYsMzAuM3oiLz4NCiAgICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICAgICAgPHBhdGggZmlsbD0iI0ZGOTcwMCIgZD0iTTY0LjgsNjUuNmMwLTE2LjUsMTMuMy0yOS44LDI5LjgtMjkuOGMxNi41LDAsMjkuOCwxMy4zLDI5LjgsMjkuOGMwLDEtMC43LDE0LjgtMTEuOSwyOS4yICAgICBjLTMuMyw0LjQtMi43LDEzLjEtMi43LDEzLjFjLTQuNiwwLTguNCwwLTEzLDBjLTEuNCwwLTIuOCwwLTQuMiwwYy00LjYsMC04LjUsMC0xMy4xLDBjMCwwLDAuNi04LjgtMi42LTEzLjEgICAgIEM2NS41LDgwLjMsNjQuOCw2Ni41LDY0LjgsNjUuNnoiLz4NCiAgICAgICAgPHBhdGggZmlsbD0iI0ZGQTkwMCIgZD0iTTk1LjcsMTA3LjljLTQuNiwwLTEwLjYsMC0xNS4yLDBjMCwwLDAuNi04LjgtMi42LTEzLjFDNjYuNSw4MC4zLDY1LjgsNjYuNSw2NS44LDY1LjYgICAgIGMwLTE2LjUsMTMuMy0yOS44LDI5LjgtMjkuOCIvPg0KICAgICAgICA8Zz4NCiAgICAgICAgICA8cGF0aCBmaWxsPSIjRkZBOTAwIiBkPSJNMTE5LjEsNjUuNmgtMi42YzAtMTEuNS05LjQtMjAuOS0yMC45LTIwLjl2LTIuNkMxMDguNiw0Mi4xLDExOS4xLDUyLjYsMTE5LjEsNjUuNkwxMTkuMSw2NS42eiIvPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPGc+DQogICAgICAgICAgICAgIDxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iMTAyLjIsMTEwLjMgOTkuNiwxMDkuOCAxMDQuNyw3OSAxMDcuMyw3OS42IDEwMi4yLDExMC40ICAgICAgICIvPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgICAgPGc+DQogICAgICAgICAgICAgIDxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iODkuMSwxMTAuNCA4NCw3OS42IDg2LjYsNzkgOTEuNywxMDkuOCA4OS4xLDExMC4zICAgICAgICIvPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICAgIDwvZz4NCiAgICAgICAgICA8Zz4NCiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0xMDUuOCw4My40Yy0xLjEsMC0xLjUtMS0xLjktMS44Yy0wLjEtMC4zLTAuNC0xLTAuNi0xYy0wLjIsMC0wLjUsMC43LTAuNiwxYy0wLjMsMC44LTAuOCwxLjgtMS45LDEuOCAgICAgICBjLTEuMSwwLTEuNS0xLTEuOS0xLjhjLTAuMS0wLjMtMC40LTEtMC42LTFjLTAuMiwwLTAuNSwwLjctMC42LDFjLTAuMywwLjgtMC44LDEuOC0xLjksMS44Yy0xLjEsMC0xLjUtMS0xLjktMS44ICAgICAgIGMtMC4xLTAuMy0wLjQtMS0wLjYtMWMtMC4yLDAtMC41LDAuNy0wLjYsMWMtMC4zLDAuOC0wLjgsMS44LTEuOSwxLjhjLTEuMSwwLTEuNS0xLTEuOS0xLjhjLTAuMS0wLjMtMC40LTEtMC42LTEgICAgICAgYy0wLjIsMC0wLjUsMC43LTAuNiwxYy0wLjMsMC44LTAuOCwxLjgtMS45LDEuOFY4MmMwLjIsMCwwLjUtMC43LDAuNi0xYzAuMy0wLjgsMC44LTEuOCwxLjktMS44YzEuMSwwLDEuNSwxLDEuOSwxLjggICAgICAgYzAuMSwwLjMsMC40LDEsMC42LDFjMC4yLDAsMC41LTAuNywwLjYtMWMwLjMtMC44LDAuOC0xLjgsMS45LTEuOGMxLjEsMCwxLjUsMSwxLjksMS44YzAuMSwwLjMsMC40LDEsMC42LDEgICAgICAgYzAuMiwwLDAuNS0wLjcsMC42LTFjMC4zLTAuOCwwLjgtMS44LDEuOS0xLjhjMS4xLDAsMS41LDEsMS45LDEuOGMwLjEsMC4zLDAuNCwxLDAuNiwxYzAuMiwwLDAuNS0wLjcsMC42LTEgICAgICAgYzAuMy0wLjgsMC44LTEuOCwxLjktMS44YzEuMSwwLDEuNSwxLDEuOSwxLjhjMC4xLDAuMywwLjQsMSwwLjYsMVY4My40TDEwNS44LDgzLjR6Ii8+DQogICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgICAgIDxwYXRoIGZpbGw9IiMwRTMwM0YiIGQ9Ik0xMTAuOCwxMDguMXYxNS42YzAsMS4xLTAuOSwxLjktMS45LDEuOUg4Mi40Yy0xLjEsMC0xLjktMC45LTEuOS0xLjl2LTE1LjZIMTEwLjh6Ii8+DQogICAgICAgIDxnPg0KICAgICAgICAgIDxwYXRoIGZpbGw9IiMyQzU4NzEiIGQ9Ik0xMTEuNSwxMTEuMUg3OS45Yy0wLjgsMC0xLjUtMC43LTEuNS0xLjVjMC0wLjgsMC43LTEuNSwxLjUtMS41aDMxLjZjMC44LDAsMS41LDAuNywxLjUsMS41ICAgICAgQzExMywxMTAuNSwxMTIuMywxMTEuMSwxMTEuNSwxMTEuMUwxMTEuNSwxMTEuMXoiLz4NCiAgICAgICAgPC9nPg0KICAgICAgICA8Zz4NCiAgICAgICAgICA8cGF0aCBmaWxsPSIjMkM1ODcxIiBkPSJNMTExLjUsMTE2LjJINzkuOWMtMC44LDAtMS41LTAuNy0xLjUtMS41YzAtMC44LDAuNy0xLjUsMS41LTEuNWgzMS42YzAuOCwwLDEuNSwwLjcsMS41LDEuNSAgICAgIEMxMTMsMTE1LjUsMTEyLjMsMTE2LjIsMTExLjUsMTE2LjJMMTExLjUsMTE2LjJ6Ii8+DQogICAgICAgIDwvZz4NCiAgICAgICAgPGc+DQogICAgICAgICAgPHBhdGggZmlsbD0iIzJDNTg3MSIgZD0iTTExMS41LDEyMS4zSDc5LjljLTAuOCwwLTEuNS0wLjctMS41LTEuNWMwLTAuOCwwLjctMS41LDEuNS0xLjVoMzEuNmMwLjgsMCwxLjUsMC43LDEuNSwxLjUgICAgICBDMTEzLDEyMC42LDExMi4zLDEyMS4zLDExMS41LDEyMS4zTDExMS41LDEyMS4zeiIvPg0KICAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgICA8Zz4NCiAgICAgICAgPGc+DQogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTEyMS43LDEyMC42bC0xMi44LDAuNGMtNC41LDAuMS04LjEtMy41LTguMi03LjlsMC0yLjdjMC0wLjEsMC0wLjIsMC0wLjNsMTYuMi0wLjJMMTIxLjcsMTIwLjZ6Ii8+DQogICAgICAgIDwvZz4NCiAgICAgICAgPHBvbHlnb24gZmlsbD0iI0ZGRkZGRiIgcG9pbnRzPSIxMDguNiwxMTUgMTEzLjUsMTI5LjYgMTI0LDEyNi4xIDExNi45LDEwOS45ICAgICIvPg0KICAgICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTI0LDE2My41VjEyNmMtMC45LTAuMi0xLjgtMC4zLTIuOC0wLjNjLTkuMiwwLTE2LjYsOS44LTE2LjYsMjEuOWMwLDYuMywyLDEyLDUuMywxNkgxMjR6Ii8+DQogICAgICA8L2c+DQogICAgICA8Zz4NCiAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTcyLjEsMTQyLjljMCwyLjYsMi4xLDQuNyw0LjcsNC43bDMuNywwYzIuNiwwLDQuNi0yLjEsNC43LTQuN2wwLDBjMC0yLjYtMi4xLTQuNy00LjctNC43aC0zLjcgICAgIEM3NC4yLDEzOC4yLDcyLjEsMTQwLjMsNzIuMSwxNDIuOUw3Mi4xLDE0Mi45eiIvPg0KICAgICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNzIuMSwxMDcuNGMwLDIuNiwyLjEsNC42LDQuNyw0LjdsMy43LDBjMi42LDAsNC42LTIuMSw0LjctNC42bDAsMGMwLTIuNi0yLjEtNC43LTQuNy00LjdoLTMuNyAgICAgQzc0LjIsMTAyLjgsNzIuMSwxMDQuOSw3Mi4xLDEwNy40TDcyLjEsMTA3LjR6Ii8+DQogICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik03Mi4xLDEzMS4yYzAsMi42LDIuMSw0LjYsNC43LDQuNmgxMC43YzIuNiwwLDQuNy0yLjEsNC43LTQuNmwwLDBjMC0yLjYtMi4xLTQuNy00LjctNC43bC0xMC43LDAgICAgIEM3NC4yLDEyNi42LDcyLjEsMTI4LjcsNzIuMSwxMzEuMkw3Mi4xLDEzMS4yeiIvPg0KICAgICAgICA8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNzIuMSwxMTkuNmMwLDIuNiwyLjEsNC43LDQuNyw0LjdoOC42YzIuNiwwLDQuNy0yLjEsNC42LTQuNmwwLDBjMC0yLjYtMi4xLTQuNy00LjYtNC43aC04LjYgICAgIEM3NC4yLDExNC45LDcyLjEsMTE3LDcyLjEsMTE5LjZMNzIuMSwxMTkuNnoiLz4NCiAgICAgIDwvZz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPg==\";\nexport { SvgLightbulbColour as ReactComponent };","var _circle, _g, _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgCogsColour(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 194.3 194.5\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n fill: \"#178BC4\",\n cx: 97.1,\n cy: 97.2,\n r: 97.3\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#cogsColour_svg__SVGID_2_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9700\",\n d: \"M142.3 85.6h-4c-.3-1.4-.7-2.8-1.2-4.1l3.3-1.9c.8-.5 1.1-1.5.6-2.3l-3.4-5.8c-.5-.8-1.5-1.1-2.3-.6l-3.5 2c-.9-1.1-2-2.1-3-3l1.9-3.3c.5-.8.2-1.8-.6-2.3l-5.8-3.4c-.8-.5-1.8-.2-2.3.6l-2 3.5c-1.3-.5-2.7-.8-4.1-1v-3.9c0-.9-.7-1.7-1.7-1.7h-6.7c-.9 0-1.7.8-1.7 1.7v4c-1.4.3-2.8.7-4.1 1.2L99.8 62c-.5-.8-1.5-1.1-2.3-.6l-5.8 3.4c-.8.5-1.1 1.5-.6 2.3l2 3.5c-1.1.9-2.1 1.9-3 3L87 71.5c-.8-.5-1.8-.2-2.3.6l-3.4 5.8c-.5.8-.2 1.8.6 2.3l3.5 2c-.4 1.3-.8 2.7-1 4.1h-3.9c-.9 0-1.7.8-1.7 1.7v6.7c0 .9.7 1.7 1.7 1.7h4c.3 1.4.7 2.8 1.2 4.1l-3.3 1.9c-.8.5-1.1 1.5-.6 2.3l3.3 5.8c.5.8 1.5 1.1 2.3.6l3.5-2c.9 1.1 2 2.1 3 3l-1.9 3.3c-.5.8-.2 1.8.6 2.3l5.8 3.3c.8.5 1.8.2 2.3-.6l2-3.5c1.3.4 2.7.8 4.1 1v3.9c0 .9.8 1.7 1.7 1.7h6.7c.9 0 1.7-.8 1.7-1.7v-4c1.4-.3 2.8-.7 4.1-1.2l1.9 3.3c.5.8 1.5 1.1 2.3.6l5.8-3.4c.8-.5 1.1-1.5.6-2.3l-2-3.5c1.1-.9 2.1-1.9 3-3l3.3 1.9c.8.5 1.8.2 2.3-.6l3.3-5.8c.5-.8.2-1.8-.6-2.3l-3.5-2c.5-1.3.8-2.7 1-4.1h3.9c.9 0 1.7-.8 1.7-1.7V87c0-.7-.8-1.4-1.7-1.4zm-30.9 22.8c-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4 0 9.6-7.8 17.4-17.4 17.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA900\",\n d: \"M110.8 108.3C101.5 108 94 100.4 94 91s7.5-17.1 16.8-17.4V58.4h-3.1c-.9 0-1.7.8-1.7 1.7v4c-1.4.3-2.8.7-4.1 1.2L100 62c-.5-.8-1.5-1.1-2.3-.6l-5.8 3.4c-.8.5-1.1 1.5-.6 2.3l2 3.5c-1.1.9-2.1 1.9-3 3L87 71.5c-.8-.5-1.8-.2-2.3.6l-3.4 5.8c-.5.8-.2 1.8.6 2.3l3.5 2c-.4 1.3-.8 2.7-1 4.1h-3.9c-.9 0-1.7.8-1.7 1.7v6.7c0 .9.7 1.7 1.7 1.7h4c.3 1.4.7 2.8 1.2 4.1l-3.3 1.9c-.8.5-1.1 1.5-.6 2.3l3.3 5.8c.5.8 1.5 1.1 2.3.6l3.5-2c.9 1.1 2 2.1 3 3l-1.9 3.3c-.5.8-.2 1.8.6 2.3l5.8 3.3c.8.5 1.8.2 2.3-.6l2-3.5c1.3.4 2.7.8 4.1 1v3.9c0 .9.8 1.7 1.7 1.7h2.4l-.1-15.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9700\",\n d: \"M111.4 69.8c-11.7 0-21.2 9.5-21.2 21.2s9.5 21.2 21.2 21.2 21.2-9.5 21.2-21.2c-.1-11.7-9.5-21.2-21.2-21.2zm0 38.6c-9.6 0-17.4-7.8-17.4-17.4 0-9.6 7.8-17.4 17.4-17.4 9.6 0 17.4 7.8 17.4 17.4 0 9.6-7.8 17.4-17.4 17.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA900\",\n d: \"M111.4 69.8h-.6v3.8h.6c9.6 0 17.4 7.8 17.4 17.4 0 9.6-7.8 17.4-17.4 17.4h-.6v3.8h.6c11.7 0 21.2-9.5 21.2-21.2-.1-11.7-9.5-21.2-21.2-21.2z\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FFF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.6 120.5h22.9c4.9 0 8.9 4 8.9 8.9v3.3H94.7l-11.1-12.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.6 110.3l16.6 9.8c2.1 0 14.2.5 15.8 1.7l-11 11-31.1-.8 9.7-21.7zM119.2 43.8H92.6L57.8 78.6c-2.5 2.5-2.5 6.5 0 9s6.5 2.5 9 0l30.9-30.9h12.2c5.2 0 9.3-4.2 9.4-9.4v-3.1c-.1-.2-.1-.3-.1-.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.4 108.9V79.7l6.5-18.2L93 44.6 55.9 72l-23.5 42 11.1 10.2h29.9z\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M4 193l66.7-66.7c4.2-4.2 4.4-10.9.3-14.9L59.2 99.7c-4-4-10.7-3.9-14.9.3l-66.7 66.7L4 193z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EBF1FC\",\n d: \"M33.841 108.028l35.143 35.143-33.446 33.446L.395 141.474z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CDD8E8\",\n d: \"M48.134 122.389l20.86 20.86-33.447 33.445-20.86-20.86z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#474770\",\n d: \"M19.494 119.379l38.254 38.254-50.204 50.204-38.254-38.254z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2E2E4E\",\n d: \"M-11.571 188.658l50.204-50.204 19.091 19.092L7.52 207.75z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EBF1FC\",\n d: \"M58.3 148.9c-1 1-2.6 1-3.6 0s-1-2.6 0-3.6 2.6-1 3.6 0 1 2.6 0 3.6z\"\n })))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFA900\",\n d: \"M155.4 55.7h-1.9c-.4 0-.9-.3-1.1-.8l-.4-.9c-.2-.4-.1-1 .2-1.3l1.3-1.3c.3-.3.3-.8 0-1.1l-2.1-2.1c-.3-.3-.8-.3-1.1 0l-1.3 1.3c-.3.3-.9.4-1.3.2l-.9-.4c-.4-.1-.8-.6-.8-1.1v-1.9c0-.4-.4-.8-.8-.8h-2.9c-.4 0-.8.4-.8.8v1.9c0 .4-.3.9-.8 1.1l-.9.4c-.4.2-1 .1-1.3-.2l-1.3-1.3c-.3-.3-.8-.3-1.1 0l-2.1 2.1c-.3.3-.3.8 0 1.1l1.3 1.3c.3.3.4.9.2 1.3l-.4.9c-.1.4-.6.8-1.1.8h-1.9c-.4 0-.8.4-.8.8v2.9c0 .4.4.8.8.8h1.9c.4 0 .9.3 1.1.8l.4.9c.2.4.1 1-.2 1.3l-1.3 1.3c-.3.3-.3.8 0 1.1l2.1 2.1c.3.3.8.3 1.1 0l1.3-1.3c.3-.3.9-.4 1.3-.2l.9.4c.4.1.8.6.8 1.1v1.9c0 .4.4.8.8.8h2.9c.4 0 .8-.4.8-.8v-1.9c0-.4.3-.9.8-1.1l.9-.4c.4-.2 1-.1 1.3.2l1.3 1.3c.3.3.8.3 1.1 0l2.1-2.1c.3-.3.3-.8 0-1.1l-1.3-1.3c-.3-.3-.4-.9-.2-1.3l.4-.9c.1-.4.6-.8 1.1-.8h1.9c.4 0 .8-.4.8-.8v-2.9c0-.5-.4-.8-.8-.8zm-11.5 6.1c-2.1 0-3.9-1.7-3.9-3.9 0-2.1 1.7-3.9 3.9-3.9 2.1 0 3.9 1.7 3.9 3.9s-1.8 3.9-3.9 3.9z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FF9700\",\n d: \"M143.9 61.8c-2.2 0-3.9-1.7-3.9-3.9 0-2.1 1.7-3.9 3.9-3.9v-8.4h-1.5c-.4 0-.8.4-.8.8v1.9c0 .4-.3.9-.8 1.1l-.9.4c-.4.2-1 .1-1.3-.2l-1.3-1.3c-.3-.3-.8-.3-1.1 0l-2.1 2.1c-.3.3-.3.8 0 1.1l1.3 1.3c.3.3.4.9.2 1.3l-.4.9c-.1.4-.6.8-1.1.8h-1.9c-.4 0-.8.4-.8.8v2.9c0 .4.4.8.8.8h1.9c.4 0 .9.3 1.1.8l.4.9c.2.4.1 1-.2 1.3l-1.3 1.3c-.3.3-.3.8 0 1.1l2.1 2.1c.3.3.8.3 1.1 0l1.3-1.3c.3-.3.9-.4 1.3-.2l.9.4c.4.1.8.6.8 1.1v1.9c0 .4.4.8.8.8h1.5v-8.7z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTk0LjMgMTk0LjUiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDE5NC4zIDE5NC41Ij4NCiAgPGc+DQogICAgPGNpcmNsZSBmaWxsPSIjMTc4QkM0IiBjeD0iOTcuMSIgY3k9Ijk3LjIiIHI9Ijk3LjMiLz4NCiAgICA8Zz4NCiAgICAgIDxkZWZzPg0KICAgICAgICA8Y2lyY2xlIGN4PSI5Ny4xIiBjeT0iOTcuMiIgcj0iOTcuMyIvPg0KICAgICAgPC9kZWZzPg0KICAgICAgPGNsaXBQYXRoPg0KICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNTVkdJRF8zXyIgb3ZlcmZsb3c9InZpc2libGUiLz4NCiAgICAgIDwvY2xpcFBhdGg+DQogICAgICA8ZyBjbGlwLXBhdGg9InVybCgjU1ZHSURfMl8pIj4NCiAgICAgICAgPGc+DQogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGOTcwMCIgZD0iTTE0Mi4zLDg1LjZoLTRjLTAuMy0xLjQtMC43LTIuOC0xLjItNC4xbDMuMy0xLjljMC44LTAuNSwxLjEtMS41LDAuNi0yLjNsLTMuNC01LjggICAgICBjLTAuNS0wLjgtMS41LTEuMS0yLjMtMC42bC0zLjUsMmMtMC45LTEuMS0yLTIuMS0zLTNsMS45LTMuM2MwLjUtMC44LDAuMi0xLjgtMC42LTIuM2wtNS44LTMuNGMtMC44LTAuNS0xLjgtMC4yLTIuMywwLjYgICAgICBsLTIsMy41Yy0xLjMtMC41LTIuNy0wLjgtNC4xLTFsMC0zLjljMC0wLjktMC43LTEuNy0xLjctMS43bC02LjcsMGMtMC45LDAtMS43LDAuOC0xLjcsMS43bDAsNGMtMS40LDAuMy0yLjgsMC43LTQuMSwxLjIgICAgICBsLTEuOS0zLjNjLTAuNS0wLjgtMS41LTEuMS0yLjMtMC42bC01LjgsMy40Yy0wLjgsMC41LTEuMSwxLjUtMC42LDIuM2wyLDMuNWMtMS4xLDAuOS0yLjEsMS45LTMsM0w4Nyw3MS41ICAgICAgYy0wLjgtMC41LTEuOC0wLjItMi4zLDAuNmwtMy40LDUuOGMtMC41LDAuOC0wLjIsMS44LDAuNiwyLjNsMy41LDJjLTAuNCwxLjMtMC44LDIuNy0xLDQuMWgtMy45Yy0wLjksMC0xLjcsMC44LTEuNywxLjd2Ni43ICAgICAgYzAsMC45LDAuNywxLjcsMS43LDEuN2g0YzAuMywxLjQsMC43LDIuOCwxLjIsNC4xbC0zLjMsMS45Yy0wLjgsMC41LTEuMSwxLjUtMC42LDIuM2wzLjMsNS44YzAuNSwwLjgsMS41LDEuMSwyLjMsMC42bDMuNS0yICAgICAgYzAuOSwxLjEsMiwyLjEsMywzbC0xLjksMy4zYy0wLjUsMC44LTAuMiwxLjgsMC42LDIuM2w1LjgsMy4zYzAuOCwwLjUsMS44LDAuMiwyLjMtMC42bDItMy41YzEuMywwLjQsMi43LDAuOCw0LjEsMWwwLDMuOSAgICAgIGMwLDAuOSwwLjgsMS43LDEuNywxLjdsNi43LDBjMC45LDAsMS43LTAuOCwxLjctMS43di00YzEuNC0wLjMsMi44LTAuNyw0LjEtMS4ybDEuOSwzLjNjMC41LDAuOCwxLjUsMS4xLDIuMywwLjZsNS44LTMuNCAgICAgIGMwLjgtMC41LDEuMS0xLjUsMC42LTIuM2wtMi0zLjVjMS4xLTAuOSwyLjEtMS45LDMtM2wzLjMsMS45YzAuOCwwLjUsMS44LDAuMiwyLjMtMC42bDMuMy01LjhjMC41LTAuOCwwLjItMS44LTAuNi0yLjNsLTMuNS0yICAgICAgYzAuNS0xLjMsMC44LTIuNywxLTQuMWgzLjljMC45LDAsMS43LTAuOCwxLjctMS43bDAtNi43QzE0NCw4Ni4zLDE0My4yLDg1LjYsMTQyLjMsODUuNnogTTExMS40LDEwOC40ICAgICAgYy05LjYsMC0xNy40LTcuOC0xNy40LTE3LjRjMC05LjYsNy44LTE3LjQsMTcuNC0xNy40YzkuNiwwLDE3LjQsNy44LDE3LjQsMTcuNEMxMjguOCwxMDAuNiwxMjEsMTA4LjQsMTExLjQsMTA4LjR6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGQTkwMCIgZD0iTTExMC44LDEwOC4zQzEwMS41LDEwOCw5NCwxMDAuNCw5NCw5MWMwLTkuNCw3LjUtMTcuMSwxNi44LTE3LjRWNTguNGwtMy4xLDBjLTAuOSwwLTEuNywwLjgtMS43LDEuNyAgICAgIGwwLDRjLTEuNCwwLjMtMi44LDAuNy00LjEsMS4ybC0xLjktMy4zYy0wLjUtMC44LTEuNS0xLjEtMi4zLTAuNmwtNS44LDMuNGMtMC44LDAuNS0xLjEsMS41LTAuNiwyLjNsMiwzLjUgICAgICBjLTEuMSwwLjktMi4xLDEuOS0zLDNMODcsNzEuNWMtMC44LTAuNS0xLjgtMC4yLTIuMywwLjZsLTMuNCw1LjhjLTAuNSwwLjgtMC4yLDEuOCwwLjYsMi4zbDMuNSwyYy0wLjQsMS4zLTAuOCwyLjctMSw0LjFoLTMuOSAgICAgIGMtMC45LDAtMS43LDAuOC0xLjcsMS43djYuN2MwLDAuOSwwLjcsMS43LDEuNywxLjdoNGMwLjMsMS40LDAuNywyLjgsMS4yLDQuMWwtMy4zLDEuOWMtMC44LDAuNS0xLjEsMS41LTAuNiwyLjNsMy4zLDUuOCAgICAgIGMwLjUsMC44LDEuNSwxLjEsMi4zLDAuNmwzLjUtMmMwLjksMS4xLDIsMi4xLDMsM2wtMS45LDMuM2MtMC41LDAuOC0wLjIsMS44LDAuNiwyLjNsNS44LDMuM2MwLjgsMC41LDEuOCwwLjIsMi4zLTAuNmwyLTMuNSAgICAgIGMxLjMsMC40LDIuNywwLjgsNC4xLDFsMCwzLjljMCwwLjksMC44LDEuNywxLjcsMS43bDIuNCwwTDExMC44LDEwOC4zeiIvPg0KICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRjk3MDAiIGQ9Ik0xMTEuNCw2OS44Yy0xMS43LDAtMjEuMiw5LjUtMjEuMiwyMS4yYzAsMTEuNyw5LjUsMjEuMiwyMS4yLDIxLjJjMTEuNywwLDIxLjItOS41LDIxLjItMjEuMiAgICAgIEMxMzIuNSw3OS4zLDEyMy4xLDY5LjgsMTExLjQsNjkuOHogTTExMS40LDEwOC40Yy05LjYsMC0xNy40LTcuOC0xNy40LTE3LjRjMC05LjYsNy44LTE3LjQsMTcuNC0xNy40YzkuNiwwLDE3LjQsNy44LDE3LjQsMTcuNCAgICAgIEMxMjguOCwxMDAuNiwxMjEsMTA4LjQsMTExLjQsMTA4LjR6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGQTkwMCIgZD0iTTExMS40LDY5LjhjLTAuMiwwLTAuNCwwLTAuNiwwdjMuOGMwLjIsMCwwLjQsMCwwLjYsMGM5LjYsMCwxNy40LDcuOCwxNy40LDE3LjQgICAgICBjMCw5LjYtNy44LDE3LjQtMTcuNCwxNy40Yy0wLjIsMC0wLjQsMC0wLjYsMGwwLDMuOGMwLjIsMCwwLjQsMCwwLjYsMGMxMS43LDAsMjEuMi05LjUsMjEuMi0yMS4yICAgICAgQzEzMi41LDc5LjMsMTIzLjEsNjkuOCwxMTEuNCw2OS44eiIvPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnPg0KICAgICAgICAgIDxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik04My42LDEyMC41bDIyLjksMGM0LjksMCw4LjksNCw4LjksOC45djIuOWMwLDAuMSwwLDAuMiwwLDAuNGwtMjAuNywwTDgzLjYsMTIwLjV6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTczLjYsMTEwLjNsMTYuNiw5LjhjMi4xLDAsMTQuMiwwLjUsMTUuOCwxLjdsLTExLDExTDYzLjksMTMyTDczLjYsMTEwLjN6Ii8+DQogICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTExOS4yLDQzLjhIOTUuM2wwLDBsLTIuNywwTDU3LjgsNzguNmMtMi41LDIuNS0yLjUsNi41LDAsOWMyLjUsMi41LDYuNSwyLjUsOSwwbDMwLjktMzAuOWwxMi4yLDAgICAgICBjNS4yLDAsOS4zLTQuMiw5LjQtOS40bDAtMy4xQzExOS4yLDQ0LDExOS4yLDQzLjksMTE5LjIsNDMuOHoiLz4NCiAgICAgICAgICA8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjczLjQsMTA4LjkgNzMuNCw5NiA3My40LDc5LjcgNzkuOSw2MS41IDkzLDQ0LjYgNTUuOSw3MiAzMi40LDExNCA0My41LDEyNC4yIDczLjQsMTI0LjIgICAgICAgICAgICIvPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnPg0KICAgICAgICAgIDxnPg0KICAgICAgICAgICAgPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMTkzbDY2LjctNjYuN2M0LjItNC4yLDQuNC0xMC45LDAuMy0xNC45TDU5LjIsOTkuN2MtNC00LTEwLjctMy45LTE0LjksMC4zbC02Ni43LDY2LjdMNCwxOTN6Ii8+DQogICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgICAgIA0KICAgICAgICAgIDxyZWN0IHg9IjkuOCIgeT0iMTE4LjciIHRyYW5zZm9ybT0ibWF0cml4KDAuNzA3MSAwLjcwNzEgLTAuNzA3MSAwLjcwNzEgMTEwLjg0NDUgMTcuMTY1NikiIGZpbGw9IiNFQkYxRkMiIHdpZHRoPSI0OS43IiBoZWlnaHQ9IjQ3LjMiLz4NCiAgICAgICAgDQogICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMTI1LjkiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzA3MSAwLjcwNzEgLTAuNzA3MSAwLjcwNzEgMTE3Ljk5NTIgMTQuMjAyNykiIGZpbGw9IiNDREQ4RTgiIHdpZHRoPSIyOS41IiBoZWlnaHQ9IjQ3LjMiLz4NCiAgICAgICAgDQogICAgICAgICAgPHJlY3QgeD0iLTEzLjUiIHk9IjEyOC4xIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjcwNzEgMC43MDcxIC0wLjcwNzEgMC43MDcxIDExOS42MTkzIDM4LjM0NTEpIiBmaWxsPSIjNDc0NzcwIiB3aWR0aD0iNTQuMSIgaGVpZ2h0PSI3MSIvPg0KICAgICAgICANCiAgICAgICAgICA8cmVjdCB4PSItMTIuNCIgeT0iMTU5LjYiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzA3MSAtMC43MDcxIDAuNzA3MSAwLjcwNzEgLTExNS42NTY1IDY3LjAzNykiIGZpbGw9IiMyRTJFNEUiIHdpZHRoPSI3MSIgaGVpZ2h0PSIyNyIvPg0KICAgICAgICA8Zz4NCiAgICAgICAgICA8cGF0aCBmaWxsPSIjRUJGMUZDIiBkPSJNNTguMywxNDguOWMtMSwxLTIuNiwxLTMuNiwwYy0xLTEtMS0yLjYsMC0zLjZjMS0xLDIuNi0xLDMuNiwwQzU5LjMsMTQ2LjMsNTkuMywxNDcuOSw1OC4zLDE0OC45eiIvPg0KICAgICAgICA8L2c+DQogICAgICA8L2c+DQogICAgPC9nPg0KICAgIDxnPg0KICAgICAgPHBhdGggZmlsbD0iI0ZGQTkwMCIgZD0iTTE1NS40LDU1LjdoLTEuOWMtMC40LDAtMC45LTAuMy0xLjEtMC44bC0wLjQtMC45Yy0wLjItMC40LTAuMS0xLDAuMi0xLjNsMS4zLTEuM2MwLjMtMC4zLDAuMy0wLjgsMC0xLjEgICAgbC0yLjEtMi4xYy0wLjMtMC4zLTAuOC0wLjMtMS4xLDBsLTEuMywxLjNjLTAuMywwLjMtMC45LDAuNC0xLjMsMC4ybC0wLjktMC40Yy0wLjQtMC4xLTAuOC0wLjYtMC44LTEuMXYtMS45ICAgIGMwLTAuNC0wLjQtMC44LTAuOC0wLjhoLTIuOWMtMC40LDAtMC44LDAuNC0wLjgsMC44djEuOWMwLDAuNC0wLjMsMC45LTAuOCwxLjFsLTAuOSwwLjRjLTAuNCwwLjItMSwwLjEtMS4zLTAuMmwtMS4zLTEuMyAgICBjLTAuMy0wLjMtMC44LTAuMy0xLjEsMGwtMi4xLDIuMWMtMC4zLDAuMy0wLjMsMC44LDAsMS4xbDEuMywxLjNjMC4zLDAuMywwLjQsMC45LDAuMiwxLjNsLTAuNCwwLjljLTAuMSwwLjQtMC42LDAuOC0xLjEsMC44ICAgIGgtMS45Yy0wLjQsMC0wLjgsMC40LTAuOCwwLjh2Mi45YzAsMC40LDAuNCwwLjgsMC44LDAuOGgxLjljMC40LDAsMC45LDAuMywxLjEsMC44bDAuNCwwLjljMC4yLDAuNCwwLjEsMS0wLjIsMS4zbC0xLjMsMS4zICAgIGMtMC4zLDAuMy0wLjMsMC44LDAsMS4xbDIuMSwyLjFjMC4zLDAuMywwLjgsMC4zLDEuMSwwbDEuMy0xLjNjMC4zLTAuMywwLjktMC40LDEuMy0wLjJsMC45LDAuNGMwLjQsMC4xLDAuOCwwLjYsMC44LDEuMXYxLjkgICAgYzAsMC40LDAuNCwwLjgsMC44LDAuOGgyLjljMC40LDAsMC44LTAuNCwwLjgtMC44di0xLjljMC0wLjQsMC4zLTAuOSwwLjgtMS4xbDAuOS0wLjRjMC40LTAuMiwxLTAuMSwxLjMsMC4ybDEuMywxLjMgICAgYzAuMywwLjMsMC44LDAuMywxLjEsMGwyLjEtMi4xYzAuMy0wLjMsMC4zLTAuOCwwLTEuMWwtMS4zLTEuM2MtMC4zLTAuMy0wLjQtMC45LTAuMi0xLjNsMC40LTAuOWMwLjEtMC40LDAuNi0wLjgsMS4xLTAuOGgxLjkgICAgYzAuNCwwLDAuOC0wLjQsMC44LTAuOHYtMi45QzE1Ni4yLDU2LDE1NS44LDU1LjcsMTU1LjQsNTUuN3ogTTE0My45LDYxLjhjLTIuMSwwLTMuOS0xLjctMy45LTMuOWMwLTIuMSwxLjctMy45LDMuOS0zLjkgICAgYzIuMSwwLDMuOSwxLjcsMy45LDMuOUMxNDcuOCw2MC4xLDE0Niw2MS44LDE0My45LDYxLjh6Ii8+DQogICAgICA8cGF0aCBmaWxsPSIjRkY5NzAwIiBkPSJNMTQzLjksNjEuOEMxNDMuOSw2MS44LDE0My45LDYxLjgsMTQzLjksNjEuOGMtMi4yLDAtMy45LTEuNy0zLjktMy45YzAtMi4xLDEuNy0zLjksMy45LTMuOWMwLDAsMCwwLDAsMCAgICB2LTguNGgtMS41Yy0wLjQsMC0wLjgsMC40LTAuOCwwLjh2MS45YzAsMC40LTAuMywwLjktMC44LDEuMWwtMC45LDAuNGMtMC40LDAuMi0xLDAuMS0xLjMtMC4ybC0xLjMtMS4zYy0wLjMtMC4zLTAuOC0wLjMtMS4xLDAgICAgbC0yLjEsMi4xYy0wLjMsMC4zLTAuMywwLjgsMCwxLjFsMS4zLDEuM2MwLjMsMC4zLDAuNCwwLjksMC4yLDEuM2wtMC40LDAuOWMtMC4xLDAuNC0wLjYsMC44LTEuMSwwLjhoLTEuOSAgICBjLTAuNCwwLTAuOCwwLjQtMC44LDAuOHYyLjljMCwwLjQsMC40LDAuOCwwLjgsMC44aDEuOWMwLjQsMCwwLjksMC4zLDEuMSwwLjhsMC40LDAuOWMwLjIsMC40LDAuMSwxLTAuMiwxLjNsLTEuMywxLjMgICAgYy0wLjMsMC4zLTAuMywwLjgsMCwxLjFsMi4xLDIuMWMwLjMsMC4zLDAuOCwwLjMsMS4xLDBsMS4zLTEuM2MwLjMtMC4zLDAuOS0wLjQsMS4zLTAuMmwwLjksMC40YzAuNCwwLjEsMC44LDAuNiwwLjgsMS4xdjEuOSAgICBjMCwwLjQsMC40LDAuOCwwLjgsMC44aDEuNVY2MS44eiIvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+\";\nexport { SvgCogsColour as ReactComponent };","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport calendarCheck from \"../assets/svg/calendarCheck.svg\";\r\nimport globeCircled from \"../assets/svg/globeCircled.svg\";\r\nimport page from \"../assets/svg/page.svg\";\r\nimport speechBubbles from \"../assets/svg/speechBubbles2.svg\";\r\n\r\ntype DataType = {\r\n imgSrc: string;\r\n title: string;\r\n description: JSX.Element;\r\n};\r\n\r\nconst DATA: DataType[] = [\r\n {\r\n imgSrc: page,\r\n title: \"Print promotions\",\r\n description: (\r\n
      \r\n
    • \r\n

      \r\n Create eye-catching posters and place them in high-traffic areas\r\n

      \r\n
    • \r\n
    • \r\n

      Include a message in your staff newsletter

      \r\n
    • \r\n
    • \r\n

      Place a flyer in staff pigeonholes or with payslips

      \r\n
    • \r\n
    \r\n ),\r\n },\r\n {\r\n imgSrc: globeCircled,\r\n title: \"Online promotions\",\r\n description: (\r\n
      \r\n
    • \r\n

      Include a message on your intranet

      \r\n
    • \r\n
    • \r\n

      Email staff and set calendar reminders about events

      \r\n
    • \r\n
    • \r\n

      Use social media such as Facebook and Twitter to notify staff

      \r\n
    • \r\n
    \r\n ),\r\n },\r\n {\r\n imgSrc: speechBubbles,\r\n title: \"Talk\",\r\n description: (\r\n
      \r\n
    • \r\n

      Speak to employees at staff or team meetings

      \r\n
    • \r\n
    • \r\n

      \r\n Utilise enthusiastic managers of staff members to spread the word\r\n

      \r\n
    • \r\n
    • \r\n

      Share any successes or positive experiences from staff members

      \r\n
    • \r\n
    \r\n ),\r\n },\r\n {\r\n imgSrc: calendarCheck,\r\n title: \"Program launch event\",\r\n description: (\r\n
      \r\n
    • \r\n

      Get support from senior management

      \r\n
    • \r\n
    • \r\n

      Invite an interesting guest speaker

      \r\n
    • \r\n
    • \r\n

      Provide a healthy breakfast, lunch or morning tea

      \r\n
    • \r\n
    • \r\n

      \r\n Give away pedometers or other incentives to encourage attendance\r\n

      \r\n
    • \r\n
    \r\n ),\r\n },\r\n];\r\n\r\nexport const ProgramPromotion: React.FC<{}> = () => {\r\n return (\r\n
    \r\n

    Program promotion

    \r\n

    \r\n Once you have established what motivates your employees and identified\r\n suitable strategies, the final step is to effectively communicate to\r\n them. Promotion is essential in engaging your staff as it will allow you\r\n to:\r\n

    \r\n
      \r\n
    • Raise awareness
    • \r\n
    • Generate interest
    • \r\n
    • Motivate participation
    • \r\n
    • Keep participants interested and involved
    • \r\n
    \r\n

    \r\n We have listed a few program promotion suggestions you might find\r\n useful:\r\n

    \r\n \r\n {DATA.map(({ imgSrc, title, description }) => (\r\n \r\n \r\n {`${title}\r\n \r\n

    {title}

    \r\n {description}\r\n
    \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nconst StyledGroup = styled.div`\r\n background-color: ${(props) => props.theme.info};\r\n div {\r\n border: solid 1px white;\r\n }\r\n`;\r\n\r\nconst StyledIcon = styled.i`\r\n width: 100px;\r\n height: 100px;\r\n margin-bottom: 1.5rem;\r\n padding: 1rem;\r\n border-radius: 50%;\r\n background-color: white;\r\n`;\r\n","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgPage(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#010101\",\n d: \"M41.7 16.8L22.9 35.5v45.8h52.6V16.8H41.7zm-.3 6.3v12.1H29.2l12.2-12.1zM71 76.6H27.5V39.8H46V21.4h25v55.2z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#010101\",\n d: \"M34.1 56.2h30.3v4.6H34.1zM34.1 65.5h30.3v4.6H34.1zM52.6 35.2h11.8v4.6H52.6zM52.6 26h11.8v4.6H52.6zM34.1 47h30.3v4.6H34.1z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTQxLjcsMTYuOEwyMi45LDM1LjV2NDUuOGg1Mi42VjE2LjhINDEuN3ogTTQxLjQsMjMuMXYxMi4xSDI5LjJMNDEuNCwyMy4xeiBNNzEsNzYuNkgyNy41VjM5LjhINDZWMjEuNGgyNQ0KICAgIFY3Ni42eiI+PC9wYXRoPg0KICA8Zz4NCiAgICA8cmVjdCB4PSIzNC4xIiB5PSI1Ni4yIiBmaWxsPSIjMDEwMTAxIiB3aWR0aD0iMzAuMyIgaGVpZ2h0PSI0LjYiPjwvcmVjdD4NCiAgPC9nPg0KICA8Zz4NCiAgICA8cmVjdCB4PSIzNC4xIiB5PSI2NS41IiBmaWxsPSIjMDEwMTAxIiB3aWR0aD0iMzAuMyIgaGVpZ2h0PSI0LjYiPjwvcmVjdD4NCiAgPC9nPg0KICA8Zz4NCiAgICA8cmVjdCB4PSI1Mi42IiB5PSIzNS4yIiBmaWxsPSIjMDEwMTAxIiB3aWR0aD0iMTEuOCIgaGVpZ2h0PSI0LjYiPjwvcmVjdD4NCiAgPC9nPg0KICA8Zz4NCiAgICA8cmVjdCB4PSI1Mi42IiB5PSIyNiIgZmlsbD0iIzAxMDEwMSIgd2lkdGg9IjExLjgiIGhlaWdodD0iNC42Ij48L3JlY3Q+DQogIDwvZz4NCiAgPGc+DQogICAgPHJlY3QgeD0iMzQuMSIgeT0iNDciIGZpbGw9IiMwMTAxMDEiIHdpZHRoPSIzMC4zIiBoZWlnaHQ9IjQuNiI+PC9yZWN0Pg0KICA8L2c+DQo8L3N2Zz4=\";\nexport { SvgPage as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgGlobeCircled(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#010101\",\n d: \"M74.9 72.1l.4-.4c.3-.4.7-.8 1-1.1 0-.1.1-.1.1-.2.4-.5.7-.9 1.1-1.4l.2-.2.9-1.2c.1-.1.2-.3.3-.4.2-.4.5-.7.7-1.1.1-.2.2-.3.3-.5.2-.4.4-.7.6-1.1.1-.2.2-.3.2-.5l.6-1.2c.1-.1.1-.3.2-.4.5-1.1.9-2.2 1.2-3.4 0-.1.1-.3.1-.4.1-.4.3-.9.4-1.3 0-.2.1-.4.1-.6.1-.4.2-.8.2-1.2 0-.2.1-.4.1-.7.1-.4.1-.8.2-1.2 0-.2.1-.4.1-.7 0-.4.1-.8.1-1.3V51c0-.6.1-1.2.1-1.9 0-.6 0-1.2-.1-1.9v-.6c0-.4-.1-.8-.1-1.2 0-.2-.1-.5-.1-.7-.1-.4-.1-.8-.2-1.1 0-.2-.1-.5-.1-.7-.1-.4-.2-.8-.2-1.1 0-.2-.1-.4-.1-.6-.1-.4-.2-.8-.3-1.3 0-.2-.1-.3-.1-.5-.2-.6-.4-1.1-.6-1.7v-.1l-.6-1.5c-.1-.2-.1-.3-.2-.5-.2-.4-.3-.7-.5-1.1l-.3-.6c-.2-.3-.4-.7-.5-1l-.3-.6c-.2-.3-.4-.7-.6-1-.1-.2-.2-.3-.3-.5-.2-.4-.5-.7-.7-1.1-.1-.1-.2-.2-.3-.4-.3-.5-.7-.9-1.1-1.4l-.3-.3c-.3-.3-.6-.7-.9-1l-.5-.5c-.2-.3-.5-.5-.7-.7-.2-.2-.4-.4-.6-.5-.2-.2-.5-.4-.7-.6-.2-.2-.4-.4-.6-.5-.2-.2-.5-.4-.7-.6-.2-.1-.3-.3-.5-.4-.1 0-.1-.1-.2-.1-.4-.3-.8-.6-1.3-.9-.2-.1-.4-.3-.6-.4-.4-.2-.7-.5-1.1-.7-.2-.1-.5-.3-.7-.4-.3-.2-.6-.3-.9-.5-.3-.1-.6-.3-.8-.4-.2-.1-.4-.2-.7-.3-.3-.1-.6-.3-.8-.4-.1-.1-.3-.1-.4-.1-.5-.2-1.1-.4-1.7-.6-.2-.1-.4-.1-.6-.2-.5-.2-1-.3-1.5-.5-.2-.1-.4-.1-.6-.2-.4-.1-.8-.2-1.1-.3-.2 0-.4-.1-.5-.1-.3-.1-.6-.1-.9-.2-.3-.1-.7-.1-1-.2-.3 0-.5-.1-.8-.1-.4 0-.8-.1-1.2-.1h-.7c-.6 0-1.3-.1-1.9-.1-.6 0-1.3 0-1.9.1h-.7c-.4 0-.8.1-1.2.1-.3 0-.5.1-.8.1-.3 0-.7.1-1 .2-.3.1-.6.1-.9.2-.2 0-.4.1-.5.1-.4.1-.8.2-1.1.3-.2.1-.4.1-.6.2-.5.1-1 .3-1.5.5-.2.1-.4.1-.6.2-.7.2-1.3.5-1.9.7h-.1l-.6.3c-.3.2-.7.3-1 .5-.2.1-.4.2-.7.3-.4.2-.7.4-1.1.6-.2.1-.4.2-.5.3-.5.3-.9.6-1.4.9-.1 0-.1.1-.2.1-.5.3-1 .7-1.5 1-.1 0-.1.1-.2.1-.2.1-.3.3-.5.4-.2.2-.5.4-.7.6-.2.2-.4.4-.6.5-.2.2-.5.4-.7.6-.2.2-.4.4-.6.5l-.7.7-.5.5c-.3.3-.6.6-.8 1l-.3.3c-.4.4-.7.9-1.1 1.4-.1.1-.2.3-.3.4-.2.3-.5.7-.7 1-.1.2-.2.3-.3.5-.2.3-.4.6-.6 1l-.3.6c-.2.3-.4.7-.5 1l-.3.6c-.2.4-.3.7-.5 1.1-.1.2-.2.3-.2.5l-.6 1.5s0 .1-.1.1c-.2.6-.4 1.1-.6 1.7 0 .2-.1.3-.1.5l-.3 1.2c-.1.2-.1.4-.1.6-.1.4-.2.8-.2 1.1 0 .2-.1.5-.1.7-.1.4-.1.8-.2 1.1 0 .2-.1.5-.1.7 0 .4-.1.8-.1 1.2v.6c0 .6-.1 1.2-.1 1.9 0 .6 0 1.2.1 1.9v.6c0 .4.1.8.1 1.3 0 .2.1.4.1.7.1.4.1.8.2 1.2 0 .2.1.4.1.7.1.4.2.8.2 1.2 0 .2.1.4.1.6.1.4.2.9.4 1.3 0 .1.1.3.1.4.4 1.2.8 2.3 1.2 3.4.1.1.1.3.2.4l.6 1.2c.1.2.2.3.2.5.2.4.4.7.6 1.1.1.2.2.3.3.5.2.4.4.7.7 1.1.1.1.2.3.3.4.3.4.5.8.8 1.2.1.1.1.2.2.2.4.5.7.9 1.1 1.4 0 .1.1.1.2.2.3.4.6.8 1 1.1l.4.4.8.8.5.5.7.7c.2.2.4.3.6.5.2.2.5.4.7.6.2.1.3.2.4.4.1 0 .1.1.2.1.5.4 1 .7 1.5 1.1 0 0 .1 0 .1.1l1.5.9c.2.1.3.2.5.3.4.2.7.4 1.1.6l.6.3c.4.2.7.3 1.1.5.2.1.3.2.5.2.5.2 1 .4 1.6.6.1 0 .1 0 .2.1 1 .4 2 .7 3 .9.4.1.7.2 1.1.2.2 0 .4.1.6.1.3.1.6.1.9.2.3.1.7.1 1 .2.3 0 .5.1.8.1.4 0 .8.1 1.2.1h.6c.6 0 1.3.1 1.9.1s1.3 0 1.9-.1h.7c.4 0 .8-.1 1.2-.1.3 0 .5-.1.8-.1.3 0 .7-.1 1-.2.3-.1.6-.1.9-.2.2 0 .4-.1.6-.1.4-.1.7-.2 1.1-.2.2 0 .4-.1.5-.2.5-.1 1-.3 1.5-.5.2-.1.4-.1.6-.2.6-.2 1.2-.4 1.7-.7.1 0 .2-.1.3-.1.3-.1.5-.2.8-.4.2-.1.5-.2.7-.3.3-.1.5-.3.8-.4.3-.2.6-.3.9-.5.2-.1.5-.3.7-.4.4-.2.8-.5 1.2-.7.1-.1.3-.2.4-.3.5-.3.9-.7 1.4-1 .1 0 .1-.1.2-.1.2-.1.3-.2.4-.4.2-.2.5-.4.7-.6.2-.2.4-.3.6-.5.3-.2.5-.5.8-.7l.5-.5s.3-.2.6-.5zm-.1-7.5s0 .1 0 0c-.8 1.2-1.5 2.2-2.4 3.2l-.1.1c-.6.7-1.3 1.4-2 2.1-.3.2-.5.5-.8.7-.3.2-.5.4-.8.6-.3.2-.6.5-.9.7-.3.2-.5.4-.8.6-.3.2-.6.4-1 .6-.2.2-.5.3-.8.5-.4.2-.7.4-1.1.6-.4.2-.8.4-1.3.7h-.1-.1l1.2-1.8c1.3-2.2 2.5-4.8 3.4-7.6 3.6-1.2 6.7-2.7 9.3-4.5-.4 1.3-1 2.4-1.7 3.5zM39.1 75c-.2-.1-.3-.2-.5-.3-.3-.1-.5-.3-.8-.4-.5-.3-1-.5-1.4-.8-.2-.1-.3-.2-.5-.3-.4-.3-.9-.6-1.3-.9-.2-.1-.3-.2-.5-.3-.4-.3-.8-.7-1.3-1-.1-.1-.3-.2-.4-.3-.4-.3-.7-.7-1.1-1-.6-.6-1.2-1.2-1.7-1.8l-.2-.2c-.8-.9-1.5-1.9-2.2-2.9-.1-.1-.1-.2-.2-.3-.3-.5-.6-.9-.8-1.4 0-.1-.1-.1-.1-.2-.3-.5-.6-1.1-.8-1.6 0 0 0-.1-.1-.1 2.6 1.8 5.7 3.4 9.3 4.5.9 2.8 2.1 5.3 3.4 7.6.5.6.9 1.2 1.2 1.7.1 0 0 0 0 0zM25.4 37.4c.3-.5.5-1.1.8-1.6 0-.1.1-.1.1-.2.3-.5.5-.9.8-1.4.1-.1.1-.2.2-.3.3-.5.7-1 1-1.5.4-.5.7-1 1.1-1.4l.2-.2c.5-.6 1.1-1.2 1.7-1.7.4-.4.7-.7 1.1-1 .1-.1.3-.2.4-.3.4-.4.8-.7 1.3-1 .1-.1.3-.2.4-.3.4-.3.9-.6 1.3-.9.2-.1.3-.2.5-.3.5-.3.9-.6 1.4-.8.3-.1.5-.3.8-.4.2-.1.3-.2.5-.3l-1.2 1.8c-1.3 2.2-2.5 4.8-3.4 7.6-3.6 1.2-6.7 2.7-9.3 4.5.2-.2.2-.3.3-.3zm37.5-13.7c.1 0 .1 0 0 0 .5.2.9.5 1.3.7.4.2.8.4 1.1.6.3.2.5.3.8.5.3.2.7.4 1 .7.3.2.5.4.8.5.3.2.6.5.9.7.3.2.5.4.7.6.3.3.6.5.9.8.7.6 1.3 1.3 1.9 2l.1.1c.8 1 1.6 2 2.3 3.1 0 0 0 .1.1.1.7 1.1 1.3 2.2 1.9 3.4v.1c-2.6-1.8-5.7-3.4-9.3-4.5-.9-2.8-2.1-5.3-3.4-7.6l-1.2-1.8h.1zM69.8 47c-.1-3-.5-5.9-1-8.6 5.2 2.1 9 5.2 10.1 8.6h-9.1zM64 38.1c.6 2.8 1 5.7 1.1 8.9H53.3V35.2c3.7.2 7.2.7 10.3 1.4.2.5.3 1 .4 1.5zm-10.7-7.6v-9.1c2.2.7 4.2 2.5 5.9 4.9 1 1.5 2 3.2 2.8 5.2-2.7-.5-5.6-.9-8.7-1zm-4.7 0c-3 .1-5.9.5-8.6 1 .8-2 1.7-3.7 2.7-5.2 1.7-2.5 3.7-4.2 5.9-4.9v9.1zm0 4.7V47H36.9c.1-3.1.5-6.1 1.1-8.9.1-.5.2-1 .3-1.4 3.2-.8 6.7-1.3 10.3-1.5zM32.2 47h-9.1c1.2-3.5 4.9-6.5 10.1-8.6-.5 2.7-.9 5.6-1 8.6zm0 4.7c.1 3 .5 5.9 1 8.6-5.2-2.1-8.9-5.2-10.1-8.6h9.1zm5.8 8.9c-.6-2.8-1-5.7-1.1-8.9h11.7v11.7c-3.7-.2-7.1-.7-10.3-1.4-.1-.5-.2-1-.3-1.4zm10.6 7.5v9.1c-2.2-.7-4.2-2.5-5.9-4.9-1-1.5-1.9-3.2-2.7-5.2 2.7.6 5.6.9 8.6 1zm4.7 0c3-.1 5.9-.5 8.6-1-.8 2-1.7 3.7-2.8 5.2-1.7 2.5-3.7 4.2-5.9 4.9v-9.1zm0-4.7V51.7H65c-.1 3.1-.5 6.1-1.1 8.9-.1.5-.2 1-.3 1.4-3.1.8-6.6 1.3-10.3 1.4zm16.5-11.7h9.1c-1.2 3.5-4.9 6.5-10.1 8.6.5-2.7.9-5.6 1-8.6z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCjxwYXRoIGZpbGw9IiMwMTAxMDEiIGQ9Ik03NC45LDcyLjFjMC4xLTAuMSwwLjMtMC4zLDAuNC0wLjRjMC4zLTAuNCwwLjctMC44LDEtMS4xYzAtMC4xLDAuMS0wLjEsMC4xLTAuMmMwLjQtMC41LDAuNy0wLjksMS4xLTEuNA0KCWMwLjEtMC4xLDAuMS0wLjEsMC4yLTAuMmMwLjMtMC40LDAuNi0wLjgsMC45LTEuMmMwLjEtMC4xLDAuMi0wLjMsMC4zLTAuNGMwLjItMC40LDAuNS0wLjcsMC43LTEuMWMwLjEtMC4yLDAuMi0wLjMsMC4zLTAuNQ0KCWMwLjItMC40LDAuNC0wLjcsMC42LTEuMWMwLjEtMC4yLDAuMi0wLjMsMC4yLTAuNWMwLjItMC40LDAuNC0wLjgsMC42LTEuMmMwLjEtMC4xLDAuMS0wLjMsMC4yLTAuNGMwLjUtMS4xLDAuOS0yLjIsMS4yLTMuNA0KCWMwLTAuMSwwLjEtMC4zLDAuMS0wLjRjMC4xLTAuNCwwLjMtMC45LDAuNC0xLjNjMC0wLjIsMC4xLTAuNCwwLjEtMC42YzAuMS0wLjQsMC4yLTAuOCwwLjItMS4yYzAtMC4yLDAuMS0wLjQsMC4xLTAuNw0KCWMwLjEtMC40LDAuMS0wLjgsMC4yLTEuMmMwLTAuMiwwLjEtMC40LDAuMS0wLjdjMC0wLjQsMC4xLTAuOCwwLjEtMS4zYzAtMC4yLDAtMC40LDAtMC42YzAtMC42LDAuMS0xLjIsMC4xLTEuOQ0KCWMwLTAuNiwwLTEuMi0wLjEtMS45YzAtMC4yLDAtMC40LDAtMC42YzAtMC40LTAuMS0wLjgtMC4xLTEuMmMwLTAuMi0wLjEtMC41LTAuMS0wLjdjLTAuMS0wLjQtMC4xLTAuOC0wLjItMS4xDQoJYzAtMC4yLTAuMS0wLjUtMC4xLTAuN2MtMC4xLTAuNC0wLjItMC44LTAuMi0xLjFjMC0wLjItMC4xLTAuNC0wLjEtMC42Yy0wLjEtMC40LTAuMi0wLjgtMC4zLTEuM2MwLTAuMi0wLjEtMC4zLTAuMS0wLjUNCgljLTAuMi0wLjYtMC40LTEuMS0wLjYtMS43YzAsMCwwLTAuMSwwLTAuMWMtMC4yLTAuNS0wLjQtMS0wLjYtMS41Yy0wLjEtMC4yLTAuMS0wLjMtMC4yLTAuNWMtMC4yLTAuNC0wLjMtMC43LTAuNS0xLjENCgljLTAuMS0wLjItMC4yLTAuNC0wLjMtMC42Yy0wLjItMC4zLTAuNC0wLjctMC41LTFjLTAuMS0wLjItMC4yLTAuNC0wLjMtMC42Yy0wLjItMC4zLTAuNC0wLjctMC42LTFjLTAuMS0wLjItMC4yLTAuMy0wLjMtMC41DQoJYy0wLjItMC40LTAuNS0wLjctMC43LTEuMWMtMC4xLTAuMS0wLjItMC4yLTAuMy0wLjRjLTAuMy0wLjUtMC43LTAuOS0xLjEtMS40Yy0wLjEtMC4xLTAuMi0wLjItMC4zLTAuM2MtMC4zLTAuMy0wLjYtMC43LTAuOS0xDQoJYy0wLjItMC4yLTAuMy0wLjMtMC41LTAuNWMtMC4yLTAuMy0wLjUtMC41LTAuNy0wLjdjLTAuMi0wLjItMC40LTAuNC0wLjYtMC41Yy0wLjItMC4yLTAuNS0wLjQtMC43LTAuNmMtMC4yLTAuMi0wLjQtMC40LTAuNi0wLjUNCgljLTAuMi0wLjItMC41LTAuNC0wLjctMC42Yy0wLjItMC4xLTAuMy0wLjMtMC41LTAuNGMtMC4xLDAtMC4xLTAuMS0wLjItMC4xYy0wLjQtMC4zLTAuOC0wLjYtMS4zLTAuOWMtMC4yLTAuMS0wLjQtMC4zLTAuNi0wLjQNCgljLTAuNC0wLjItMC43LTAuNS0xLjEtMC43Yy0wLjItMC4xLTAuNS0wLjMtMC43LTAuNGMtMC4zLTAuMi0wLjYtMC4zLTAuOS0wLjVjLTAuMy0wLjEtMC42LTAuMy0wLjgtMC40Yy0wLjItMC4xLTAuNC0wLjItMC43LTAuMw0KCWMtMC4zLTAuMS0wLjYtMC4zLTAuOC0wLjRjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xYy0wLjUtMC4yLTEuMS0wLjQtMS43LTAuNmMtMC4yLTAuMS0wLjQtMC4xLTAuNi0wLjJjLTAuNS0wLjItMS0wLjMtMS41LTAuNQ0KCWMtMC4yLTAuMS0wLjQtMC4xLTAuNi0wLjJjLTAuNC0wLjEtMC44LTAuMi0xLjEtMC4zYy0wLjIsMC0wLjQtMC4xLTAuNS0wLjFjLTAuMy0wLjEtMC42LTAuMS0wLjktMC4yYy0wLjMtMC4xLTAuNy0wLjEtMS0wLjINCgljLTAuMywwLTAuNS0wLjEtMC44LTAuMWMtMC40LDAtMC44LTAuMS0xLjItMC4xYy0wLjIsMC0wLjQsMC0wLjcsMGMtMC42LDAtMS4zLTAuMS0xLjktMC4xYy0wLjYsMC0xLjMsMC0xLjksMC4xDQoJYy0wLjIsMC0wLjQsMC0wLjcsMGMtMC40LDAtMC44LDAuMS0xLjIsMC4xYy0wLjMsMC0wLjUsMC4xLTAuOCwwLjFjLTAuMywwLTAuNywwLjEtMSwwLjJjLTAuMywwLjEtMC42LDAuMS0wLjksMC4yDQoJYy0wLjIsMC0wLjQsMC4xLTAuNSwwLjFjLTAuNCwwLjEtMC44LDAuMi0xLjEsMC4zYy0wLjIsMC4xLTAuNCwwLjEtMC42LDAuMmMtMC41LDAuMS0xLDAuMy0xLjUsMC41Yy0wLjIsMC4xLTAuNCwwLjEtMC42LDAuMg0KCWMtMC43LDAuMi0xLjMsMC41LTEuOSwwLjdjMCwwLTAuMSwwLTAuMSwwYy0wLjIsMC4xLTAuNCwwLjItMC42LDAuM2MtMC4zLDAuMi0wLjcsMC4zLTEsMC41Yy0wLjIsMC4xLTAuNCwwLjItMC43LDAuMw0KCWMtMC40LDAuMi0wLjcsMC40LTEuMSwwLjZjLTAuMiwwLjEtMC40LDAuMi0wLjUsMC4zYy0wLjUsMC4zLTAuOSwwLjYtMS40LDAuOWMtMC4xLDAtMC4xLDAuMS0wLjIsMC4xYy0wLjUsMC4zLTEsMC43LTEuNSwxDQoJYy0wLjEsMC0wLjEsMC4xLTAuMiwwLjFjLTAuMiwwLjEtMC4zLDAuMy0wLjUsMC40Yy0wLjIsMC4yLTAuNSwwLjQtMC43LDAuNmMtMC4yLDAuMi0wLjQsMC40LTAuNiwwLjVjLTAuMiwwLjItMC41LDAuNC0wLjcsMC42DQoJYy0wLjIsMC4yLTAuNCwwLjQtMC42LDAuNWMtMC4yLDAuMi0wLjUsMC41LTAuNywwLjdjLTAuMiwwLjItMC4zLDAuMy0wLjUsMC41Yy0wLjMsMC4zLTAuNiwwLjYtMC44LDFjLTAuMSwwLjEtMC4yLDAuMi0wLjMsMC4zDQoJYy0wLjQsMC40LTAuNywwLjktMS4xLDEuNGMtMC4xLDAuMS0wLjIsMC4zLTAuMywwLjRjLTAuMiwwLjMtMC41LDAuNy0wLjcsMWMtMC4xLDAuMi0wLjIsMC4zLTAuMywwLjVjLTAuMiwwLjMtMC40LDAuNi0wLjYsMQ0KCWMtMC4xLDAuMi0wLjIsMC40LTAuMywwLjZjLTAuMiwwLjMtMC40LDAuNy0wLjUsMWMtMC4xLDAuMi0wLjIsMC40LTAuMywwLjZjLTAuMiwwLjQtMC4zLDAuNy0wLjUsMS4xYy0wLjEsMC4yLTAuMiwwLjMtMC4yLDAuNQ0KCWMtMC4yLDAuNS0wLjQsMS0wLjYsMS41YzAsMCwwLDAuMS0wLjEsMC4xYy0wLjIsMC42LTAuNCwxLjEtMC42LDEuN2MwLDAuMi0wLjEsMC4zLTAuMSwwLjVjLTAuMSwwLjQtMC4yLDAuOC0wLjMsMS4yDQoJYy0wLjEsMC4yLTAuMSwwLjQtMC4xLDAuNmMtMC4xLDAuNC0wLjIsMC44LTAuMiwxLjFjMCwwLjItMC4xLDAuNS0wLjEsMC43Yy0wLjEsMC40LTAuMSwwLjgtMC4yLDEuMWMwLDAuMi0wLjEsMC41LTAuMSwwLjcNCgljMCwwLjQtMC4xLDAuOC0wLjEsMS4yYzAsMC4yLDAsMC40LDAsMC42YzAsMC42LTAuMSwxLjItMC4xLDEuOWMwLDAuNiwwLDEuMiwwLjEsMS45YzAsMC4yLDAsMC40LDAsMC42YzAsMC40LDAuMSwwLjgsMC4xLDEuMw0KCWMwLDAuMiwwLjEsMC40LDAuMSwwLjdjMC4xLDAuNCwwLjEsMC44LDAuMiwxLjJjMCwwLjIsMC4xLDAuNCwwLjEsMC43YzAuMSwwLjQsMC4yLDAuOCwwLjIsMS4yYzAsMC4yLDAuMSwwLjQsMC4xLDAuNg0KCWMwLjEsMC40LDAuMiwwLjksMC40LDEuM2MwLDAuMSwwLjEsMC4zLDAuMSwwLjRjMC40LDEuMiwwLjgsMi4zLDEuMiwzLjRjMC4xLDAuMSwwLjEsMC4zLDAuMiwwLjRjMC4yLDAuNCwwLjQsMC44LDAuNiwxLjINCgljMC4xLDAuMiwwLjIsMC4zLDAuMiwwLjVjMC4yLDAuNCwwLjQsMC43LDAuNiwxLjFjMC4xLDAuMiwwLjIsMC4zLDAuMywwLjVjMC4yLDAuNCwwLjQsMC43LDAuNywxLjFjMC4xLDAuMSwwLjIsMC4zLDAuMywwLjQNCgljMC4zLDAuNCwwLjUsMC44LDAuOCwxLjJjMC4xLDAuMSwwLjEsMC4yLDAuMiwwLjJjMC40LDAuNSwwLjcsMC45LDEuMSwxLjRjMCwwLjEsMC4xLDAuMSwwLjIsMC4yYzAuMywwLjQsMC42LDAuOCwxLDEuMQ0KCWMwLjEsMC4xLDAuMywwLjMsMC40LDAuNGMwLjMsMC4zLDAuNSwwLjUsMC44LDAuOGMwLjIsMC4yLDAuMywwLjMsMC41LDAuNWMwLjIsMC4yLDAuNSwwLjUsMC43LDAuN2MwLjIsMC4yLDAuNCwwLjMsMC42LDAuNQ0KCWMwLjIsMC4yLDAuNSwwLjQsMC43LDAuNmMwLjIsMC4xLDAuMywwLjIsMC40LDAuNGMwLjEsMCwwLjEsMC4xLDAuMiwwLjFjMC41LDAuNCwxLDAuNywxLjUsMS4xYzAsMCwwLjEsMCwwLjEsMC4xDQoJYzAuNSwwLjMsMSwwLjYsMS41LDAuOWMwLjIsMC4xLDAuMywwLjIsMC41LDAuM2MwLjQsMC4yLDAuNywwLjQsMS4xLDAuNmMwLjIsMC4xLDAuNCwwLjIsMC42LDAuM2MwLjQsMC4yLDAuNywwLjMsMS4xLDAuNQ0KCWMwLjIsMC4xLDAuMywwLjIsMC41LDAuMmMwLjUsMC4yLDEsMC40LDEuNiwwLjZjMC4xLDAsMC4xLDAsMC4yLDAuMWMxLDAuNCwyLDAuNywzLDAuOWMwLjQsMC4xLDAuNywwLjIsMS4xLDAuMg0KCWMwLjIsMCwwLjQsMC4xLDAuNiwwLjFjMC4zLDAuMSwwLjYsMC4xLDAuOSwwLjJjMC4zLDAuMSwwLjcsMC4xLDEsMC4yYzAuMywwLDAuNSwwLjEsMC44LDAuMWMwLjQsMCwwLjgsMC4xLDEuMiwwLjENCgljMC4yLDAsMC40LDAsMC42LDBjMC42LDAsMS4zLDAuMSwxLjksMC4xczEuMywwLDEuOS0wLjFjMC4yLDAsMC40LDAsMC43LDBjMC40LDAsMC44LTAuMSwxLjItMC4xYzAuMywwLDAuNS0wLjEsMC44LTAuMQ0KCWMwLjMsMCwwLjctMC4xLDEtMC4yYzAuMy0wLjEsMC42LTAuMSwwLjktMC4yYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjQtMC4xLDAuNy0wLjIsMS4xLTAuMmMwLjIsMCwwLjQtMC4xLDAuNS0wLjINCgljMC41LTAuMSwxLTAuMywxLjUtMC41YzAuMi0wLjEsMC40LTAuMSwwLjYtMC4yYzAuNi0wLjIsMS4yLTAuNCwxLjctMC43YzAuMSwwLDAuMi0wLjEsMC4zLTAuMWMwLjMtMC4xLDAuNS0wLjIsMC44LTAuNA0KCWMwLjItMC4xLDAuNS0wLjIsMC43LTAuM2MwLjMtMC4xLDAuNS0wLjMsMC44LTAuNGMwLjMtMC4yLDAuNi0wLjMsMC45LTAuNWMwLjItMC4xLDAuNS0wLjMsMC43LTAuNGMwLjQtMC4yLDAuOC0wLjUsMS4yLTAuNw0KCWMwLjEtMC4xLDAuMy0wLjIsMC40LTAuM2MwLjUtMC4zLDAuOS0wLjcsMS40LTFjMC4xLDAsMC4xLTAuMSwwLjItMC4xYzAuMi0wLjEsMC4zLTAuMiwwLjQtMC40YzAuMi0wLjIsMC41LTAuNCwwLjctMC42DQoJYzAuMi0wLjIsMC40LTAuMywwLjYtMC41YzAuMy0wLjIsMC41LTAuNSwwLjgtMC43YzAuMi0wLjIsMC4zLTAuMywwLjUtMC41Qzc0LjMsNzIuNiw3NC42LDcyLjQsNzQuOSw3Mi4xeiBNNzQuOCw2NC42DQoJQzc0LjgsNjQuNiw3NC44LDY0LjcsNzQuOCw2NC42Yy0wLjgsMS4yLTEuNSwyLjItMi40LDMuMmMwLDAtMC4xLDAuMS0wLjEsMC4xYy0wLjYsMC43LTEuMywxLjQtMiwyLjFjLTAuMywwLjItMC41LDAuNS0wLjgsMC43DQoJYy0wLjMsMC4yLTAuNSwwLjQtMC44LDAuNmMtMC4zLDAuMi0wLjYsMC41LTAuOSwwLjdjLTAuMywwLjItMC41LDAuNC0wLjgsMC42Yy0wLjMsMC4yLTAuNiwwLjQtMSwwLjZjLTAuMiwwLjItMC41LDAuMy0wLjgsMC41DQoJYy0wLjQsMC4yLTAuNywwLjQtMS4xLDAuNmMtMC40LDAuMi0wLjgsMC40LTEuMywwLjdjMCwwLDAsMC0wLjEsMGMwLDAtMC4xLDAtMC4xLDBjMC40LTAuNiwwLjgtMS4yLDEuMi0xLjgNCgljMS4zLTIuMiwyLjUtNC44LDMuNC03LjZjMy42LTEuMiw2LjctMi43LDkuMy00LjVjMCwwLDAsMCwwLDBDNzYuMSw2Mi40LDc1LjUsNjMuNSw3NC44LDY0LjZ6IE0zOS4xLDc1Yy0wLjItMC4xLTAuMy0wLjItMC41LTAuMw0KCWMtMC4zLTAuMS0wLjUtMC4zLTAuOC0wLjRjLTAuNS0wLjMtMS0wLjUtMS40LTAuOGMtMC4yLTAuMS0wLjMtMC4yLTAuNS0wLjNjLTAuNC0wLjMtMC45LTAuNi0xLjMtMC45Yy0wLjItMC4xLTAuMy0wLjItMC41LTAuMw0KCWMtMC40LTAuMy0wLjgtMC43LTEuMy0xYy0wLjEtMC4xLTAuMy0wLjItMC40LTAuM2MtMC40LTAuMy0wLjctMC43LTEuMS0xYy0wLjYtMC42LTEuMi0xLjItMS43LTEuOGMtMC4xLTAuMS0wLjEtMC4xLTAuMi0wLjINCgljLTAuOC0wLjktMS41LTEuOS0yLjItMi45Yy0wLjEtMC4xLTAuMS0wLjItMC4yLTAuM2MtMC4zLTAuNS0wLjYtMC45LTAuOC0xLjRjMC0wLjEtMC4xLTAuMS0wLjEtMC4yYy0wLjMtMC41LTAuNi0xLjEtMC44LTEuNg0KCWMwLDAsMC0wLjEtMC4xLTAuMWMyLjYsMS44LDUuNywzLjQsOS4zLDQuNWMwLjksMi44LDIuMSw1LjMsMy40LDcuNkMzOC40LDczLjksMzguOCw3NC41LDM5LjEsNzVDMzkuMiw3NSwzOS4xLDc1LDM5LjEsNzV6DQoJIE0yNS40LDM3LjRjMC4zLTAuNSwwLjUtMS4xLDAuOC0xLjZjMC0wLjEsMC4xLTAuMSwwLjEtMC4yYzAuMy0wLjUsMC41LTAuOSwwLjgtMS40YzAuMS0wLjEsMC4xLTAuMiwwLjItMC4zYzAuMy0wLjUsMC43LTEsMS0xLjUNCgljMCwwLDAsMCwwLDBjMC40LTAuNSwwLjctMSwxLjEtMS40YzAuMS0wLjEsMC4xLTAuMSwwLjItMC4yYzAuNS0wLjYsMS4xLTEuMiwxLjctMS43YzAuNC0wLjQsMC43LTAuNywxLjEtMQ0KCWMwLjEtMC4xLDAuMy0wLjIsMC40LTAuM2MwLjQtMC40LDAuOC0wLjcsMS4zLTFjMC4xLTAuMSwwLjMtMC4yLDAuNC0wLjNjMC40LTAuMywwLjktMC42LDEuMy0wLjljMC4yLTAuMSwwLjMtMC4yLDAuNS0wLjMNCgljMC41LTAuMywwLjktMC42LDEuNC0wLjhjMC4zLTAuMSwwLjUtMC4zLDAuOC0wLjRjMC4yLTAuMSwwLjMtMC4yLDAuNS0wLjNjMCwwLDAsMCwwLDBjLTAuNCwwLjYtMC44LDEuMi0xLjIsMS44DQoJYy0xLjMsMi4yLTIuNSw0LjgtMy40LDcuNmMtMy42LDEuMi02LjcsMi43LTkuMyw0LjVDMjUuMywzNy41LDI1LjMsMzcuNCwyNS40LDM3LjR6IE02Mi45LDIzLjdDNjMsMjMuNyw2MywyMy43LDYyLjksMjMuNw0KCWMwLjUsMC4yLDAuOSwwLjUsMS4zLDAuN2MwLjQsMC4yLDAuOCwwLjQsMS4xLDAuNmMwLjMsMC4yLDAuNSwwLjMsMC44LDAuNWMwLjMsMC4yLDAuNywwLjQsMSwwLjdjMC4zLDAuMiwwLjUsMC40LDAuOCwwLjUNCgljMC4zLDAuMiwwLjYsMC41LDAuOSwwLjdjMC4zLDAuMiwwLjUsMC40LDAuNywwLjZjMC4zLDAuMywwLjYsMC41LDAuOSwwLjhjMC43LDAuNiwxLjMsMS4zLDEuOSwyYzAsMCwwLjEsMC4xLDAuMSwwLjENCgljMC44LDEsMS42LDIsMi4zLDMuMWMwLDAsMCwwLjEsMC4xLDAuMWMwLjcsMS4xLDEuMywyLjIsMS45LDMuNGMwLDAsMCwwLDAsMC4xYy0yLjYtMS44LTUuNy0zLjQtOS4zLTQuNWMtMC45LTIuOC0yLjEtNS4zLTMuNC03LjYNCgljLTAuNC0wLjYtMC44LTEuMi0xLjItMS44QzYyLjksMjMuNyw2Mi45LDIzLjcsNjIuOSwyMy43eiBNNjkuOCw0N2MtMC4xLTMtMC41LTUuOS0xLTguNmM1LjIsMi4xLDksNS4yLDEwLjEsOC42SDY5Ljh6IE02NCwzOC4xDQoJYzAuNiwyLjgsMSw1LjcsMS4xLDguOUg1My4zVjM1LjJjMy43LDAuMiw3LjIsMC43LDEwLjMsMS40QzYzLjgsMzcuMSw2My45LDM3LjYsNjQsMzguMXogTTUzLjMsMzAuNXYtOS4xYzIuMiwwLjcsNC4yLDIuNSw1LjksNC45DQoJYzEsMS41LDIsMy4yLDIuOCw1LjJDNTkuMywzMSw1Ni40LDMwLjYsNTMuMywzMC41eiBNNDguNiwzMC41Yy0zLDAuMS01LjksMC41LTguNiwxYzAuOC0yLDEuNy0zLjcsMi43LTUuMmMxLjctMi41LDMuNy00LjIsNS45LTQuOQ0KCVYzMC41eiBNNDguNiwzNS4yVjQ3SDM2LjljMC4xLTMuMSwwLjUtNi4xLDEuMS04LjljMC4xLTAuNSwwLjItMSwwLjMtMS40QzQxLjUsMzUuOSw0NSwzNS40LDQ4LjYsMzUuMnogTTMyLjIsNDdoLTkuMQ0KCWMxLjItMy41LDQuOS02LjUsMTAuMS04LjZDMzIuNyw0MS4xLDMyLjMsNDQsMzIuMiw0N3ogTTMyLjIsNTEuN2MwLjEsMywwLjUsNS45LDEsOC42Yy01LjItMi4xLTguOS01LjItMTAuMS04LjZIMzIuMnogTTM4LDYwLjYNCgljLTAuNi0yLjgtMS01LjctMS4xLTguOWgxMS43djExLjdjLTMuNy0wLjItNy4xLTAuNy0xMC4zLTEuNEMzOC4yLDYxLjUsMzguMSw2MSwzOCw2MC42eiBNNDguNiw2OC4xdjkuMWMtMi4yLTAuNy00LjItMi41LTUuOS00LjkNCgljLTEtMS41LTEuOS0zLjItMi43LTUuMkM0Mi43LDY3LjcsNDUuNiw2OCw0OC42LDY4LjF6IE01My4zLDY4LjFjMy0wLjEsNS45LTAuNSw4LjYtMWMtMC44LDItMS43LDMuNy0yLjgsNS4yDQoJYy0xLjcsMi41LTMuNyw0LjItNS45LDQuOVY2OC4xeiBNNTMuMyw2My40VjUxLjdoMTEuN2MtMC4xLDMuMS0wLjUsNi4xLTEuMSw4LjljLTAuMSwwLjUtMC4yLDEtMC4zLDEuNA0KCUM2MC41LDYyLjgsNTcsNjMuMyw1My4zLDYzLjR6IE02OS44LDUxLjdoOS4xYy0xLjIsMy41LTQuOSw2LjUtMTAuMSw4LjZDNjkuMyw1Ny42LDY5LjcsNTQuNyw2OS44LDUxLjd6Ij48L3BhdGg+DQo8L3N2Zz4=\";\nexport { SvgGlobeCircled as ReactComponent };","var _g;\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\nimport * as React from \"react\";\n\nfunction SvgSpeechBubbles2(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#010101\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.3 28.7H36c.9 0 1.6-.7 1.6-1.6s-.7-1.6-1.6-1.6H17.3c-.9 0-1.6.7-1.6 1.6s.7 1.6 1.6 1.6zM28.9 31.2H17.3c-.9 0-1.6.7-1.6 1.6 0 .9.7 1.6 1.6 1.6h11.6c.9 0 1.6-.7 1.6-1.6.1-.8-.7-1.6-1.6-1.6zM48.8 46.2c-2.5 0-4.6 2.1-4.6 4.6s2.1 4.6 4.6 4.6c2.5 0 4.6-2.1 4.6-4.6s-2-4.6-4.6-4.6zm0 6.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2c0 1.2-.9 2-2 2zM59.7 46.2c-2.5 0-4.6 2.1-4.6 4.6s2.1 4.6 4.6 4.6c2.5 0 4.6-2.1 4.6-4.6s-2.1-4.6-4.6-4.6zm0 6.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2c-.1 1.2-1 2-2 2zM70.5 46.2c-2.5 0-4.6 2.1-4.6 4.6s2.1 4.6 4.6 4.6c2.5 0 4.6-2.1 4.6-4.6s-2.1-4.6-4.6-4.6zm0 6.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2c0 1.2-.9 2-2 2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.4 29.1H44V26c0-5.1-4.1-9.2-9.2-9.2H18.6c-5.1 0-9.2 4.1-9.2 9.2v8.2c0 4.4 3.1 8 7.1 9v6.7c0 1.6 1.3 3 3 3 .9 0 1.7-.4 2.2-1l7.1-8.4h1.3v14.2c0 8.2 6.7 14.8 14.8 14.8h11.8L68 85.8c.7.9 1.8 1.4 3 1.4 2.2 0 4-1.8 4-4V72.4c7.9-.3 14.2-6.8 14.2-14.8V44c.1-8.2-6.6-14.9-14.8-14.9zM27.6 40.7l-.6.7-7.2 8.5c-.1.2-.6.2-.6-.1v-9.1h-.5c-3.6 0-6.6-3-6.6-6.6V26c0-3.6 3-6.6 6.6-6.6h16.1c3.6 0 6.6 3 6.6 6.6v3.6c-5.4 1.3-9.7 5.7-10.9 11.1h-2.9zM86 57.6c0 6.4-5.2 11.5-11.5 11.5h-2.7V83.2c0 .4-.3.7-.7.7-.3 0-.5-.2-.6-.4L58.8 69.9l-.7-.8H44.9c-6.4 0-11.5-5.2-11.5-11.5V44v-.6c0-.9.2-1.8.4-2.6 1.1-3.6 3.9-6.5 7.5-7.7.8-.3 1.7-.5 2.6-.5h30.5c6.4-.2 11.6 5 11.6 11.4v13.6z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPGc+DQogICAgPHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTE3LjMsMjguN0gzNmMwLjksMCwxLjYtMC43LDEuNi0xLjZzLTAuNy0xLjYtMS42LTEuNkgxNy4zYy0wLjksMC0xLjYsMC43LTEuNiwxLjZTMTYuNCwyOC43LDE3LjMsMjguN3oiPjwvcGF0aD4NCiAgICA8cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNMjguOSwzMS4ySDE3LjNjLTAuOSwwLTEuNiwwLjctMS42LDEuNmMwLDAuOSwwLjcsMS42LDEuNiwxLjZoMTEuNmMwLjksMCwxLjYtMC43LDEuNi0xLjYNCiAgICAgIEMzMC42LDMyLDI5LjgsMzEuMiwyOC45LDMxLjJ6Ij48L3BhdGg+DQogICAgPHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTQ4LjgsNDYuMmMtMi41LDAtNC42LDIuMS00LjYsNC42czIuMSw0LjYsNC42LDQuNmMyLjUsMCw0LjYtMi4xLDQuNi00LjZTNTEuNCw0Ni4yLDQ4LjgsNDYuMnogTTQ4LjgsNTIuNw0KICAgICAgYy0xLjEsMC0yLTAuOS0yLTJjMC0xLjEsMC45LTIsMi0yczIsMC45LDIsMkM1MC44LDUxLjksNDkuOSw1Mi43LDQ4LjgsNTIuN3oiPjwvcGF0aD4NCiAgICA8cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNTkuNyw0Ni4yYy0yLjUsMC00LjYsMi4xLTQuNiw0LjZzMi4xLDQuNiw0LjYsNC42YzIuNSwwLDQuNi0yLjEsNC42LTQuNlM2Mi4yLDQ2LjIsNTkuNyw0Ni4yeiBNNTkuNyw1Mi43DQogICAgICBjLTEuMSwwLTItMC45LTItMmMwLTEuMSwwLjktMiwyLTJzMiwwLjksMiwyQzYxLjYsNTEuOSw2MC43LDUyLjcsNTkuNyw1Mi43eiI+PC9wYXRoPg0KICAgIDxwYXRoIGZpbGw9IiMwMTAxMDEiIGQ9Ik03MC41LDQ2LjJjLTIuNSwwLTQuNiwyLjEtNC42LDQuNnMyLjEsNC42LDQuNiw0LjZjMi41LDAsNC42LTIuMSw0LjYtNC42UzczLDQ2LjIsNzAuNSw0Ni4yeiBNNzAuNSw1Mi43DQogICAgICBjLTEuMSwwLTItMC45LTItMmMwLTEuMSwwLjktMiwyLTJjMS4xLDAsMiwwLjksMiwyQzcyLjUsNTEuOSw3MS42LDUyLjcsNzAuNSw1Mi43eiI+PC9wYXRoPg0KICAgIDxwYXRoIGZpbGw9IiMwMTAxMDEiIGQ9Ik03NC40LDI5LjFINDQuOWMtMC4zLDAtMC42LDAtMC45LDBWMjZjMC01LjEtNC4xLTkuMi05LjItOS4ySDE4LjZjLTUuMSwwLTkuMiw0LjEtOS4yLDkuMnY4LjINCiAgICAgIGMwLDQuNCwzLjEsOCw3LjEsOXY2LjdjMCwxLjYsMS4zLDMsMywzYzAuOSwwLDEuNy0wLjQsMi4yLTFsMCwwbDcuMS04LjRoMS4zYzAsMC4yLDAsMC40LDAsMC42djEzLjZjMCw4LjIsNi43LDE0LjgsMTQuOCwxNC44DQogICAgICBoMTEuOEw2OCw4NS44bDAsMGMwLjcsMC45LDEuOCwxLjQsMywxLjRjMi4yLDAsNC0xLjgsNC00YzAsMCwwLDAsMC0wLjFWNzIuNGM3LjktMC4zLDE0LjItNi44LDE0LjItMTQuOFY0NA0KICAgICAgQzg5LjMsMzUuOCw4Mi42LDI5LjEsNzQuNCwyOS4xeiBNMjcuNiw0MC43TDI3LDQxLjRsMCwwbC03LjIsOC41bDAsMGMtMC4xLDAuMi0wLjYsMC4yLTAuNi0wLjF2LTIuOXYtMy41di0wLjZ2LTIuMWgtMC41DQogICAgICBjLTMuNiwwLTYuNi0zLTYuNi02LjZWMjZjMC0zLjYsMy02LjYsNi42LTYuNmgxNi4xYzMuNiwwLDYuNiwzLDYuNiw2LjZ2My42Yy01LjQsMS4zLTkuNyw1LjctMTAuOSwxMS4xTDI3LjYsNDAuN3ogTTg2LDU3LjYNCiAgICAgIGMwLDYuNC01LjIsMTEuNS0xMS41LDExLjVoLTIuN3YxdjIuMnY2Ljl2My45djAuMXYwbDAsMGMwLDAuNC0wLjMsMC43LTAuNywwLjdjLTAuMywwLTAuNS0wLjItMC42LTAuNGwwLDBMNTguOCw2OS45bDAsMGwtMC43LTAuOA0KICAgICAgSDQ0LjljLTYuNCwwLTExLjUtNS4yLTExLjUtMTEuNVY0NGMwLTAuMiwwLTAuNCwwLTAuNmMwLTAuOSwwLjItMS44LDAuNC0yLjZjMS4xLTMuNiwzLjktNi41LDcuNS03LjdjMC44LTAuMywxLjctMC41LDIuNi0wLjUNCiAgICAgIGMwLjMsMCwwLjYsMCwwLjksMGgyOS42QzgwLjgsMzIuNCw4NiwzNy42LDg2LDQ0TDg2LDU3LjZMODYsNTcuNnoiPjwvcGF0aD4NCiAgPC9nPg0KPC9zdmc+\";\nexport { SvgSpeechBubbles2 as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgCalendarCheck(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#010101\",\n d: \"M81.7 34.8v36.5c0 4.8-3.9 8.6-8.6 8.6H29.6c-4.8 0-8.6-3.9-8.6-8.6V34.8c0-4.8 3.9-8.6 8.6-8.6h2.9v8.3c0 3.4 2.8 6.2 6.2 6.2 3.4 0 6.2-2.8 6.2-6.2v-8.3h13.6v8.3c0 3.4 2.8 6.2 6.2 6.2 3.4 0 6.2-2.8 6.2-6.2v-8.3h2.3c4.6 0 8.5 3.8 8.5 8.6zm-2.6 7.1H23.6v29.3c0 3.3 2.7 6 6 6h43.6c3.3 0 6-2.7 6-6V41.9zm-40.4-3.6c2.1 0 3.8-1.7 3.8-3.8V22c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v12.5c0 2.2 1.7 3.8 3.8 3.8zm26 0c2.1 0 3.8-1.7 3.8-3.8V22c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v12.5c-.1 2.2 1.7 3.8 3.8 3.8zm.6 11.6c-1.1-1.1-3-1.1-4.1 0L47.6 63.3l-6-6c-1.1-1.1-3-1.1-4.1 0s-1.1 3 0 4.1l8 8c.6.6 1.3.9 2 .9s1.4-.3 2-.9L65 53.9c1.4-1.1 1.4-2.9.3-4z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPHBhdGggZmlsbD0iIzAxMDEwMSIgZD0iTTgxLjcsMzQuOHY3Ljl2MjguNmMwLDQuOC0zLjksOC42LTguNiw4LjZIMjkuNmMtNC44LDAtOC42LTMuOS04LjYtOC42VjQyLjd2LTcuOWMwLTQuOCwzLjktOC42LDguNi04LjYNCiAgICBoMi45djMuM3Y1YzAsMy40LDIuOCw2LjIsNi4yLDYuMmMzLjQsMCw2LjItMi44LDYuMi02LjJ2LTV2LTMuM2gxMy42djMuM3Y1YzAsMy40LDIuOCw2LjIsNi4yLDYuMmMzLjQsMCw2LjItMi44LDYuMi02LjJ2LTV2LTMuMw0KICAgIGgyLjNDNzcuOCwyNi4yLDgxLjcsMzAsODEuNywzNC44eiBNNzkuMSw0MS45SDIzLjZ2MjkuM2MwLDMuMywyLjcsNiw2LDZoNDMuNmMzLjMsMCw2LTIuNyw2LTZWNDEuOXogTTM4LjcsMzguMw0KICAgIGMyLjEsMCwzLjgtMS43LDMuOC0zLjh2LTV2LTMuM1YyMmMwLTIuMS0xLjctMy44LTMuOC0zLjhjLTIuMSwwLTMuOCwxLjctMy44LDMuOHY0LjJ2My4zdjVDMzQuOSwzNi43LDM2LjYsMzguMywzOC43LDM4LjN6DQogICAgTTY0LjcsMzguM2MyLjEsMCwzLjgtMS43LDMuOC0zLjh2LTV2LTMuM1YyMmMwLTIuMS0xLjctMy44LTMuOC0zLjhjLTIuMSwwLTMuOCwxLjctMy44LDMuOHY0LjJ2My4zdjUNCiAgICBDNjAuOCwzNi43LDYyLjYsMzguMyw2NC43LDM4LjN6IE02NS4zLDQ5LjljLTEuMS0xLjEtMy0xLjEtNC4xLDBMNDcuNiw2My4zbC02LTZjLTEuMS0xLjEtMy0xLjEtNC4xLDBzLTEuMSwzLDAsNC4xbDgsOA0KICAgIGMwLjYsMC42LDEuMywwLjksMiwwLjlzMS40LTAuMywyLTAuOUw2NSw1My45QzY2LjQsNTIuOCw2Ni40LDUxLDY1LjMsNDkuOXoiPjwvcGF0aD4NCjwvc3ZnPg==\";\nexport { SvgCalendarCheck as ReactComponent };","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : PropTypes.instanceOf(Element)\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import React from \"react\";\r\nimport { Transition } from \"react-transition-group\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { Tooltips } from \".\";\r\nimport userBoxes from \"../assets/svg/userBoxes.svg\";\r\nimport userClimb from \"../assets/svg/userClimbing.svg\";\r\nimport userCog from \"../assets/svg/userCog.svg\";\r\nimport userSignal from \"../assets/svg/userSignal.svg\";\r\nimport userStand from \"../assets/svg/userStand.svg\";\r\n\r\ntype DataType = {\r\n imgSrc: string;\r\n title: string;\r\n description: JSX.Element[];\r\n};\r\n\r\nconst DATA: DataType[] = [\r\n {\r\n imgSrc: userStand,\r\n title: \"Pre-contemplation\",\r\n description: [\r\n \r\n The employee is not aware that their behaviour is unhealthy.\r\n ,\r\n
      \r\n
    • \r\n Raising awareness\r\n
    • \r\n
    • \r\n Self-monitoring exercises\r\n
    • \r\n
    • \r\n Healthy policies\r\n
    • \r\n
    ,\r\n
      \r\n
    • \r\n Put up signs near the elevator encouraging staff to take the stairs\r\n
    • \r\n
    • \r\n Offer staff pedometers to count daily steps\r\n
    • \r\n
    • \r\n Active transport policy\r\n
    • \r\n
    ,\r\n ],\r\n },\r\n {\r\n imgSrc: userSignal,\r\n title: \"Contemplation\",\r\n description: [\r\n \r\n The employee is weighing up the pros and cons of changing their\r\n behaviour.\r\n ,\r\n
      \r\n
    • \r\n All of the previous\r\n
    • \r\n
    • \r\n \r\n Healthy environments and infrastructure\r\n \r\n
    • \r\n
    ,\r\n
      \r\n
    • \r\n End-of-trip facilities\r\n
    • \r\n
    • \r\n Sit-stand workstations\r\n
    • \r\n
    ,\r\n ],\r\n },\r\n {\r\n imgSrc: userBoxes,\r\n title: \"Preparation\",\r\n description: [\r\n \r\n The employee is planning on changing their unhealthy behaviour.\r\n ,\r\n
      \r\n
    • \r\n All of the previous\r\n
    • \r\n
    • \r\n Providing resources and skill building opportunities\r\n
    • \r\n
    ,\r\n ,\r\n ],\r\n },\r\n {\r\n imgSrc: userClimb,\r\n title: \"Action\",\r\n description: [\r\n \r\n The employee is in the process of changing their unhealthy behaviour.\r\n ,\r\n
      \r\n
    • \r\n All of the previous\r\n
    • \r\n
    • \r\n \r\n Providing opportunities to participate\r\n \r\n
    • \r\n
    ,\r\n
      \r\n
    • \r\n Lunch time walking group\r\n
    • \r\n
    • \r\n Standing or walking meetings\r\n
    • \r\n
    ,\r\n ],\r\n },\r\n {\r\n imgSrc: userCog,\r\n title: \"Maintenance\",\r\n description: [\r\n \r\n The employee has adopted the new healthy behaviour and ceased the\r\n unhealthy one.\r\n ,\r\n
      \r\n
    • \r\n All of the previous\r\n
    • \r\n
    • \r\n Supportive workplace culture\r\n
    • \r\n
    ,\r\n
      \r\n
    • \r\n \r\n Afternoon lawn bowls (instead of drinks)\r\n \r\n
    • \r\n
    ,\r\n ],\r\n },\r\n];\r\n\r\nexport const StagesOfChange: React.FC<{}> = () => {\r\n const [selection, setSelection] = React.useState(0);\r\n const [change, setChange] = React.useState(true);\r\n\r\n const nodeRef = React.useRef(null);\r\n\r\n const selectionChange = (id: number) => {\r\n if (id !== selection) {\r\n setChange(false);\r\n setTimeout(() => {\r\n setSelection(id);\r\n setChange(true);\r\n }, 800);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n

    The stages of change

    \r\n

    \r\n The following demonstrates the five successive stages of behaviour change\r\n {\" \"}\r\n and the workplace strategies that can be used to help individuals work\r\n towards the maintenance of a healthy lifestyle\r\n

    \r\n
    \r\n selectionChange(0)}>\r\n Stages\r\n \r\n selectionChange(1)}>\r\n Helpful Strategies\r\n \r\n selectionChange(2)}>\r\n Practical Examples\r\n \r\n
    \r\n

    For more ideas of strategies you could implement as part of your workplace health program, download our best practice guide.

    \r\n
    \r\n
    \r\n {DATA.map(({ imgSrc, title, description }, idx) => (\r\n \r\n {(status) => (\r\n \r\n \r\n \r\n

    {title}

    \r\n {description[selection]}\r\n \r\n
    \r\n )}\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nconst Pill = styled.button<{ active: boolean }>`\r\n color: white;\r\n padding: 0.5rem;\r\n border: none;\r\n width: 33%;\r\n text-transform: uppercase;\r\n font-weight: 700;\r\n font-size: 0.8rem;\r\n background: ${(p) => (p.active ? p.theme.warning : p.theme.primary)};\r\n &:focus {\r\n outline: none;\r\n }\r\n &:first-of-type {\r\n border-right: 1px solid lightblue;\r\n border-radius: 2rem 0 0 2rem;\r\n }\r\n &:last-of-type {\r\n border-left: 1px solid lightblue;\r\n border-radius: 0 2rem 2rem 0;\r\n }\r\n`;\r\n\r\nconst StyledStep = styled.div<{ step: number }>`\r\n padding: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n background: ${(p) => p.theme.primary}99;\r\n\r\n &.transition {\r\n transition: all 300ms ${(p) => p.step * 100}ms;\r\n height: 200px;\r\n span {\r\n transition: opacity 300ms;\r\n opacity: 0;\r\n }\r\n }\r\n &.transition-entering,\r\n &.transition-entered {\r\n height: ${(p) => p.step * 100 + 100}px;\r\n span {\r\n opacity: 1;\r\n }\r\n }\r\n &.transition-exiting,\r\n &.transition-exited {\r\n height: 200px;\r\n span {\r\n opacity: 0;\r\n }\r\n }\r\n`;\r\n","var _path, _circle;\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\nimport * as React from \"react\";\n\nfunction SvgUserStand(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.6 31.4h-3.8l-2.4 3.8-2.4-3.8-2.4 3.8-2.4-3.8h-3.8c-2 0-3.5 1.6-3.5 3.5v17.2c0 2 1.6 3.5 3.5 3.5v22.1c0 2.2 1.8 3.9 3.9 3.9 2.2 0 3.9-1.8 3.9-3.9v-22h1.4v22.1c0 2.2 1.8 3.9 3.9 3.9 2.2 0 3.9-1.8 3.9-3.9V55.7c2 0 3.5-1.6 3.5-3.5V34.9c.2-1.9-1.3-3.5-3.3-3.5z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 24.6,\n r: 6.3\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPHBhdGggZD0iTTU4LjYsMzEuNEM1OC42LDMxLjQsNTguNiwzMS40LDU4LjYsMzEuNEw1OC42LDMxLjRoLTMuOGwtMi40LDMuOEw1MCwzMS40aDBsLTIuNCwzLjhsLTIuNC0zLjhoLTMuOHYwDQogICAgYzAsMCwwLDAsMCwwYy0yLDAtMy41LDEuNi0zLjUsMy41djMuM3YxMC42djMuM2MwLDIsMS42LDMuNSwzLjUsMy41YzAsMCwwLDAsMCwwdjB2MjIuMWMwLDIuMiwxLjgsMy45LDMuOSwzLjkNCiAgICBjMi4yLDAsMy45LTEuOCwzLjktMy45VjU1LjdoMS40djIyLjFjMCwyLjIsMS44LDMuOSwzLjksMy45YzIuMiwwLDMuOS0xLjgsMy45LTMuOVY1NS43djBjMCwwLDAsMCwwLDBjMiwwLDMuNS0xLjYsMy41LTMuNXYtMy4zDQogICAgVjM4LjJ2LTMuM0M2Mi4xLDMzLDYwLjYsMzEuNCw1OC42LDMxLjR6Ij48L3BhdGg+DQogIDxjaXJjbGUgY3g9IjUwIiBjeT0iMjQuNiIgcj0iNi4zIj48L2NpcmNsZT4NCjwvc3ZnPg==\";\nexport { SvgUserStand as ReactComponent };","var _path, _circle, _path2, _path3, _path4, _path5, _path6;\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\nimport * as React from \"react\";\n\nfunction SvgUserSignal(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.8 31.7H55l-2.4 3.8-2.4-3.8-2.2 3.7-2.4-3.8h-3.7c-1.9 0-3.5 1.6-3.5 3.5V52c0 1.9 1.6 3.5 3.5 3.5v21.8c0 2.1 1.7 3.9 3.9 3.9 2.1 0 3.9-1.7 3.9-3.9V55.6h1.4v21.8c0 2.1 1.7 3.9 3.9 3.9 2.1 0 3.9-1.7 3.9-3.9V55.6c1.9 0 3.5-1.6 3.5-3.5V35.2c-.1-2-1.6-3.5-3.6-3.5z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50.4,\n cy: 24.9,\n r: 6.2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83 29.4c-.8-.8-2-.8-2.8 0-.8.8-.8 2 0 2.8C90 42 90 58 80.2 67.7c-.8.8-.8 2 0 2.8.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6 11.3-11.3 11.3-29.7 0-41.1z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77 35.5c-.8-.8-2-.8-2.8 0-.8.8-.8 2 0 2.8 6.5 6.5 6.5 17 0 23.4-.8.8-.8 2 0 2.8.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6 8-8 8-21 0-29z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.9 41.5c-.8-.8-2-.8-2.8 0-.8.8-.8 2 0 2.8 1.5 1.5 2.3 3.5 2.3 5.7 0 2.1-.8 4.2-2.3 5.7-.8.8-.8 2 0 2.8.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6 2.3-2.3 3.5-5.3 3.5-8.5s-1.2-6.2-3.5-8.5zM20.6 32.3c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0-11.3 11.3-11.3 29.8 0 41.1.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6.8-.8.8-2 0-2.8-9.8-9.8-9.8-25.8 0-35.5z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.6 38.3c.8-.8.8-2 0-2.8-.8-.8-2-.8-2.8 0-8 8-8 21 0 29.1.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6.8-.8.8-2 0-2.8-6.5-6.5-6.5-17.1 0-23.5z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.6 41.5c-.8-.8-2-.8-2.8 0-2.3 2.3-3.5 5.3-3.5 8.5s1.2 6.2 3.5 8.5c.4.4.9.6 1.4.6.5 0 1-.2 1.4-.6.8-.8.8-2 0-2.8-1.5-1.5-2.3-3.5-2.3-5.7 0-2.1.8-4.2 2.4-5.7.7-.8.7-2-.1-2.8z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPGc+DQogICAgPHBhdGggZD0iTTU4LjgsMzEuN0M1OC44LDMxLjcsNTguOCwzMS43LDU4LjgsMzEuN0w1OC44LDMxLjdoLTMuOGwtMi40LDMuOGwtMi40LTMuOGgwTDQ4LDM1LjRsLTIuNC0zLjhoLTMuN3YwDQogICAgICBjMCwwLDAsMCwwLDBjLTEuOSwwLTMuNSwxLjYtMy41LDMuNXYzLjJ2MTAuNXYzLjJjMCwxLjksMS42LDMuNSwzLjUsMy41YzAsMCwwLDAsMCwwdjB2MjEuOGMwLDIuMSwxLjcsMy45LDMuOSwzLjkNCiAgICAgIGMyLjEsMCwzLjktMS43LDMuOS0zLjlWNTUuNmgxLjR2MjEuOGMwLDIuMSwxLjcsMy45LDMuOSwzLjljMi4xLDAsMy45LTEuNywzLjktMy45VjU1LjZ2MGMwLDAsMCwwLDAsMGMxLjksMCwzLjUtMS42LDMuNS0zLjV2LTMuMg0KICAgICAgVjM4LjR2LTMuMkM2Mi4zLDMzLjIsNjAuOCwzMS43LDU4LjgsMzEuN3oiPjwvcGF0aD4NCiAgICA8Y2lyY2xlIGN4PSI1MC40IiBjeT0iMjQuOSIgcj0iNi4yIj48L2NpcmNsZT4NCiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik04MywyOS40Yy0wLjgtMC44LTItMC44LTIuOCwwYy0wLjgsMC44LTAuOCwyLDAsMi44QzkwLDQyLDkwLDU4LDgwLjIsNjcuN2MtMC44LDAuOC0wLjgsMiwwLDIuOA0KICAgICAgICBjMC40LDAuNCwwLjksMC42LDEuNCwwLjZjMC41LDAsMS0wLjIsMS40LTAuNkM5NC4zLDU5LjIsOTQuMyw0MC44LDgzLDI5LjR6Ij48L3BhdGg+DQogICAgICA8cGF0aCBkPSJNNzcsMzUuNWMtMC44LTAuOC0yLTAuOC0yLjgsMGMtMC44LDAuOC0wLjgsMiwwLDIuOGM2LjUsNi41LDYuNSwxNywwLDIzLjRjLTAuOCwwLjgtMC44LDIsMCwyLjgNCiAgICAgICAgYzAuNCwwLjQsMC45LDAuNiwxLjQsMC42YzAuNSwwLDEtMC4yLDEuNC0wLjZDODUsNTYuNSw4NSw0My41LDc3LDM1LjV6Ij48L3BhdGg+DQogICAgICA8cGF0aCBkPSJNNzAuOSw0MS41Yy0wLjgtMC44LTItMC44LTIuOCwwYy0wLjgsMC44LTAuOCwyLDAsMi44YzEuNSwxLjUsMi4zLDMuNSwyLjMsNS43YzAsMi4xLTAuOCw0LjItMi4zLDUuNw0KICAgICAgICBjLTAuOCwwLjgtMC44LDIsMCwyLjhjMC40LDAuNCwwLjksMC42LDEuNCwwLjZjMC41LDAsMS0wLjIsMS40LTAuNmMyLjMtMi4zLDMuNS01LjMsMy41LTguNUM3NC40LDQ2LjgsNzMuMiw0My44LDcwLjksNDEuNXoiPjwvcGF0aD4NCiAgICAgIDxwYXRoIGQ9Ik0yMC42LDMyLjNjMC44LTAuOCwwLjgtMiwwLTIuOGMtMC44LTAuOC0yLTAuOC0yLjgsMGMtMTEuMywxMS4zLTExLjMsMjkuOCwwLDQxLjENCiAgICAgICAgYzAuNCwwLjQsMC45LDAuNiwxLjQsMC42YzAuNSwwLDEtMC4yLDEuNC0wLjZjMC44LTAuOCwwLjgtMiwwLTIuOEMxMC44LDU4LDEwLjgsNDIsMjAuNiwzMi4zeiI+PC9wYXRoPg0KICAgICAgPHBhdGggZD0iTTI2LjYsMzguM2MwLjgtMC44LDAuOC0yLDAtMi44Yy0wLjgtMC44LTItMC44LTIuOCwwYy04LDgtOCwyMSwwLDI5LjFjMC40LDAuNCwwLjksMC42LDEuNCwwLjYNCiAgICAgICAgYzAuNSwwLDEtMC4yLDEuNC0wLjZjMC44LTAuOCwwLjgtMiwwLTIuOEMyMC4xLDU1LjMsMjAuMSw0NC43LDI2LjYsMzguM3oiPjwvcGF0aD4NCiAgICAgIDxwYXRoIGQ9Ik0zMi42LDQxLjVjLTAuOC0wLjgtMi0wLjgtMi44LDBjLTIuMywyLjMtMy41LDUuMy0zLjUsOC41YzAsMy4yLDEuMiw2LjIsMy41LDguNWMwLjQsMC40LDAuOSwwLjYsMS40LDAuNg0KICAgICAgICBjMC41LDAsMS0wLjIsMS40LTAuNmMwLjgtMC44LDAuOC0yLDAtMi44Yy0xLjUtMS41LTIuMy0zLjUtMi4zLTUuN2MwLTIuMSwwLjgtNC4yLDIuNC01LjdDMzMuNCw0My41LDMzLjQsNDIuMywzMi42LDQxLjV6Ij48L3BhdGg+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4=\";\nexport { SvgUserSignal as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgUserBoxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.4 17.7h17.1v17.1H70.4zM70.4 41.4h17.1v17.1H70.4zM70.4 65.2h17.1v17.1H70.4zM47.3 47.8h-7.6v4.4h7.6v23.7h19.8v-4.3H51.7V52.2h15.4v-4.4H51.7V28.4h15.4v-4.3H47.3zM36.8 38.2v-3.3c0-2-1.6-3.6-3.6-3.6h-3.8L27 35.1l-2.4-3.8-2.4 3.8-2.4-3.9H16c-2 0-3.6 1.6-3.6 3.6v17.3c0 2 1.6 3.6 3.6 3.6v22.2c0 2.2 1.8 4 4 4s4-1.8 4-4V55.7h1.4V78c0 2.2 1.8 4 4 4s4-1.8 4-4V55.7c2 0 3.6-1.6 3.6-3.6V38.2zM24.6 30.7c3.5 0 6.3-2.8 6.3-6.3s-2.8-6.3-6.3-6.3-6.3 2.8-6.3 6.3 2.8 6.3 6.3 6.3z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPGc+DQogICAgPHJlY3QgeD0iNzAuNCIgeT0iMTcuNyIgd2lkdGg9IjE3LjEiIGhlaWdodD0iMTcuMSI+PC9yZWN0Pg0KICAgIDxyZWN0IHg9IjcwLjQiIHk9IjQxLjQiIHdpZHRoPSIxNy4xIiBoZWlnaHQ9IjE3LjEiPjwvcmVjdD4NCiAgICA8cmVjdCB4PSI3MC40IiB5PSI2NS4yIiB3aWR0aD0iMTcuMSIgaGVpZ2h0PSIxNy4xIj48L3JlY3Q+DQogICAgPHBvbHlnb24gcG9pbnRzPSI0Ny4zLDQ3LjggMzkuNyw0Ny44IDM5LjcsNDguOSAzOS43LDUyLjIgMzkuNyw1Mi4yIDQ3LjMsNTIuMiA0Ny4zLDc1LjkgNjcuMSw3NS45IDY3LjEsNzEuNiANCiAgICAgIDUxLjcsNzEuNiA1MS43LDUyLjIgNTIsNTIuMiA2Ny4xLDUyLjIgNjcuMSw0Ny44IDUyLDQ3LjggNTEuNyw0Ny44IDUxLjcsMjguNCA2Ny4xLDI4LjQgNjcuMSwyNC4xIDQ3LjMsMjQuMSAJIj48L3BvbHlnb24+DQogICAgPHBhdGggZD0iTTM2LjgsMzguMnYtMy4zYzAtMi0xLjYtMy42LTMuNi0zLjZjMCwwLDAsMCwwLDB2MGgtMy44TDI3LDM1LjFsLTIuNC0zLjhjMCwwLDAsMCwwLDBjMCwwLDAsMCwwLDANCiAgICAgIGwtMi40LDMuOGwtMi40LTMuOUgxNnYwYzAsMCwwLDAsMCwwYy0yLDAtMy42LDEuNi0zLjYsMy42djMuM3YxMC43djMuM2MwLDIsMS42LDMuNiwzLjYsMy42YzAsMCwwLDAsMCwwdjB2MjIuMmMwLDIuMiwxLjgsNCw0LDQNCiAgICAgIGMyLjIsMCw0LTEuOCw0LTRWNTUuN2gxLjRWNzhjMCwyLjIsMS44LDQsNCw0YzIuMiwwLDQtMS44LDQtNFY1NS43djBjMCwwLDAsMCwwLDBjMiwwLDMuNi0xLjYsMy42LTMuNnYtMy4zVjM4LjJ6Ij48L3BhdGg+DQogICAgPHBhdGggZD0iTTI0LjYsMzAuN2MzLjUsMCw2LjMtMi44LDYuMy02LjNjMC0zLjUtMi44LTYuMy02LjMtNi4zYy0zLjUsMC02LjMsMi44LTYuMyw2LjMNCiAgICAgIEMxOC4zLDI3LjksMjEuMSwzMC43LDI0LjYsMzAuN3oiPjwvcGF0aD4NCiAgPC9nPg0KPC9zdmc+\";\nexport { SvgUserBoxes as ReactComponent };","var _circle, _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgUserClimbing(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 48.9,\n cy: 20,\n r: 7.3\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.7 46.4v-4.8l2.5-1.7v10.3H43c2.3 0 4.2 1.9 4.2 4.2v9.9c0 2.3-1.9 4.2-4.2 4.2h-1.4c0 .5.1.9.1 1.3l-6 11.3c-1.1 2.1-.3 4.6 1.8 5.7 2.1 1.1 4.6.3 5.7-1.8l6.1-11.6c.3-.6.4-1.2.5-1.7 0-.1.1-.1.1-.2L49.7 58l9.3 3.7V70c0 2.2 1.9 3.9 4.3 3.9s4.3-1.7 4.3-3.9V60c0-2.2-1-4.8-4.4-6.1H63l-7.9-3.1v-6.2l.7.7c.8 1 2.1 1.5 3.4 1.5h8.1c2.4 0 4.3-1.7 4.3-3.9S69.7 39 67.3 39h-6.1c-10-11.1-7.7-10-9.6-10.2l-.6 3.6-1.7-3.3-.4 4c-2.8-5.2-2.4-5.2-3.7-5.1h-.4c-1.7.3-1.6.6-12.8 8.3-1.1.8-1.7 1.9-1.7 3.1v6.8c0 1.9 1.5 3.5 3.4 3.8h1.7c1.8-.2 3.3-1.8 3.3-3.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.6 67.2H43c1.6 0 2.9-1.3 2.9-2.9v-9.9c0-1.6-1.3-2.9-2.9-2.9H27.6c-1.6 0-2.9 1.3-2.9 2.9v9.9c-.1 1.6 1.3 2.9 2.9 2.9z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPGc+DQogICAgPGNpcmNsZSBjeD0iNDguOSIgY3k9IjIwIiByPSI3LjMiPjwvY2lyY2xlPg0KICAgIDxwYXRoIGQ9Ik0zOC43LDQ2LjR2LTQuOGwyLjUtMS43djEwLjNINDNjMi4zLDAsNC4yLDEuOSw0LjIsNC4ydjkuOWMwLDIuMy0xLjksNC4yLTQuMiw0LjJoLTEuNA0KICAgICAgYzAsMC41LDAuMSwwLjksMC4xLDEuM2wtNiwxMS4zYy0xLjEsMi4xLTAuMyw0LjYsMS44LDUuN2MyLjEsMS4xLDQuNiwwLjMsNS43LTEuOGw2LjEtMTEuNmMwLjMtMC42LDAuNC0xLjIsMC41LTEuNw0KICAgICAgYzAtMC4xLDAuMS0wLjEsMC4xLTAuMkw0OS43LDU4bDkuMywzLjd2OC4zYzAsMi4yLDEuOSwzLjksNC4zLDMuOWMyLjQsMCw0LjMtMS43LDQuMy0zLjlWNjBjMC0yLjItMS00LjgtNC40LTYuMQ0KICAgICAgYy0wLjEsMC0wLjEsMC0wLjIsMGwtNy45LTMuMXYtNi4ybDAuNywwLjdjMC44LDEsMi4xLDEuNSwzLjQsMS41YzAsMCwwLDAsMC4xLDBoOGMyLjQsMCw0LjMtMS43LDQuMy0zLjljMC0yLjItMS45LTMuOS00LjMtMy45DQogICAgICBoLTYuMWMtMTAtMTEuMS03LjctMTAtOS42LTEwLjJMNTEsMzIuNGwtMS43LTMuM2wtMC40LDRjLTIuOC01LjItMi40LTUuMi0zLjctNS4xYy0wLjEsMC0wLjEsMC0wLjIsMGMtMC4xLDAtMC4xLDAtMC4yLDANCiAgICAgIGMtMS43LDAuMy0xLjYsMC42LTEyLjgsOC4zYy0xLjEsMC44LTEuNywxLjktMS43LDMuMWMwLDAsMCwwLjEsMCwwLjF2Ni43YzAsMS45LDEuNSwzLjUsMy40LDMuOGgxLjcNCiAgICAgIEMzNy4yLDQ5LjgsMzguNyw0OC4yLDM4LjcsNDYuNHoiPjwvcGF0aD4NCiAgICA8cGF0aCBkPSJNMjcuNiw2Ny4ySDQzYzEuNiwwLDIuOS0xLjMsMi45LTIuOXYtOS45YzAtMS42LTEuMy0yLjktMi45LTIuOUgyNy42Yy0xLjYsMC0yLjksMS4zLTIuOSwyLjl2OS45DQogICAgICBDMjQuNiw2NS45LDI2LDY3LjIsMjcuNiw2Ny4yeiI+PC9wYXRoPg0KICA8L2c+DQo8L3N2Zz4=\";\nexport { SvgUserClimbing as ReactComponent };","var _path, _circle, _g;\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\nimport * as React from \"react\";\n\nfunction SvgUserCog(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.8 35.5h-3l-1.9 3-1.9-3-1.9 3-1.9-3h-2.9c-1.5 0-2.8 1.2-2.8 2.8v13.5c0 1.5 1.2 2.8 2.8 2.8v17.2c0 1.7 1.4 3.1 3.1 3.1 1.7 0 3.1-1.4 3.1-3.1V54.4h1.1v17.2c0 1.7 1.4 3.1 3.1 3.1 1.7 0 3.1-1.4 3.1-3.1V54.4c1.5 0 2.8-1.2 2.8-2.8V38.1c-.1-1.3-1.3-2.6-2.8-2.6z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 49.1,\n cy: 30.2,\n r: 4.9\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.3 53.4c.3-2.5.2-5-.1-7.4l7.2-4.4-3-7.1-3-7.1-8.2 2.1c-1.5-1.9-3.3-3.7-5.3-5.2l2-8.3-7.1-2.9-7.1-2.9-4.3 7.3c-2.5-.3-5-.2-7.4.1l-4.4-7.2-7.1 3-7.1 3 2.1 8.2c-1.9 1.5-3.7 3.3-5.2 5.3l-8.3-2-2.9 7.1-2.9 7.1 7.3 4.3c-.3 2.5-.2 5 .1 7.4l-7.2 4.4 3 7.1 3 7.1 8.2-2.1c1.5 1.9 3.3 3.7 5.3 5.2l-2 8.3 7.1 2.9 7.1 2.9 4.3-7.3c2.5.3 5 .2 7.4-.1l4.4 7.2 7.1-3 7.1-3-2.1-8.2c1.9-1.5 3.7-3.3 5.2-5.3l8.3 2 2.9-7.1 2.9-7.1-7.3-4.3zM49.1 78.3c-15.6 0-28.3-12.7-28.3-28.3 0-15.6 12.7-28.3 28.3-28.3 15.6 0 28.3 12.7 28.3 28.3 0 15.6-12.7 28.3-28.3 28.3z\"\n }))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCiAgPGc+DQogICAgPGc+DQogICAgICA8Zz4NCiAgICAgICAgPHBhdGggZD0iTTU1LjgsMzUuNUM1NS44LDM1LjUsNTUuOCwzNS41LDU1LjgsMzUuNUw1NS44LDM1LjVoLTNsLTEuOSwzbC0xLjktM2gwbC0xLjksM2wtMS45LTNoLTIuOXYwDQogICAgICAgICAgYzAsMCwwLDAsMCwwYy0xLjUsMC0yLjgsMS4yLTIuOCwyLjh2Mi42djguM3YyLjZjMCwxLjUsMS4yLDIuOCwyLjgsMi44YzAsMCwwLDAsMCwwdjB2MTcuMmMwLDEuNywxLjQsMy4xLDMuMSwzLjENCiAgICAgICAgICBjMS43LDAsMy4xLTEuNCwzLjEtMy4xVjU0LjRoMS4xdjE3LjJjMCwxLjcsMS40LDMuMSwzLjEsMy4xYzEuNywwLDMuMS0xLjQsMy4xLTMuMVY1NC40djBjMCwwLDAsMCwwLDBjMS41LDAsMi44LTEuMiwyLjgtMi44DQogICAgICAgICAgdi0yLjZ2LTguM3YtMi42QzU4LjUsMzYuOCw1Ny4zLDM1LjUsNTUuOCwzNS41eiI+PC9wYXRoPg0KICAgICAgICA8Y2lyY2xlIGZpbGw9IiNmZmYiIGN4PSI0OS4xIiBjeT0iMzAuMiIgcj0iNC45Ij48L2NpcmNsZT4NCiAgICAgIDwvZz4NCiAgICAgIDxnPg0KICAgICAgICA8cGF0aCBkPSJNODEuMyw1My40YzAuMy0yLjUsMC4yLTUtMC4xLTcuNGw3LjItNC40bC0zLTcuMWwtMy03LjFsLTguMiwyLjFjLTEuNS0xLjktMy4zLTMuNy01LjMtNS4ybDItOC4zDQogICAgICAgICAgbC03LjEtMi45bC03LjEtMi45bC00LjMsNy4zYy0yLjUtMC4zLTUtMC4yLTcuNCwwLjFsLTQuNC03LjJsLTcuMSwzbC03LjEsM2wyLjEsOC4yYy0xLjksMS41LTMuNywzLjMtNS4yLDUuM2wtOC4zLTJsLTIuOSw3LjENCiAgICAgICAgICBsLTIuOSw3LjFsNy4zLDQuM2MtMC4zLDIuNS0wLjIsNSwwLjEsNy40bC03LjIsNC40bDMsNy4xbDMsNy4xbDguMi0yLjFjMS41LDEuOSwzLjMsMy43LDUuMyw1LjJsLTIsOC4zbDcuMSwyLjlsNy4xLDIuOWw0LjMtNy4zDQogICAgICAgICAgYzIuNSwwLjMsNSwwLjIsNy40LTAuMWw0LjQsNy4ybDcuMS0zbDcuMS0zbC0yLjEtOC4yYzEuOS0xLjUsMy43LTMuMyw1LjItNS4zbDguMywybDIuOS03LjFsMi45LTcuMUw4MS4zLDUzLjR6IE00OS4xLDc4LjMNCiAgICAgICAgICBjLTE1LjYsMC0yOC4zLTEyLjctMjguMy0yOC4zYzAtMTUuNiwxMi43LTI4LjMsMjguMy0yOC4zYzE1LjYsMCwyOC4zLDEyLjcsMjguMywyOC4zQzc3LjQsNjUuNiw2NC43LDc4LjMsNDkuMSw3OC4zeiI+PC9wYXRoPg0KICAgICAgPC9nPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+\";\nexport { SvgUserCog as ReactComponent };","import * as React from \"react\";\r\nimport { Tooltips } from \".\";\r\n\r\ntype DataType = {\r\n title: string;\r\n subtitle: string;\r\n description: JSX.Element;\r\n};\r\n\r\nconst DATA: DataType[] = [\r\n {\r\n title: \"1. SIMPLICITY\",\r\n subtitle:\r\n \"Make the idea simple by stripping it to its core, or using an analogy.\",\r\n description: (\r\n
    \r\n

    \r\n Make complex information simple and understandable. Here’s an example\r\n using hypertension (high blood pressure):\r\n

    \r\n
      \r\n
    • \r\n

      \r\n Simple – High blood pressure is like having high pressure in a\r\n pipe. The pressure causes damage that can’t be seen until it\r\n bursts the pipe.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Complex – Hypertension is a chronic medical condition in which the\r\n blood pressure within the arteries is elevated. This leads to an\r\n increased risk of coronary artery disease.\r\n

      \r\n
    • \r\n
    \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"2. UNEXPECTEDNESS\",\r\n subtitle:\r\n \"Demand attention by generating interest and curiosity with the element of surprise.\",\r\n description: (\r\n
    \r\n

    \r\n Using surprising facts or figures might help you to do this. For\r\n example:\r\n

    \r\n
      \r\n
    • \r\n

      Did you know that 1 in 3 Australians have high cholesterol?

      \r\n
    • \r\n
    • \r\n

      \r\n Did you know that a 600 mL bottle of iced coffee contains 14\r\n teaspoons of sugar?\r\n

      \r\n
    • \r\n
    \r\n

    \r\n \r\n Australia’s Health 2020\r\n {\" \"}\r\n is a great resource if you’re looking for health statistics.\r\n

    \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"3. CONCRETENESS\",\r\n subtitle:\r\n \"Ensure the idea means the same to everyone. Make it real, not abstract.\",\r\n description: (\r\n
    \r\n

    \r\n Concrete information is easier to understand and remember. For\r\n example:\r\n

    \r\n
      \r\n
    • \r\n

      \r\n ‘Did you know that a 600 mL bottle of cola drink contains over\r\n 1,000 kJ?’ This statement is abstract as many may be unfamiliar\r\n with what a kJ is.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n ‘Did you know a 600 mL bottle of cola drink contains 16 teaspoons\r\n of sugar?’ This statement is concrete as a teaspoon is a familiar\r\n measurement.\r\n

      \r\n
    • \r\n
    \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"4. CREDIBILITY\",\r\n subtitle:\r\n \"Use a credible source to deliver the idea and always use evidence-based information.\",\r\n description: (\r\n
    \r\n

    \r\n If you are using facts or figures to make your point sticky, ensure\r\n you are sourcing them from a credible health organisation. Government\r\n agencies (such as the Department of Health or the National Health and\r\n Medical Research Council) and non-government organisations (such as\r\n the Heart Foundation and Cancer Council WA) are great sources of\r\n credible information.\r\n

    \r\n

    \r\n If you are engaging with a health professional to provide education or\r\n advice to staff, ensure they are university qualified. For example,\r\n use a dietitian for nutrition information or an exercise physiologist\r\n for exercise information.\r\n

    \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"5. EMOTIONS\",\r\n subtitle:\r\n \"Use associations to tie ideas to something people care about, things that resonate with your audience.\",\r\n description: (\r\n
    \r\n

    \r\n Feelings inspire people to act, and we can use this to engage workers\r\n to care about something they might not have otherwise cared about. For\r\n example, a scientific study completed in 2012 found that dog owners\r\n were more likely to participate in physical activity if you told them\r\n that it was good for the health of their dog, rather than for their\r\n own health.\r\n

    \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"6. STORIES\",\r\n subtitle:\r\n \"Encourage mental stimulation and re-enactment through sharing the experience of others.\",\r\n description: (\r\n
    \r\n

    \r\n People often learn through the experience of others, so it’s important\r\n that you share positive outcomes and good news within the workplace.\r\n Sharing testimonials and real stories from peers can be a powerful tool\r\n to motivate and encourage staff to participate in healthy behaviours.\r\n

    \r\n
    \r\n ),\r\n },\r\n];\r\n\r\nexport const StickyMessage: React.FC<{}> = () => {\r\n return (\r\n
    \r\n
    \r\n

    \r\n Ensuring your health message is \"sticky\"\r\n

    \r\n

    \r\n Engaging your employees and keeping them interested in their health at\r\n work can be tricky. ‘Sticky’ messages can help as they are easy to\r\n understand, are remembered, and have a long lasting impact that can\r\n change levels of knowledge, attitudes and even behaviours.\r\n

    \r\n
    \r\n \r\n
    \r\n

    \r\n So how do you make a message ‘sticky’? Watch how Professor Phil Morgan\r\n applied the six principles of the ‘stickiness factor’ to help engage\r\n staff:\r\n \r\n

    \r\n
    \r\n
    \r\n {DATA.map(({ title, subtitle, description }) => (\r\n
    \r\n
    \r\n

    {title}

    \r\n

    {subtitle}

    \r\n
    \r\n {description}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nimport manOnStairs from \"../assets/gfx/03_man-on-stairs.jpg\";\r\n\r\nexport const BestPractice: React.FC<{}> = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"Man\r\n
    \r\n
    \r\n
    \r\n

    \r\n Moving from good practice through to best practice can take time and\r\n commitment. Strategies can be implemented and built upon over a period\r\n of time, gradually moving towards a program that is considered best\r\n practice. Here’s an example using healthy eating and drinking.\r\n

    \r\n

    Good practice strategies could include:

    \r\n
      \r\n
    • \r\n

      Displaying healthy choices (posters etc.) at the workplace.

      \r\n
    • \r\n
    • \r\n

      \r\n Providing basic kitchen facilities such as eating utensils, a\r\n fridge, pantry and washing up facilities.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n When providing catering, giving preference to food outlets with\r\n healthy choices.\r\n

      \r\n
    • \r\n
    \r\n

    Better practice strategies could include:

    \r\n
      \r\n
    • \r\n

      \r\n Organising a social soup or salad group where staff bring in\r\n healthy meals to share.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Providing food preparation equipment such as sharp knives,\r\n chopping boards and a toaster.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n When providing catering, requesting healthier foods from providers\r\n and ensuring portion size is considered.\r\n

      \r\n
    • \r\n
    \r\n

    Best practice strategies could include:

    \r\n
      \r\n
    • \r\n

      \r\n Providing healthy cooking classes and healthy eating education.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Providing advanced kitchen facilities and equipment such as an\r\n oven, a stove, blender, grater etc.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Having a catering policy in place ensuring a minimum of 50% of\r\n provided food and drink is healthy and no more than 20% of\r\n provided food and drink is unhealthy.\r\n

      \r\n
    • \r\n
    \r\n

    \r\n Download our{\" \"}\r\n \r\n Best practice guide: Workplace health and wellbeing strategies\r\n {\" \"}\r\n factsheet for a range of good, better and best strategies for each of\r\n these behavoural risk factors.\r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { ReactComponent as CloseIcon } from \"../assets/svg/closeIcon.svg\";\r\n\r\ntype DataType = {\r\n title: string;\r\n text: JSX.Element;\r\n};\r\n\r\nexport const EducationActivities: React.FC<{}> = () => {\r\n const [option, setOption] = React.useState(-1);\r\n\r\n const handleSetOption = (id: number): void => {\r\n return option === id ? setOption(-1) : setOption(id);\r\n };\r\n\r\n const data: DataType[] = [\r\n {\r\n title: \"Policy\",\r\n text: (\r\n

    \r\n Documents an organisation’s commitment to the health and wellbeing of\r\n staff. This sets clear expectations and ensures the sustainability of\r\n changes made even with staffing changes.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Environment\",\r\n text: (\r\n

    \r\n Making healthy options and opportunities available to staff (e.g.\r\n providing healthy food options at meetings can influence a healthier\r\n choice).\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Education & Activities\",\r\n text: (\r\n <>\r\n

    \r\n Providing information on the risks associated with unhealthy\r\n behaviours and identifying healthier choices.\r\n

    \r\n

    \r\n Providing opportunities for those looking to make a change (e.g. a\r\n healthy cooking class or lunch time walking group).\r\n

    \r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n Click on the symbols below to reveal more information.\r\n \r\n \r\n {data.map(({ title, text }, idx) => (\r\n handleSetOption(idx)}\r\n >\r\n {title}\r\n \r\n ))}\r\n handleSetOption(-1)} active={option !== -1}>\r\n

    \r\n {option === -1 ? \"\" : data[option].title}\r\n

    \r\n {option === -1 ? \"\" : data[option].text}\r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst angle = \"16.7%\";\r\nconst base = \"30rem\";\r\n\r\nconst Pyramid = styled.div`\r\n position: relative;\r\n margin: 0 auto 1.5rem;\r\n width: ${base};\r\n height: ${base};\r\n`;\r\n\r\nconst Layer = styled.button<{ active: boolean }>`\r\n width: 100%;\r\n height: 33%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: flex-end;\r\n font-size: 1.5rem;\r\n font-weight: bold;\r\n color: ${(p) => p.theme.white};\r\n background: ${(p) => p.theme.info}aa;\r\n padding-bottom: 1.25rem;\r\n cursor: pointer;\r\n\r\n &:nth-child(1) {\r\n clip-path: polygon(\r\n 50% 0,\r\n calc(50% + ${angle}) 100%,\r\n calc(50% - ${angle}) 100%\r\n );\r\n }\r\n &:nth-child(2) {\r\n background-color: ${(p) => p.theme.primary};\r\n clip-path: polygon(\r\n calc(50% - ${angle}) 0,\r\n calc(50% + ${angle}) 0,\r\n calc(50% + ${angle} * 2) 100%,\r\n calc(50% - ${angle} * 2) 100%\r\n );\r\n }\r\n &:nth-child(3) {\r\n clip-path: polygon(\r\n calc(50% - ${angle} * 2) 0,\r\n calc(50% + ${angle} * 2) 0,\r\n calc(50% + ${angle} * 3) 100%,\r\n calc(50% - ${angle} * 3) 100%\r\n );\r\n }\r\n`;\r\n\r\nconst Content = styled.button<{ active: boolean }>`\r\n position: absolute;\r\n overflow: hidden;\r\n padding: ${(p) => (p.active ? \"2rem\" : 0)};\r\n top: ${(p) => (p.active ? 0 : \"50%\")};\r\n left: ${(p) => (p.active ? 0 : \"50%\")};\r\n width: ${(p) => (p.active ? \"100%\" : 0)};\r\n height: ${(p) => (p.active ? \"100%\" : 0)};\r\n opacity: ${(p) => (p.active ? 1 : 0)};\r\n z-index: ${(p) => (p.active ? 0 : 2)};\r\n color: ${(p) => p.theme.white};\r\n background-color: ${(p) => p.theme.primary};\r\n border: none;\r\n transition: 500ms all cubic-bezier(0.34, 1.56, 0.64, 1);\r\n & p {\r\n font-size: 1.25rem;\r\n }\r\n`;\r\n","import * as React from \"react\";\r\nimport { Tooltips } from \".\";\r\n\r\nexport const SettingFoundation: React.FC<{}> = () => {\r\n return (\r\n
    \r\n
    \r\n

    \r\n A health policy is a written document that formalises an\r\n organisation’s ongoing commitment to improving health and wellbeing in\r\n the workplace.\r\n When developing a workplace health policy, it is\r\n important to:\r\n

    \r\n
      \r\n
    • \r\n

      Speak to staff, so that they feel involved in the process.

      \r\n
    • \r\n
    • \r\n

      \r\n Gain support from all levels of management, so that they can 'walk\r\n the talk' and support/promote your policy and program objectives.\r\n

      \r\n
    • \r\n
    \r\n

    Health policy can be developed in several ways:

    \r\n
      \r\n
    • \r\n

      \r\n Overarching{\" \"}\r\n \r\n Health and Wellbeing Policy\r\n {\" \"}\r\n targeting a range of risk factors.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Stand alone policies targeting specific health areas (e.g. a\r\n physical activity policy, a healthy catering policy, a smoke-free\r\n policy and/or an alcohol policy)\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n If your organisation does not want to create new policies, you\r\n could include health policy items within an existing health\r\n related policy (e.g. a Fitness for work policy or an Occupational\r\n safety and health policy)\r\n

      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n

    A good health and wellbeing policy should:

    \r\n
      \r\n
    • \r\n

      \r\n Provide clear messages about the organisation’s stance on health\r\n and wellbeing.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Guide decisions related to health and wellbeing in the workplace.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Provide a foundation for creating, implementing and reviewing\r\n health and wellbeing strategies.\r\n

      \r\n
    • \r\n
    \r\n

    \r\n Health policy is about encouraging and supporting staff to make\r\n healthy choices. For example, a healthy catering policy may state that\r\n at least 50% of the food provided at workplace functions (meetings and\r\n events) or at an on-site cafe must be healthy.\r\n

    \r\n

    \r\n Policy also allows you to ensure that the workplace is not enabling\r\n unhealthy behaviours. For example, limiting the number of alcoholic\r\n drinks offered at work functions to no more than two per person or\r\n introducing a smoke-free workplace policy.\r\n

    \r\n
    \r\n
    \r\n );\r\n};\r\n","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgBikeRack(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"bikeRack_svg__st0\",\n d: \"M76.9 43.1c-2.2 0-4.3.5-6.1 1.4l-3-4.5 3.1-6.2c.3-.5.2-1.2-.1-1.7-.3-.5-.9-.8-1.5-.8h-7.7c-.9 0-1.7.8-1.7 1.7s.8 1.7 1.7 1.7h4.9L65 37.9H47.3l-.3-.3 1.8-3.9c.3-.5.2-1.2-.1-1.7-.3-.5-.9-.8-1.5-.8H38c-.9 0-1.7.8-1.7 1.7 0 .9.8 1.7 1.7 1.7h6.5L40.2 44c-1.5-.5-3-.8-4.6-.8-1.5 0-2.9.2-4.3.7a9.78 9.78 0 00-7.4-3.4H12.5v-4.6c0-1-.8-1.7-1.7-1.7-.9 0-1.7.8-1.7 1.7v34.5c0 .9.8 1.7 1.7 1.7 1 0 1.7-.8 1.7-1.7V60.3h9.1c1.3 6.6 7.1 11.6 14 11.6 7.9 0 14.4-6.4 14.4-14.3 0-5.1-2.7-9.5-6.6-12.1l2-4.2 10.3 16.5c.3.5.9.8 1.5.8h5.5c.6 7.4 6.8 13.2 14.3 13.2 7.9 0 14.3-6.4 14.3-14.4-.1-7.9-6.5-14.3-14.4-14.3zm-47.1 7.2c0 3-2.3 5.5-5.2 5.9.4-3.3 2.2-6.1 4.8-7.9.2.6.4 1.3.4 2zm-17.3-5.9h11.3c1.4 0 2.6.5 3.7 1.3-3.4 2.4-5.8 6.2-6.2 10.6h-8.9V44.4zm34.2 13.2c0 6.1-5 11.1-11.2 11.1-5.2 0-9.5-3.6-10.7-8.5 5-.5 8.9-4.7 8.9-9.8 0-1.3-.3-2.5-.7-3.6.8-.2 1.6-.3 2.5-.3 1.1 0 2.2.2 3.2.5l-4.6 9.6c-.4.9 0 1.9.8 2.3.2.1.5.2.7.2.6 0 1.3-.4 1.6-1l4.6-9.7c3 2 4.9 5.4 4.9 9.2zm21.1-11.3c-2.7 2.2-4.6 5.3-5.1 8.8h-2.5L66 43.5l1.8 2.8zm1.9 2.7l4 6.1H66c.5-2.4 1.8-4.5 3.7-6.1zm-20.3-7.6h13.9l-6.2 12.3-7.7-12.3zm27.5 27.1c-5.7 0-10.4-4.4-11-9.9h11c.6 0 1.2-.3 1.5-.9.3-.6.3-1.2-.1-1.8l-5.8-8.7c1.3-.6 2.8-.9 4.4-.9 6.1 0 11.1 5 11.1 11.1s-5 11.1-11.1 11.1z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc2LjksNDMuMWMtMi4yLDAtNC4zLDAuNS02LjEsMS40TDY3LjgsNDBjMCwwLDAsMCwwLDBsMy4xLTYuMmMwLjMtMC41LDAuMi0xLjItMC4xLTEuNw0KCQkJYy0wLjMtMC41LTAuOS0wLjgtMS41LTAuOGgtNy43Yy0wLjksMC0xLjcsMC44LTEuNywxLjdzMC44LDEuNywxLjcsMS43aDQuOUw2NSwzNy45SDQ3LjNjLTAuMS0wLjEtMC4yLTAuMi0wLjMtMC4zbDEuOC0zLjkNCgkJCWMwLjMtMC41LDAuMi0xLjItMC4xLTEuN2MtMC4zLTAuNS0wLjktMC44LTEuNS0wLjhIMzhjLTAuOSwwLTEuNywwLjgtMS43LDEuN2MwLDAuOSwwLjgsMS43LDEuNywxLjdoNi41TDQwLjIsNDQNCgkJCWMtMS41LTAuNS0zLTAuOC00LjYtMC44Yy0xLjUsMC0yLjksMC4yLTQuMywwLjdjLTEuOC0yLjEtNC41LTMuNC03LjQtMy40SDEyLjV2LTQuNmMwLTEtMC44LTEuNy0xLjctMS43Yy0wLjksMC0xLjcsMC44LTEuNywxLjcNCgkJCXYzNC41YzAsMC45LDAuOCwxLjcsMS43LDEuN2MxLDAsMS43LTAuOCwxLjctMS43VjYwLjNoOS4xYzEuMyw2LjYsNy4xLDExLjYsMTQsMTEuNmM3LjksMCwxNC40LTYuNCwxNC40LTE0LjMNCgkJCWMwLTUuMS0yLjctOS41LTYuNi0xMi4xbDItNC4yYzAsMCwwLDAsMCwwbDEwLjMsMTYuNWMwLjMsMC41LDAuOSwwLjgsMS41LDAuOGg1LjVjMC42LDcuNCw2LjgsMTMuMiwxNC4zLDEzLjINCgkJCWM3LjksMCwxNC4zLTYuNCwxNC4zLTE0LjRDOTEuMiw0OS41LDg0LjgsNDMuMSw3Ni45LDQzLjF6IE0yOS44LDUwLjNjMCwzLTIuMyw1LjUtNS4yLDUuOWMwLjQtMy4zLDIuMi02LjEsNC44LTcuOQ0KCQkJQzI5LjYsNDguOSwyOS44LDQ5LjYsMjkuOCw1MC4zeiBNMTIuNSw0NC40aDExLjNjMS40LDAsMi42LDAuNSwzLjcsMS4zYy0zLjQsMi40LTUuOCw2LjItNi4yLDEwLjZoLTguOVY0NC40eiBNNDYuNyw1Ny42DQoJCQljMCw2LjEtNSwxMS4xLTExLjIsMTEuMWMtNS4yLDAtOS41LTMuNi0xMC43LTguNWM1LTAuNSw4LjktNC43LDguOS05LjhjMC0xLjMtMC4zLTIuNS0wLjctMy42YzAuOC0wLjIsMS42LTAuMywyLjUtMC4zDQoJCQljMS4xLDAsMi4yLDAuMiwzLjIsMC41bC00LjYsOS42Yy0wLjQsMC45LDAsMS45LDAuOCwyLjNjMC4yLDAuMSwwLjUsMC4yLDAuNywwLjJjMC42LDAsMS4zLTAuNCwxLjYtMWw0LjYtOS43DQoJCQlDNDQuOCw1MC40LDQ2LjcsNTMuOCw0Ni43LDU3LjZ6IE02Ny44LDQ2LjNjLTIuNywyLjItNC42LDUuMy01LjEsOC44aC0yLjVsNS44LTExLjZMNjcuOCw0Ni4zeiBNNjkuNyw0OWw0LDYuMUg2Ng0KCQkJQzY2LjUsNTIuNyw2Ny44LDUwLjYsNjkuNyw0OXogTTQ5LjQsNDEuNGgxMy45bC02LjIsMTIuM0w0OS40LDQxLjR6IE03Ni45LDY4LjVjLTUuNywwLTEwLjQtNC40LTExLTkuOWgxMWMwLjYsMCwxLjItMC4zLDEuNS0wLjkNCgkJCWMwLjMtMC42LDAuMy0xLjItMC4xLTEuOGwtNS44LTguN2MxLjMtMC42LDIuOC0wLjksNC40LTAuOWM2LjEsMCwxMS4xLDUsMTEuMSwxMS4xQzg4LDYzLjUsODMsNjguNSw3Ni45LDY4LjV6Ij48L3BhdGg+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgBikeRack as ReactComponent };","import * as React from \"react\";\r\n\r\nimport { Tooltips, Flipper } from \".\";\r\nimport type { FlipData } from \".\";\r\n\r\n// Workplace Ideas Flip Imports\r\nimport fridge from \"../assets/svg/fridge.svg\";\r\nimport bikeRack from \"../assets/svg/bikeRack.svg\";\r\nimport desk from \"../assets/svg/desk.svg\";\r\nimport kitchenBench from \"../assets/svg/kitchenBench.svg\";\r\nimport meetingRoom from \"../assets/svg/meetingRoom.svg\";\r\nimport microwave from \"../assets/svg/microwave.svg\";\r\nimport noSmoking from \"../assets/svg/noSmoking.svg\";\r\nimport shower from \"../assets/svg/shower.svg\";\r\nimport vendingMachine from \"../assets/svg/vendingMachine.svg\";\r\n\r\nexport const WorkEnvironment: React.FC<{}> = () => {\r\n const workplaceIdeas: FlipData[] = [\r\n {\r\n imgSrc: fridge,\r\n title: \"Fridge\",\r\n description: <>Have an alcohol free fridge.,\r\n },\r\n {\r\n imgSrc: kitchenBench,\r\n title: \"Kitchen bench\",\r\n description: (\r\n <>\r\n If you provide your staff with snacks, skip the biscuits and chocolate\r\n and serve fresh fruit instead.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: desk,\r\n title: \"Desk\",\r\n description: (\r\n <>\r\n Try to encourage staff to get up and move around every 30 minutes,\r\n even if it is just to stretch. You could even introduce sit-stand work\r\n desks, so they can work standing up!\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: meetingRoom,\r\n title: \"Meeting room\",\r\n description: (\r\n <>\r\n Instead of sitting down for meetings, try having a walking meeting\r\n instead or even just standing up.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: bikeRack,\r\n title: \"Bike racks\",\r\n description: (\r\n <>\r\n Bike racks are a convenient way to store bikes and encourage your\r\n workforce to grab a bit of exercise by cycling to work.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: shower,\r\n title: \"Lockers, showers, changing room\",\r\n description: (\r\n <>\r\n If people are cycling or jogging to work then you will need to have\r\n showers, changing room facilities and lockers for storage.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: bikeRack,\r\n title: \"Bike pooling\",\r\n description: (\r\n <>\r\n Having a bike on-site that everyone is free to use will provide a\r\n healthier option to the company car.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: vendingMachine,\r\n title: \"Vending machines\",\r\n description: (\r\n <>\r\n If you have a vending machine at work, make sure you pack it full of\r\n healthy options like dried fruits and nuts.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: microwave,\r\n title: \"Lunch room\",\r\n description: (\r\n <>\r\n Ensure you fit out your lunch area with kitchen utensils, a microwave,\r\n a sandwich press and fridge to ensure there are the facilities\r\n available for staff members to make their own healthy lunch.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: noSmoking,\r\n title: \"Signage\",\r\n description: (\r\n <>\r\n Reinforce the Smoke-free policy through signage or put up signs to\r\n show people the health benefits of using the stairs instead of the\r\n lift.\r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n What does a healthy workplace look like?\r\n

    \r\n

    \r\n 'Workplace environment' refers to the infrastructure and facilities\r\n provided to staff, such as kitchen utensils, showers or a pool bike.\r\n A supportive environment encourages healthy\r\n behaviours by providing employees with the opportunity to make healthy\r\n choices. Creating a healthier workplace doesn't have to be a huge\r\n challenge. There are some small things that you can do within your\r\n workplace that will make a big difference to the overall health and\r\n wellbeing of your workforce.\r\n

    \r\n

    \r\n Your workplace environment can strongly support and reinforce your\r\n health-related policies, education and activities in order to make it\r\n easy for your staff to make healthy choices.\r\n

    \r\n \r\n View ideas for making your workplace a healthier one.\r\n \r\n\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n","var _path, _path2, _path3;\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\nimport * as React from \"react\";\n\nfunction SvgFridge(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fridge_svg__st0\",\n d: \"M63.1 90h-4c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h4c.5 0 .9.4.9.9s-.4.9-.9.9zM35.2 90h-4c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h4c.5 0 .9.4.9.9s-.4.9-.9.9zM25.2 58.3h43.9v1.8H25.2zM39.2 66.1h-8c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h8c.5 0 .9.4.9.9s-.4.9-.9.9zM77.1 54.1h-4c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h4c.5 0 .9.4.9.9s-.4.9-.9.9zM65.1 48.1H25.2c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h39.9c.5 0 .9.4.9.9s-.4.9-.9.9zM65.1 24.1H25.2c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h39.9c.5 0 .9.4.9.9s-.4.9-.9.9zM65.1 36.1H25.2c-.5 0-.9-.4-.9-.9s.4-.9.9-.9h39.9c.5 0 .9.4.9.9s-.4.9-.9.9z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fridge_svg__st0\",\n d: \"M36.2 36.1h-2c-2.5 0-3.9-1.4-3.9-3.9v-5c0-.5.4-.9.9-.9h8c.2 0 .5.1.6.3.2.2.3.4.3.6v5c0 2.5-1.4 3.9-3.9 3.9zm-4.1-8v4.1c0 1.5.6 2.1 2.1 2.1h2c1.5 0 2.1-.6 2.1-2.1v-4.1h-6.2zM44.2 60.1h-10c-2.5 0-3.9-1.4-3.9-3.9v-5c0-.5.4-.9.9-.9h16c.5 0 .9.4.9.9v5c0 2.5-1.4 3.9-3.9 3.9zm-12.1-8v4.1c0 1.5.6 2.1 2.1 2.1h10c1.5 0 2.1-.6 2.1-2.1v-4.1H32.1zM42 24.1h-1.6c-2.3 0-4.1-1.8-4.1-4.1v-2.8c0-.5.4-.9.9-.9h8c.5 0 .9.4.9.9V20c0 2.3-1.9 4.1-4.1 4.1zm-3.9-6V20c0 1.3 1 2.3 2.3 2.3H42c1.3 0 2.3-1 2.3-2.3v-1.9h-6.2zM56.2 48.1h-2c-2.4 0-3.9-1.5-3.9-3.9v-5c0-.5.4-.9.9-.9h8c.5 0 .9.4.9.9v5c0 2.4-1.6 3.9-3.9 3.9zm-4.1-8v4.1c0 1.4.7 2.1 2.1 2.1h2c1.4 0 2.1-.7 2.1-2.1v-4.1h-6.2zM47.2 48.1h-4c-.5 0-.9-.4-.9-.9v-8c0-.5.4-.9.9-.9h4c.5 0 .9.4.9.9v8c0 .5-.4.9-.9.9zm-3.1-1.8h2.2v-6.2h-2.2v6.2zM35.2 48.1h-4c-.5 0-.9-.4-.9-.9v-4c0-.2.1-.5.3-.6l4-4c.3-.3.6-.3 1-.2.3.1.6.5.6.8v8c-.1.5-.5.9-1 .9zm-3.1-1.8h2.2v-4.9l-2.2 2.2v2.7zM56.2 36.1h-10c-2.5 0-3.9-1.4-3.9-3.9v-1c0-.5.4-.9.9-.9h16c.5 0 .9.4.9.9v1c0 2.5-1.5 3.9-3.9 3.9zm-12.1-4c0 1.6.6 2.2 2.1 2.2h10c1.5 0 2.1-.6 2.1-2.1v-.1H44.1zM54 24.1h-1.6c-2.3 0-4.1-1.8-4.1-4.1v-.8c0-.5.4-.9.9-.9h8c.5 0 .9.4.9.9v.8c0 2.3-1.9 4.1-4.1 4.1zm-3.9-4c.1 1.2 1.1 2.2 2.3 2.2H54c1.2 0 2.2-1 2.3-2.2h-6.2zM70.1 60.1h-5.9V8.3h5.9c2.6 0 3.9 1.3 3.9 3.9v43.9c0 2.6-1.4 4-3.9 4zM66 58.3h4.1c1.5 0 2.1-.6 2.1-2.1v-44c0-1.6-.5-2.1-2.1-2.1H66v48.2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"fridge_svg__st0\",\n d: \"M66.1 86H28.2c-2.5 0-3.9-1.4-3.9-3.9V12.2c0-2.5 1.4-3.9 3.9-3.9H66v49.9h4v23.9c0 2.5-1.4 3.9-3.9 3.9zm-1.9-75.9h-36c-1.5 0-2.1.6-2.1 2.1v69.9c0 1.5.6 2.1 2.1 2.1h37.9c1.5 0 2.1-.6 2.1-2.1v-22h-4v-50z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8ZyBpZD0iZnJpZGdlIj4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTYzLjEsOTBoLTRjLTAuNSwwLTAuOS0wLjQtMC45LTAuOWMwLTAuNSwwLjQtMC45LDAuOS0wLjloNGMwLjUsMCwwLjksMC40LDAuOSwwLjlDNjQsODkuNiw2My42LDkwLDYzLjEsOTB6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zNS4yLDkwaC00Yy0wLjUsMC0wLjktMC40LTAuOS0wLjljMC0wLjUsMC40LTAuOSwwLjktMC45aDRjMC41LDAsMC45LDAuNCwwLjksMC45QzM2LjEsODkuNiwzNS43LDkwLDM1LjIsOTANCgkJCXoiPjwvcGF0aD4NCgkJPHJlY3QgeD0iMjUuMiIgeT0iNTguMyIgY2xhc3M9InN0MCIgd2lkdGg9IjQzLjkiIGhlaWdodD0iMS44Ij48L3JlY3Q+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zOS4yLDY2LjFoLThjLTAuNSwwLTAuOS0wLjQtMC45LTAuOWMwLTAuNSwwLjQtMC45LDAuOS0wLjloOGMwLjUsMCwwLjksMC40LDAuOSwwLjkNCgkJCUM0MC4xLDY1LjcsMzkuNyw2Ni4xLDM5LjIsNjYuMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjEsNTQuMWgtNGMtMC41LDAtMC45LTAuNC0wLjktMC45YzAtMC41LDAuNC0wLjksMC45LTAuOWg0YzAuNSwwLDAuOSwwLjQsMC45LDAuOQ0KCQkJQzc4LDUzLjcsNzcuNiw1NC4xLDc3LjEsNTQuMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTY1LjEsNDguMUgyNS4yYy0wLjUsMC0wLjktMC40LTAuOS0wLjljMC0wLjUsMC40LTAuOSwwLjktMC45aDM5LjljMC41LDAsMC45LDAuNCwwLjksMC45DQoJCQlDNjYsNDcuNyw2NS42LDQ4LjEsNjUuMSw0OC4xeiI+PC9wYXRoPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjUuMSwyNC4xSDI1LjJjLTAuNSwwLTAuOS0wLjQtMC45LTAuOWMwLTAuNSwwLjQtMC45LDAuOS0wLjloMzkuOWMwLjUsMCwwLjksMC40LDAuOSwwLjkNCgkJCUM2NiwyMy43LDY1LjYsMjQuMSw2NS4xLDI0LjF6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02NS4xLDM2LjFIMjUuMmMtMC41LDAtMC45LTAuNC0wLjktMC45czAuNC0wLjksMC45LTAuOWgzOS45YzAuNSwwLDAuOSwwLjQsMC45LDAuOVM2NS42LDM2LjEsNjUuMSwzNi4xeiI+PC9wYXRoPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzYuMiwzNi4xaC0yYy0yLjUsMC0zLjktMS40LTMuOS0zLjlsMC01YzAtMC41LDAuNC0wLjksMC45LTAuOWg4YzAuMiwwLDAuNSwwLjEsMC42LDAuMw0KCQkJYzAuMiwwLjIsMC4zLDAuNCwwLjMsMC42djVDNDAuMSwzNC43LDM4LjcsMzYuMSwzNi4yLDM2LjF6IE0zMi4xLDI4LjFsMCw0LjFjMCwxLjUsMC42LDIuMSwyLjEsMi4xaDJjMS41LDAsMi4xLTAuNiwyLjEtMi4xdi00LjENCgkJCUgzMi4xeiI+PC9wYXRoPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDQuMiw2MC4xaC0xMGMtMi41LDAtMy45LTEuNC0zLjktMy45bDAtNWMwLTAuNSwwLjQtMC45LDAuOS0wLjloMTZjMC41LDAsMC45LDAuNCwwLjksMC45djUNCgkJCUM0OC4xLDU4LjcsNDYuNyw2MC4xLDQ0LjIsNjAuMXogTTMyLjEsNTIuMWwwLDQuMWMwLDEuNSwwLjYsMi4xLDIuMSwyLjFoMTBjMS41LDAsMi4xLTAuNiwyLjEtMi4xdi00LjFIMzIuMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTQyLDI0LjFoLTEuNmMtMi4zLDAtNC4xLTEuOC00LjEtNC4xdi0yLjhjMC0wLjUsMC40LTAuOSwwLjktMC45aDhjMC41LDAsMC45LDAuNCwwLjksMC45VjIwDQoJCQlDNDYuMSwyMi4zLDQ0LjIsMjQuMSw0MiwyNC4xeiBNMzguMSwxOC4xVjIwYzAsMS4zLDEsMi4zLDIuMywyLjNINDJjMS4zLDAsMi4zLTEsMi4zLTIuM3YtMS45TDM4LjEsMTguMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU2LjIsNDguMWgtMmMtMi40LDAtMy45LTEuNS0zLjktMy45di01YzAtMC41LDAuNC0wLjksMC45LTAuOWg4YzAuNSwwLDAuOSwwLjQsMC45LDAuOXY1DQoJCQlDNjAuMSw0Ni42LDU4LjUsNDguMSw1Ni4yLDQ4LjF6IE01Mi4xLDQwLjF2NC4xYzAsMS40LDAuNywyLjEsMi4xLDIuMWgyYzEuNCwwLDIuMS0wLjcsMi4xLTIuMXYtNC4xSDUyLjF6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00Ny4yLDQ4LjFoLTRjLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtOGMwLTAuNSwwLjQtMC45LDAuOS0wLjloNGMwLjUsMCwwLjksMC40LDAuOSwwLjl2OA0KCQkJQzQ4LjEsNDcuNyw0Ny43LDQ4LjEsNDcuMiw0OC4xeiBNNDQuMSw0Ni4zaDIuMnYtNi4yaC0yLjJWNDYuM3oiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1LjIsNDguMWgtNGMtMC41LDAtMC45LTAuNC0wLjktMC45di00YzAtMC4yLDAuMS0wLjUsMC4zLTAuNmw0LTRjMC4zLTAuMywwLjYtMC4zLDEtMC4yDQoJCQljMC4zLDAuMSwwLjYsMC41LDAuNiwwLjh2OEMzNi4xLDQ3LjcsMzUuNyw0OC4xLDM1LjIsNDguMXogTTMyLjEsNDYuM2gyLjJ2LTQuOWwtMi4yLDIuMlY0Ni4zeiI+PC9wYXRoPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTYuMiwzNi4xaC0xMGMtMi41LDAtMy45LTEuNC0zLjktMy45di0xYzAtMC41LDAuNC0wLjksMC45LTAuOWgxNmMwLjUsMCwwLjksMC40LDAuOSwwLjl2MQ0KCQkJQzYwLjEsMzQuNyw1OC42LDM2LjEsNTYuMiwzNi4xeiBNNDQuMSwzMi4xTDQ0LjEsMzIuMWMwLDEuNiwwLjYsMi4yLDIuMSwyLjJoMTBjMS41LDAsMi4xLTAuNiwyLjEtMi4xdi0wLjFINDQuMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU0LDI0LjFoLTEuNmMtMi4zLDAtNC4xLTEuOC00LjEtNC4xdi0wLjhjMC0wLjUsMC40LTAuOSwwLjktMC45aDhjMC41LDAsMC45LDAuNCwwLjksMC45VjIwDQoJCQlDNTguMSwyMi4zLDU2LjIsMjQuMSw1NCwyNC4xeiBNNTAuMSwyMC4xYzAuMSwxLjIsMS4xLDIuMiwyLjMsMi4ySDU0YzEuMiwwLDIuMi0xLDIuMy0yLjJINTAuMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTcwLjEsNjAuMWwtNS45LDBWOC4zbDUuOSwwYzIuNiwwLDMuOSwxLjMsMy45LDMuOXY0My45Qzc0LDU4LjcsNzIuNiw2MC4xLDcwLjEsNjAuMXogTTY2LDU4LjNsNC4xLDANCgkJCWMxLjUsMCwyLjEtMC42LDIuMS0yLjFWMTIuMmMwLTEuNi0wLjUtMi4xLTIuMS0yLjFsLTQuMSwwVjU4LjN6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02Ni4xLDg2SDI4LjJjLTIuNSwwLTMuOS0xLjQtMy45LTMuOVYxMi4yYzAtMi41LDEuNC0zLjksMy45LTMuOWwzNy44LDB2NDkuOWg0djIzLjlDNzAsODQuNiw2OC42LDg2LDY2LjEsODYNCgkJCXogTTY0LjIsMTAuMWwtMzYsMGMtMS41LDAtMi4xLDAuNi0yLjEsMi4xdjY5LjljMCwxLjUsMC42LDIuMSwyLjEsMi4xaDM3LjljMS41LDAsMi4xLTAuNiwyLjEtMi4xVjYwLjFoLTRMNjQuMiwxMC4xeiI+PC9wYXRoPg0KCTwvZz4NCjwvc3ZnPg==\";\nexport { SvgFridge as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10;\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\nimport * as React from \"react\";\n\nfunction SvgKitchenBench(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M24.1 82.2H7.6V54.7h16.5v27.5zM8.9 80.9h13.9V56H8.9v24.9z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M39.2 82.2H22.8V54.7h16.5l-.1 27.5zm-15.1-1.3H38V56H24.1v24.9z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M92.4 62.6H37.9v-8h54.5v8zm-53.2-1.2h51.9V56H39.2v5.4z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M64.6 72.4H37.9v-11h26.6l.1 11zm-25.4-1.3h24v-8.5h-24v8.5z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M64.6 82.2H37.9V71.1h26.6l.1 11.1zm-25.4-1.3h24v-8.5h-24v8.5z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M92.4 72.4H63.3v-11h29.2v11zm-27.8-1.3h26.6v-8.5H64.6v8.5z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M92.4 82.2H63.3V71.1h29.2v11.1zm-27.8-1.3h26.6v-8.5H64.6v8.5zM92.4 35.5H37.9v-8h54.5v8zm-53.2-1.3h51.9v-5.4H39.2v5.4z\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st0\",\n d: \"M74.1 28.3H53.7V15.6h20.4v12.7zM55 27h17.8V16.9H55V27zM37.9 16.2h1.3v11.9h-1.3zM91.2 16.2h1.3v11.9h-1.3zM50.7 55.4c-.1-.8-.7-8.3 1.5-10.1.5-.4 1.1-.6 1.8-.4.9 0 2.5.7 2.9 2.9l-1.2.2c-.4-1.8-1.7-1.9-1.8-1.9h-.2c-.3-.1-.5 0-.7.1-1.3 1.1-1.3 6.1-1.1 9.1l-1.2.1zM45.4 52.1H48v1.3h-2.6zM54.4 52.1H57v1.3h-2.6z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st3\",\n d: \"M71.6 55.4h10.3l2.6-5.6H69zM83.1 49.4c0-1.2-1-2.2-2.2-2.2s-2.2 1-2.2 2.2M72.5 49.5c-.3-.5-.4-1-.4-1.6 0-1.7 1.4-3.1 3.1-3.1s3.1 1.4 3.1 3.1c0 .6-.2 1.3-.5 1.8\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"kitchenBench_svg__st3\",\n d: \"M81.1 47.3c.4-1.3-.2-2.6-1.5-3.1-.9-.3-1.8-.1-2.4.5\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTI0LjEsODIuMkg3LjZWNTQuN2gxNi41VjgyLjJ6IE04LjksODAuOWgxMy45VjU2SDguOVY4MC45eiI+PC9wYXRoPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzkuMiw4Mi4ySDIyLjhWNTQuN2gxNi41TDM5LjIsODIuMnogTTI0LjEsODAuOWgxMy45VjU2SDI0LjFWODAuOXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTkyLjQsNjIuNkgzNy45di04aDU0LjVMOTIuNCw2Mi42TDkyLjQsNjIuNnogTTM5LjIsNjEuNGg1MS45VjU2SDM5LjJWNjEuNHoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTY0LjYsNzIuNEgzNy45VjYxLjRoMjYuNkw2NC42LDcyLjRMNjQuNiw3Mi40eiBNMzkuMiw3MS4xaDI0di04LjVoLTI0VjcxLjF6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02NC42LDgyLjJIMzcuOVY3MS4xaDI2LjZMNjQuNiw4Mi4yTDY0LjYsODIuMnogTTM5LjIsODAuOWgyNHYtOC41aC0yNFY4MC45eiI+PC9wYXRoPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTIuNCw3Mi40SDYzLjNWNjEuNGgyOS4yVjcyLjR6IE02NC42LDcxLjFoMjYuNnYtOC41SDY0LjZWNzEuMXoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTkyLjQsODIuMkg2My4zVjcxLjFoMjkuMlY4Mi4yeiBNNjQuNiw4MC45aDI2LjZ2LTguNUg2NC42VjgwLjl6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik05Mi40LDM1LjVIMzcuOXYtOGg1NC41TDkyLjQsMzUuNUw5Mi40LDM1LjV6IE0zOS4yLDM0LjJoNTEuOXYtNS40SDM5LjJWMzQuMnoiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc0LjEsMjguM0g1My43VjE1LjZoMjAuNEw3NC4xLDI4LjNMNzQuMSwyOC4zeiBNNTUsMjdoMTcuOFYxNi45SDU1VjI3eiI+PC9wYXRoPg0KCQk8cmVjdCB4PSIzNy45IiB5PSIxNi4yIiBjbGFzcz0ic3QwIiB3aWR0aD0iMS4zIiBoZWlnaHQ9IjExLjkiPjwvcmVjdD4NCgkJPHJlY3QgeD0iOTEuMiIgeT0iMTYuMiIgY2xhc3M9InN0MCIgd2lkdGg9IjEuMyIgaGVpZ2h0PSIxMS45Ij48L3JlY3Q+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01MC43LDU1LjRjLTAuMS0wLjgtMC43LTguMywxLjUtMTAuMWMwLjUtMC40LDEuMS0wLjYsMS44LTAuNGMwLjksMCwyLjUsMC43LDIuOSwyLjlMNTUuNyw0OA0KCQkJYy0wLjQtMS44LTEuNy0xLjktMS44LTEuOWwtMC4yLDBjLTAuMy0wLjEtMC41LDAtMC43LDAuMWMtMS4zLDEuMS0xLjMsNi4xLTEuMSw5LjFMNTAuNyw1NS40eiI+PC9wYXRoPg0KCQk8cmVjdCB4PSI0NS40IiB5PSI1Mi4xIiBjbGFzcz0ic3QwIiB3aWR0aD0iMi42IiBoZWlnaHQ9IjEuMyI+PC9yZWN0Pg0KCQk8cmVjdCB4PSI1NC40IiB5PSI1Mi4xIiBjbGFzcz0ic3QwIiB3aWR0aD0iMi42IiBoZWlnaHQ9IjEuMyI+PC9yZWN0Pg0KCQk8cG9seWdvbiBjbGFzcz0ic3QzIiBwb2ludHM9IjcxLjYsNTUuNCA4MS45LDU1LjQgODQuNSw0OS44IDY5LDQ5LjggCSI+PC9wb2x5Z29uPg0KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNODMuMSw0OS40YzAtMS4yLTEtMi4yLTIuMi0yLjJzLTIuMiwxLTIuMiwyLjIiPjwvcGF0aD4NCgkJPHBhdGggY2xhc3M9InN0MyIgZD0iTTcyLjUsNDkuNWMtMC4zLTAuNS0wLjQtMS0wLjQtMS42YzAtMS43LDEuNC0zLjEsMy4xLTMuMXMzLjEsMS40LDMuMSwzLjFjMCwwLjYtMC4yLDEuMy0wLjUsMS44Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik04MS4xLDQ3LjNjMC40LTEuMy0wLjItMi42LTEuNS0zLjFjLTAuOS0wLjMtMS44LTAuMS0yLjQsMC41Ij48L3BhdGg+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgKitchenBench as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgDesk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"desk_svg__st0\",\n d: \"M89.5 50.3H74.7c.1-.2.1-.3.1-.5v-.2c0-.8-.7-1.5-1.5-1.5H71c-.8 0-1.5.7-1.5 1.5v.2c0 .2 0 .4.1.5H54.7v-5.1h13.6c.8 0 1.5-.7 1.5-1.5v-27c0-.8-.7-1.5-1.5-1.5H31.7c-.8 0-1.5.7-1.5 1.5v27c0 .8.7 1.5 1.5 1.5h13.6v5.1h-3.6v-1.5H20.5v1.5h-10c-.9 0-1.7.7-1.7 1.7v1c0 .8.5 1.4 1.2 1.6V81.8c0 .9.7 1.7 1.7 1.7h.9c.9 0 1.7-.7 1.7-1.7V59.1h71.8v22.7c0 .9.7 1.7 1.7 1.7h.9c.9 0 1.7-.7 1.7-1.7V55.2c0-.3-.1-.5-.2-.7.7-.2 1.1-.8 1.1-1.6v-1c-.2-.8-.9-1.6-1.8-1.6zm-19-.5v-.2c0-.3.2-.5.5-.5h2.2c.3 0 .5.2.5.5v.2c0 .3-.2.5-.5.5H71c-.2 0-.5-.2-.5-.5zm-38.8-5.6c-.3 0-.5-.2-.5-.5v-27c0-.3.2-.5.5-.5h36.6c.3 0 .5.2.5.5v27c0 .3-.2.5-.5.5H31.7zm14.6 1h7.3v5.1h-7.3v-5.1zm-24.8 4.6h19.2v.5H21.5v-.5zm-8.3 32c0 .3-.3.6-.6.6h-.9c-.3 0-.6-.3-.6-.6V55.2c0-.3.3-.6.6-.6h.9c.3 0 .6.3.6.6v26.6zm1-23.7v-2.8c0-.2 0-.4-.1-.6h72c-.1.2-.1.4-.1.6v2.8H14.2zm74.9 23.7c0 .3-.3.6-.6.6h-.9c-.3 0-.6-.3-.6-.6V55.2c0-.3.3-.6.6-.6h.9c.3 0 .6.3.6.6v26.6zm1-28.8c0 .3-.3.6-.6.6h-79c-.3 0-.6-.3-.6-.6v-1c0-.3.3-.6.6-.6h78.9c.3 0 .6.3.6.6v1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"desk_svg__st0\",\n d: \"M66.7 36.4V19c0-.8-.7-1.5-1.5-1.5H34.8c-.8 0-1.5.7-1.5 1.5v17.4c0 .8.7 1.5 1.5 1.5h30.4c.8 0 1.5-.7 1.5-1.5zm-32.3 0V19c0-.2.2-.4.4-.4h30.4c.2 0 .4.2.4.4v17.4c0 .2-.2.4-.4.4H34.8c-.2.1-.4-.1-.4-.4zM50.3 39.2h-.6c-.8 0-1.5.7-1.5 1.5v.6c0 .8.7 1.5 1.5 1.5h.6c.8 0 1.5-.7 1.5-1.5v-.6c0-.8-.7-1.5-1.5-1.5zm.5 2.1c0 .3-.2.5-.5.5h-.6c-.3 0-.5-.2-.5-.5v-.6c0-.3.2-.5.5-.5h.6c.3 0 .5.2.5.5v.6z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTg5LjUsNTAuM0g3NC43YzAuMS0wLjIsMC4xLTAuMywwLjEtMC41di0wLjJjMC0wLjgtMC43LTEuNS0xLjUtMS41SDcxYy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MC4yDQoJCQljMCwwLjIsMCwwLjQsMC4xLDAuNUg1NC43di01LjFoMTMuNmMwLjgsMCwxLjUtMC43LDEuNS0xLjV2LTI3YzAtMC44LTAuNy0xLjUtMS41LTEuNUgzMS43Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MjcNCgkJCWMwLDAuOCwwLjcsMS41LDEuNSwxLjVoMTMuNnY1LjFoLTMuNnYtMS41SDIwLjV2MS41aC0xMGMtMC45LDAtMS43LDAuNy0xLjcsMS43djFjMCwwLjgsMC41LDEuNCwxLjIsMS42QzEwLDU0LjgsMTAsNTUsMTAsNTUuMg0KCQkJdjI2LjZjMCwwLjksMC43LDEuNywxLjcsMS43aDAuOWMwLjksMCwxLjctMC43LDEuNy0xLjdWNTkuMWg3MS44djIyLjdjMCwwLjksMC43LDEuNywxLjcsMS43aDAuOWMwLjksMCwxLjctMC43LDEuNy0xLjdWNTUuMg0KCQkJYzAtMC4zLTAuMS0wLjUtMC4yLTAuN2MwLjctMC4yLDEuMS0wLjgsMS4xLTEuNnYtMUM5MS4xLDUxLjEsOTAuNCw1MC4zLDg5LjUsNTAuM3ogTTcwLjUsNDkuOHYtMC4yYzAtMC4zLDAuMi0wLjUsMC41LTAuNWgyLjINCgkJCWMwLjMsMCwwLjUsMC4yLDAuNSwwLjV2MC4yYzAsMC4zLTAuMiwwLjUtMC41LDAuNUg3MUM3MC44LDUwLjMsNzAuNSw1MC4xLDcwLjUsNDkuOHogTTMxLjcsNDQuMmMtMC4zLDAtMC41LTAuMi0wLjUtMC41di0yNw0KCQkJYzAtMC4zLDAuMi0wLjUsMC41LTAuNWgzNi42YzAuMywwLDAuNSwwLjIsMC41LDAuNXYyN2MwLDAuMy0wLjIsMC41LTAuNSwwLjVINTQuN2gtOS40TDMxLjcsNDQuMkwzMS43LDQ0LjJ6IE00Ni4zLDQ1LjJoNy4zdjUuMQ0KCQkJaC03LjNWNDUuMnogTTIxLjUsNDkuOGgxOS4ydjAuNUgyMS41VjQ5Ljh6IE0xMy4yLDgxLjhjMCwwLjMtMC4zLDAuNi0wLjYsMC42aC0wLjljLTAuMywwLTAuNi0wLjMtMC42LTAuNlY1NS4yDQoJCQljMC0wLjMsMC4zLTAuNiwwLjYtMC42aDAuOWMwLjMsMCwwLjYsMC4zLDAuNiwwLjZMMTMuMiw4MS44TDEzLjIsODEuOHogTTE0LjIsNTguMXYtMi44YzAtMC4yLDAtMC40LTAuMS0wLjZoNzINCgkJCWMtMC4xLDAuMi0wLjEsMC40LTAuMSwwLjZ2Mi44SDE0LjJ6IE04OS4xLDgxLjhjMCwwLjMtMC4zLDAuNi0wLjYsMC42aC0wLjljLTAuMywwLTAuNi0wLjMtMC42LTAuNlY1NS4yYzAtMC4zLDAuMy0wLjYsMC42LTAuNg0KCQkJaDAuOWMwLjMsMCwwLjYsMC4zLDAuNiwwLjZWODEuOHogTTkwLjEsNTNjMCwwLjMtMC4zLDAuNi0wLjYsMC42aC0wLjloLTAuOUgxMi41aC0wLjloLTEuMWMtMC4zLDAtMC42LTAuMy0wLjYtMC42di0xDQoJCQljMC0wLjMsMC4zLTAuNiwwLjYtMC42aDEwaDIxLjJoMy42aDkuNEg3MWgyLjJoMTYuMmMwLjMsMCwwLjYsMC4zLDAuNiwwLjZWNTN6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02Ni43LDM2LjRWMTljMC0wLjgtMC43LTEuNS0xLjUtMS41SDM0LjhjLTAuOCwwLTEuNSwwLjctMS41LDEuNXYxNy40YzAsMC44LDAuNywxLjUsMS41LDEuNWgzMC40DQoJCQlDNjYsMzcuOSw2Ni43LDM3LjIsNjYuNywzNi40eiBNMzQuNCwzNi40VjE5YzAtMC4yLDAuMi0wLjQsMC40LTAuNGgzMC40YzAuMiwwLDAuNCwwLjIsMC40LDAuNHYxNy40YzAsMC4yLTAuMiwwLjQtMC40LDAuNEgzNC44DQoJCQlDMzQuNiwzNi45LDM0LjQsMzYuNywzNC40LDM2LjR6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01MC4zLDM5LjJoLTAuNmMtMC44LDAtMS41LDAuNy0xLjUsMS41djAuNmMwLDAuOCwwLjcsMS41LDEuNSwxLjVoMC42YzAuOCwwLDEuNS0wLjcsMS41LTEuNXYtMC42DQoJCQlDNTEuOCwzOS45LDUxLjEsMzkuMiw1MC4zLDM5LjJ6IE01MC44LDQxLjNjMCwwLjMtMC4yLDAuNS0wLjUsMC41aC0wLjZjLTAuMywwLTAuNS0wLjItMC41LTAuNXYtMC42YzAtMC4zLDAuMi0wLjUsMC41LTAuNWgwLjYNCgkJCWMwLjMsMCwwLjUsMC4yLDAuNSwwLjVWNDEuM3oiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgDesk as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgMeetingRoom(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"meetingRoom_svg__st0\",\n d: \"M82.4 38.9c1.2-1.9 1.9-4.1 1.9-6.1 0-4.4-3.5-7.9-7.9-7.9s-7.9 3.5-7.9 7.9c0 1.8.6 3.8 1.6 5.6-1 .5-2 1.1-2.7 1.8l-.9-4c-.2-.7-.8-1.2-1.5-1.2h-3.6c-.1-4-2.6-7.5-6.1-9.1.9-1.7 1.4-3.5 1.4-5.1 0-4.4-3.5-7.9-7.9-7.9s-7.9 3.5-7.9 7.9c0 1.8.6 3.8 1.6 5.5-3.1 1.7-5.2 4.9-5.3 8.7h-3c-.7 0-1.4.5-1.5 1.2l-.8 3.5c-.6-.5-1.4-.9-2.1-1.3 1-1.8 1.6-3.8 1.6-5.6 0-4.4-3.5-7.9-7.9-7.9s-7.9 3.5-7.9 7.9c0 2 .7 4.2 1.9 6.1-2.7 1.9-4.4 4.9-4.4 8.4v19.4c0 .9.7 1.5 1.5 1.5h10.9l-.5 2.5c-.1.5 0 .9.3 1.3s.7.6 1.2.6H35c-1 1.9-1.6 4.1-1.6 6.4v5.2c0 .9.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V79c0-5.7 4.6-10.3 10.3-10.3h5.1c5.7 0 10.3 4.6 10.3 10.3v5.2c0 .9.7 1.5 1.5 1.5.9 0 1.5-.7 1.5-1.5V79c0-2.3-.6-4.5-1.6-6.4h9.1c.5 0 .9-.2 1.2-.6.3-.4.4-.8.3-1.3l-.5-2.5h11.6c.9 0 1.5-.7 1.5-1.5V47.3c.1-3.5-1.6-6.6-4.3-8.4zm-10.7-6.1c0-2.7 2.2-4.8 4.8-4.8s4.8 2.2 4.8 4.8c0 1.5-.7 3.3-1.6 4.7-1-.3-2-.5-3-.5h-.8c-.9 0-1.7.1-2.6.3-1-1.3-1.6-3.1-1.6-4.5zM44 20.8c0-2.7 2.2-4.8 4.8-4.8 2.7 0 4.8 2.2 4.8 4.8 0 1.3-.5 3-1.4 4.3-.4 0-.7-.1-1.1-.1h-3.7c-.7 0-1.3.1-2 .2-.8-1.3-1.4-3-1.4-4.4zm3.5 7.3h3.7c3.8 0 7 3.1 7.1 6.9h-18c.2-3.8 3.3-6.9 7.2-6.9zm-28.8 4.7c0-2.7 2.2-4.8 4.8-4.8 2.7 0 4.8 2.2 4.8 4.8 0 1.4-.6 3.2-1.5 4.5-.8-.1-1.7-.3-2.6-.3h-.8c-1.1 0-2.1.2-3 .5-1-1.4-1.7-3.2-1.7-4.7zm-2.5 32.3V47.3c0-3.9 3.2-7.2 7.2-7.2h.8c2.6 0 5.6 1.4 6.9 3.1L26.2 65h-10zm30.6.4c-1 0-2 .1-3 .3-1.4-2-2.3-4.6-2.3-6.7 0-3.9 3.2-7.1 7.1-7.1 3.9 0 7.1 3.2 7.1 7.1 0 2-.8 4.5-2.2 6.5-.6-.1-1.1-.1-1.7-.1h-5zm14.6 3.9c-1.3-1.3-2.9-2.3-4.6-3 1.3-2.3 2.1-4.9 2.1-7.3 0-5.6-4.6-10.2-10.2-10.2s-10.2 4.6-10.2 10.2c0 2.5.9 5.4 2.4 7.8-1.3.7-2.5 1.5-3.5 2.5h-8.8l7-31.4h28.3l7 31.4h-9.5zm22.4-4.3H73L68.3 44c.1-.1.2-.2.2-.3 1.1-2 4.4-3.6 7.2-3.6h.8c3.9 0 7.2 3.2 7.2 7.2l.1 17.8z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNODIuNCwzOC45YzEuMi0xLjksMS45LTQuMSwxLjktNi4xYzAtNC40LTMuNS03LjktNy45LTcuOXMtNy45LDMuNS03LjksNy45YzAsMS44LDAuNiwzLjgsMS42LDUuNg0KCQljLTEsMC41LTIsMS4xLTIuNywxLjhsLTAuOS00Yy0wLjItMC43LTAuOC0xLjItMS41LTEuMmgtMy42Yy0wLjEtNC0yLjYtNy41LTYuMS05LjFjMC45LTEuNywxLjQtMy41LDEuNC01LjFjMC00LjQtMy41LTcuOS03LjktNy45DQoJCXMtNy45LDMuNS03LjksNy45YzAsMS44LDAuNiwzLjgsMS42LDUuNWMtMy4xLDEuNy01LjIsNC45LTUuMyw4LjdoLTNjLTAuNywwLTEuNCwwLjUtMS41LDEuMmwtMC44LDMuNWMtMC42LTAuNS0xLjQtMC45LTIuMS0xLjMNCgkJYzEtMS44LDEuNi0zLjgsMS42LTUuNmMwLTQuNC0zLjUtNy45LTcuOS03LjljLTQuNCwwLTcuOSwzLjUtNy45LDcuOWMwLDIsMC43LDQuMiwxLjksNi4xYy0yLjcsMS45LTQuNCw0LjktNC40LDguNHYxOS40DQoJCWMwLDAuOSwwLjcsMS41LDEuNSwxLjVoMTAuOUwyNSw3MC43Yy0wLjEsMC41LDAsMC45LDAuMywxLjNjMC4zLDAuNCwwLjcsMC42LDEuMiwwLjZIMzVjLTEsMS45LTEuNiw0LjEtMS42LDYuNHY1LjINCgkJYzAsMC45LDAuNywxLjUsMS41LDEuNXMxLjUtMC43LDEuNS0xLjV2LTUuMmMwLTUuNyw0LjYtMTAuMywxMC4zLTEwLjNoNS4xYzUuNywwLDEwLjMsNC42LDEwLjMsMTAuM3Y1LjJjMCwwLjksMC43LDEuNSwxLjUsMS41DQoJCWMwLjksMCwxLjUtMC43LDEuNS0xLjV2LTUuMmMwLTIuMy0wLjYtNC41LTEuNi02LjRoOS4xYzAuNSwwLDAuOS0wLjIsMS4yLTAuNmMwLjMtMC40LDAuNC0wLjgsMC4zLTEuM2wtMC41LTIuNWgxMS42DQoJCWMwLjksMCwxLjUtMC43LDEuNS0xLjVWNDcuM0M4Ni44LDQzLjgsODUuMSw0MC43LDgyLjQsMzguOXogTTcxLjcsMzIuOGMwLTIuNywyLjItNC44LDQuOC00LjhzNC44LDIuMiw0LjgsNC44DQoJCWMwLDEuNS0wLjcsMy4zLTEuNiw0LjdjLTEtMC4zLTItMC41LTMtMC41aC0wLjhjLTAuOSwwLTEuNywwLjEtMi42LDAuM0M3Mi4zLDM2LDcxLjcsMzQuMiw3MS43LDMyLjh6IE00NCwyMC44DQoJCWMwLTIuNywyLjItNC44LDQuOC00LjhjMi43LDAsNC44LDIuMiw0LjgsNC44YzAsMS4zLTAuNSwzLTEuNCw0LjNjLTAuNCwwLTAuNy0wLjEtMS4xLTAuMWgtMy43Yy0wLjcsMC0xLjMsMC4xLTIsMC4yDQoJCUM0NC42LDIzLjksNDQsMjIuMiw0NCwyMC44eiBNNDcuNSwyOC4xaDMuN2MzLjgsMCw3LDMuMSw3LjEsNi45aC0xOEM0MC41LDMxLjIsNDMuNiwyOC4xLDQ3LjUsMjguMXogTTE4LjcsMzIuOA0KCQljMC0yLjcsMi4yLTQuOCw0LjgtNC44YzIuNywwLDQuOCwyLjIsNC44LDQuOGMwLDEuNC0wLjYsMy4yLTEuNSw0LjVDMjYsMzcuMiwyNS4xLDM3LDI0LjIsMzdoLTAuOGMtMS4xLDAtMi4xLDAuMi0zLDAuNQ0KCQlDMTkuNCwzNi4xLDE4LjcsMzQuMywxOC43LDMyLjh6IE0xNi4yLDY1LjFWNDcuM2MwLTMuOSwzLjItNy4yLDcuMi03LjJoMC44YzIuNiwwLDUuNiwxLjQsNi45LDMuMWwtNC45LDIxLjhIMTYuMnogTTQ2LjgsNjUuNQ0KCQljLTEsMC0yLDAuMS0zLDAuM2MtMS40LTItMi4zLTQuNi0yLjMtNi43YzAtMy45LDMuMi03LjEsNy4xLTcuMWMzLjksMCw3LjEsMy4yLDcuMSw3LjFjMCwyLTAuOCw0LjUtMi4yLDYuNQ0KCQljLTAuNi0wLjEtMS4xLTAuMS0xLjctMC4xTDQ2LjgsNjUuNUw0Ni44LDY1LjV6IE02MS40LDY5LjRjLTEuMy0xLjMtMi45LTIuMy00LjYtM2MxLjMtMi4zLDIuMS00LjksMi4xLTcuMw0KCQljMC01LjYtNC42LTEwLjItMTAuMi0xMC4yYy01LjYsMC0xMC4yLDQuNi0xMC4yLDEwLjJjMCwyLjUsMC45LDUuNCwyLjQsNy44Yy0xLjMsMC43LTIuNSwxLjUtMy41LDIuNWgtOC44bDctMzEuNGgyOC4zbDcsMzEuNA0KCQlMNjEuNCw2OS40TDYxLjQsNjkuNHogTTgzLjgsNjUuMUg3M0w2OC4zLDQ0YzAuMS0wLjEsMC4yLTAuMiwwLjItMC4zYzEuMS0yLDQuNC0zLjYsNy4yLTMuNmgwLjhjMy45LDAsNy4yLDMuMiw3LjIsNy4yTDgzLjgsNjUuMQ0KCQlMODMuOCw2NS4xeiI+PC9wYXRoPg0KPC9zdmc+\";\nexport { SvgMeetingRoom as ReactComponent };","var _path, _path2, _path3, _path4, _path5, _path6;\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\nimport * as React from \"react\";\n\nfunction SvgShower(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"shower_svg__st0\",\n d: \"M40.3 60.7c-6.4 0-11.6-5.2-11.6-11.6 0-6.4 5.2-11.6 11.6-11.6 6.4 0 11.6 5.2 11.6 11.6 0 6.4-5.2 11.6-11.6 11.6zm0-21.5c-5.4 0-9.8 4.4-9.8 9.8s4.4 9.8 9.8 9.8 9.8-4.4 9.8-9.8c0-5.3-4.4-9.8-9.8-9.8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"shower_svg__st0\",\n d: \"M22.5 89.2c-.5 0-.9-.4-.9-.9V66.9c0-2.3 2.2-4.5 4.5-4.5h9.8v-2.7c0-.5.4-.9.9-.9s.9.4.9.9v3.6c0 .5-.4.9-.9.9H26c-1.3 0-2.7 1.4-2.7 2.7v21.4c0 .5-.4.9-.8.9zM58.1 89.2c-.5 0-.9-.4-.9-.9V66.9c0-1.3-1.4-2.7-2.7-2.7H43.9c-.5 0-.9-.4-.9-.9v-3.6c0-.5.4-.9.9-.9s.9.4.9.9v2.7h9.8c2.3 0 4.5 2.2 4.5 4.5v21.4c-.1.5-.5.9-1 .9z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"shower_svg__st0\",\n d: \"M30.4 89.2c-.5 0-.9-.3-.9-.6V75.9c0-.3.4-.6.9-.6s.9.3.9.6v12.7c0 .4-.4.6-.9.6zM50.4 89.2c-.5 0-.9-.3-.9-.6V75.9c0-.3.4-.6.9-.6s.9.3.9.6v12.7c0 .4-.4.6-.9.6zM80.1 89.2c-.5 0-1-.4-1-1V11.6H41.4v2.9c0 .5-.4 1-1 1s-1-.4-1-1v-3.8c0-.5.4-1 1-1h39.7c.5 0 1 .4 1 1v77.6c-.1.5-.5.9-1 .9z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"shower_svg__st0\",\n d: \"M48.3 23.6H32.5c-.5 0-1-.4-1-1 0-.5.4-1 1-1h15.9c.5 0 1 .4 1 1-.1.5-.5 1-1.1 1z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"shower_svg__st0\",\n d: \"M32.5 23.6c-.5 0-1-.4-1-1 0-4.9 4-8.9 8.9-8.9.5 0 1 .4 1 1s-.4 1-1 1c-3.8 0-6.9 3.1-6.9 6.9 0 .5-.5 1-1 1z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"shower_svg__st0\",\n d: \"M48.3 23.6c-.5 0-1-.4-1-1 0-3.8-3.1-6.9-6.9-6.9-.5 0-1-.4-1-1s.4-1 1-1c4.9 0 8.9 4 8.9 8.9 0 .5-.4 1-1 1zM31.5 28.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1s1 .4 1 1v2c0 .6-.5 1-1 1zM31.5 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1s1 .4 1 1v2c0 .5-.5 1-1 1zM27.5 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1 .5 0 1 .4 1 1v2c0 .5-.4 1-1 1zM35.4 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1s1 .4 1 1v2c0 .5-.4 1-1 1zM39.4 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1 .5 0 1 .4 1 1v2c0 .5-.4 1-1 1zM43.4 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1 .5 0 1 .4 1 1v2c0 .5-.5 1-1 1zM47.3 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1s1 .4 1 1v2c0 .5-.4 1-1 1zM51.3 34.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1 .5 0 1 .4 1 1v2c0 .5-.4 1-1 1zM35.4 28.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1s1 .4 1 1v2c0 .6-.4 1-1 1zM39.4 28.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1 .5 0 1 .4 1 1v2c0 .6-.4 1-1 1zM43.4 28.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1 .5 0 1 .4 1 1v2c0 .6-.5 1-1 1zM47.3 28.5c-.5 0-1-.4-1-1v-2c0-.5.4-1 1-1s1 .4 1 1v2c0 .6-.4 1-1 1z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDAuMyw2MC43Yy02LjQsMC0xMS42LTUuMi0xMS42LTExLjZjMC02LjQsNS4yLTExLjYsMTEuNi0xMS42YzYuNCwwLDExLjYsNS4yLDExLjYsMTEuNg0KCQlDNTEuOSw1NS41LDQ2LjcsNjAuNyw0MC4zLDYwLjd6IE00MC4zLDM5LjJjLTUuNCwwLTkuOCw0LjQtOS44LDkuOGMwLDUuNCw0LjQsOS44LDkuOCw5LjhzOS44LTQuNCw5LjgtOS44DQoJCUM1MC4xLDQzLjcsNDUuNywzOS4yLDQwLjMsMzkuMnoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjIuNSw4OS4yYy0wLjUsMC0wLjktMC40LTAuOS0wLjlWNjYuOWMwLTIuMywyLjItNC41LDQuNS00LjVoOS44di0yLjdjMC0wLjUsMC40LTAuOSwwLjktMC45DQoJCWMwLjUsMCwwLjksMC40LDAuOSwwLjl2My42YzAsMC41LTAuNCwwLjktMC45LDAuOUgyNmMtMS4zLDAtMi43LDEuNC0yLjcsMi43djIxLjRDMjMuMyw4OC44LDIyLjksODkuMiwyMi41LDg5LjJ6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU4LjEsODkuMmMtMC41LDAtMC45LTAuNC0wLjktMC45VjY2LjljMC0xLjMtMS40LTIuNy0yLjctMi43SDQzLjljLTAuNSwwLTAuOS0wLjQtMC45LTAuOXYtMy42DQoJCWMwLTAuNSwwLjQtMC45LDAuOS0wLjljMC41LDAsMC45LDAuNCwwLjksMC45djIuN2g5LjhjMi4zLDAsNC41LDIuMiw0LjUsNC41djIxLjRDNTksODguOCw1OC42LDg5LjIsNTguMSw4OS4yeiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zMC40LDg5LjJjLTAuNSwwLTAuOS0wLjMtMC45LTAuNlY3NS45YzAtMC4zLDAuNC0wLjYsMC45LTAuNmMwLjUsMCwwLjksMC4zLDAuOSwwLjZ2MTIuNw0KCQlDMzEuMyw4OSwzMC45LDg5LjIsMzAuNCw4OS4yeiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01MC40LDg5LjJjLTAuNSwwLTAuOS0wLjMtMC45LTAuNlY3NS45YzAtMC4zLDAuNC0wLjYsMC45LTAuNmMwLjUsMCwwLjksMC4zLDAuOSwwLjZ2MTIuNw0KCQlDNTEuMyw4OSw1MC45LDg5LjIsNTAuNCw4OS4yeiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04MC4xLDg5LjJjLTAuNSwwLTEtMC40LTEtMVYxMS42SDQxLjR2Mi45YzAsMC41LTAuNCwxLTEsMXMtMS0wLjQtMS0xdi0zLjhjMC0wLjUsMC40LTEsMS0xaDM5LjcNCgkJYzAuNSwwLDEsMC40LDEsMXY3Ny42QzgxLDg4LjgsODAuNiw4OS4yLDgwLjEsODkuMnoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDguMywyMy42SDMyLjVjLTAuNSwwLTEtMC40LTEtMWMwLTAuNSwwLjQtMSwxLTFoMTUuOWMwLjUsMCwxLDAuNCwxLDFDNDkuMywyMy4xLDQ4LjksMjMuNiw0OC4zLDIzLjZ6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTMyLjUsMjMuNmMtMC41LDAtMS0wLjQtMS0xYzAtNC45LDQtOC45LDguOS04LjljMC41LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFjLTMuOCwwLTYuOSwzLjEtNi45LDYuOQ0KCQlDMzMuNSwyMy4xLDMzLDIzLjYsMzIuNSwyMy42eiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00OC4zLDIzLjZjLTAuNSwwLTEtMC40LTEtMWMwLTMuOC0zLjEtNi45LTYuOS02LjljLTAuNSwwLTEtMC40LTEtMXMwLjQtMSwxLTFjNC45LDAsOC45LDQsOC45LDguOQ0KCQlDNDkuMywyMy4xLDQ4LjksMjMuNiw0OC4zLDIzLjZ6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTMxLjUsMjguNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMXMxLDAuNCwxLDF2MkMzMi41LDI4LjEsMzIsMjguNSwzMS41LDI4LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTMxLjUsMzQuNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMXMxLDAuNCwxLDF2MkMzMi41LDM0LDMyLDM0LjUsMzEuNSwzNC41eiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yNy41LDM0LjVjLTAuNSwwLTEtMC40LTEtMXYtMmMwLTAuNSwwLjQtMSwxLTFjMC41LDAsMSwwLjQsMSwxdjJDMjguNSwzNCwyOC4xLDM0LjUsMjcuNSwzNC41eiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0zNS40LDM0LjVjLTAuNSwwLTEtMC40LTEtMXYtMmMwLTAuNSwwLjQtMSwxLTFzMSwwLjQsMSwxdjJDMzYuNCwzNCwzNiwzNC41LDM1LjQsMzQuNXoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzkuNCwzNC41Yy0wLjUsMC0xLTAuNC0xLTF2LTJjMC0wLjUsMC40LTEsMS0xYzAuNSwwLDEsMC40LDEsMXYyQzQwLjQsMzQsNDAsMzQuNSwzOS40LDM0LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTQzLjQsMzQuNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMWMwLjUsMCwxLDAuNCwxLDF2MkM0NC40LDM0LDQzLjksMzQuNSw0My40LDM0LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTQ3LjMsMzQuNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMXMxLDAuNCwxLDF2MkM0OC4zLDM0LDQ3LjksMzQuNSw0Ny4zLDM0LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTUxLjMsMzQuNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMWMwLjUsMCwxLDAuNCwxLDF2MkM1Mi4zLDM0LDUxLjksMzQuNSw1MS4zLDM0LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM1LjQsMjguNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMXMxLDAuNCwxLDF2MkMzNi40LDI4LjEsMzYsMjguNSwzNS40LDI4LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTM5LjQsMjguNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMWMwLjUsMCwxLDAuNCwxLDF2MkM0MC40LDI4LjEsNDAsMjguNSwzOS40LDI4LjV6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTQzLjQsMjguNWMtMC41LDAtMS0wLjQtMS0xdi0yYzAtMC41LDAuNC0xLDEtMWMwLjUsMCwxLDAuNCwxLDF2MkM0NC40LDI4LjEsNDMuOSwyOC41LDQzLjQsMjguNXoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDcuMywyOC41Yy0wLjUsMC0xLTAuNC0xLTF2LTJjMC0wLjUsMC40LTEsMS0xczEsMC40LDEsMXYyQzQ4LjMsMjguMSw0Ny45LDI4LjUsNDcuMywyOC41eiI+PC9wYXRoPg0KPC9zdmc+\";\nexport { SvgShower as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgVendingMachine(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"vendingMachine_svg__st0\",\n d: \"M62.6 25h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1V24c0 .5-.5 1-1.1 1zm-4.3-2.1h3.2v-3.2h-3.2v3.2zM62.6 35.8h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1v5.4c0 .6-.5 1.1-1.1 1.1zm-4.3-2.2h3.2v-3.2h-3.2v3.2zM62.6 46.6h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1v5.4c0 .6-.5 1.1-1.1 1.1zm-4.3-2.2h3.2v-3.2h-3.2v3.2zM72.2 25h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1V24c-.1.5-.5 1-1.1 1zm-4.3-2.1h3.2v-3.2h-3.2v3.2zM72.2 35.8h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1v5.4c-.1.6-.5 1.1-1.1 1.1zm-4.3-2.2h3.2v-3.2h-3.2v3.2zM72.2 46.6h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1v5.4c-.1.6-.5 1.1-1.1 1.1zm-4.3-2.2h3.2v-3.2h-3.2v3.2zM62.6 56.4h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1v5.4c0 .6-.5 1.1-1.1 1.1zm-4.3-2.2h3.2V51h-3.2v3.2zM72.2 56.4h-5.4c-.6 0-1.1-.5-1.1-1.1v-5.4c0-.6.5-1.1 1.1-1.1h5.4c.6 0 1.1.5 1.1 1.1v5.4c-.1.6-.5 1.1-1.1 1.1zm-4.3-2.2h3.2V51h-3.2v3.2zM59.8 78.8H40.2c-.6 0-1.1-.5-1.1-1.1V66.9c0-.6.5-1.1 1.1-1.1h19.7c.6 0 1.1.5 1.1 1.1v10.8c-.1.6-.6 1.1-1.2 1.1zm-18.3-4.6H59l-.2-6.2H41.2l.3 6.2zM53.1 63H28.2c-.7 0-1.3-.6-1.3-1.3V18.8c0-.7.6-1.3 1.3-1.3h24.9c.7 0 1.3.6 1.3 1.3v42.8c0 .8-.6 1.4-1.3 1.4zm-23.6-2.7h22.3V20.2H29.5v40.1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"vendingMachine_svg__st0\",\n d: \"M76.3 13v74.1H23.7V13h52.6m0-4H23.7c-2.2 0-4 1.8-4 4v74.1c0 2.2 1.8 4 4 4h52.6c2.2 0 4-1.8 4-4V13c0-2.2-1.8-4-4-4z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjIuNiwyNWgtNS40Yy0wLjYsMC0xLjEtMC41LTEuMS0xLjF2LTUuNGMwLTAuNiwwLjUtMS4xLDEuMS0xLjFoNS40YzAuNiwwLDEuMSwwLjUsMS4xLDEuMVYyNA0KCQlDNjMuNywyNC41LDYzLjIsMjUsNjIuNiwyNXogTTU4LjMsMjIuOWgzLjJ2LTMuMmgtMy4yVjIyLjl6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTYyLjYsMzUuOGgtNS40Yy0wLjYsMC0xLjEtMC41LTEuMS0xLjF2LTUuNGMwLTAuNiwwLjUtMS4xLDEuMS0xLjFoNS40YzAuNiwwLDEuMSwwLjUsMS4xLDEuMXY1LjQNCgkJQzYzLjcsMzUuMyw2My4yLDM1LjgsNjIuNiwzNS44eiBNNTguMywzMy42aDMuMnYtMy4yaC0zLjJWMzMuNnoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNjIuNiw0Ni42aC01LjRjLTAuNiwwLTEuMS0wLjUtMS4xLTEuMXYtNS40YzAtMC42LDAuNS0xLjEsMS4xLTEuMWg1LjRjMC42LDAsMS4xLDAuNSwxLjEsMS4xdjUuNA0KCQlDNjMuNyw0Ni4xLDYzLjIsNDYuNiw2Mi42LDQ2LjZ6IE01OC4zLDQ0LjRoMy4ydi0zLjJoLTMuMlY0NC40eiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03Mi4yLDI1aC01LjRjLTAuNiwwLTEuMS0wLjUtMS4xLTEuMXYtNS40YzAtMC42LDAuNS0xLjEsMS4xLTEuMWg1LjRjMC42LDAsMS4xLDAuNSwxLjEsMS4xVjI0DQoJCUM3My4yLDI0LjUsNzIuOCwyNSw3Mi4yLDI1eiBNNjcuOSwyMi45aDMuMnYtMy4yaC0zLjJWMjIuOXoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzIuMiwzNS44aC01LjRjLTAuNiwwLTEuMS0wLjUtMS4xLTEuMXYtNS40YzAtMC42LDAuNS0xLjEsMS4xLTEuMWg1LjRjMC42LDAsMS4xLDAuNSwxLjEsMS4xdjUuNA0KCQlDNzMuMiwzNS4zLDcyLjgsMzUuOCw3Mi4yLDM1Ljh6IE02Ny45LDMzLjZoMy4ydi0zLjJoLTMuMlYzMy42eiI+PC9wYXRoPg0KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03Mi4yLDQ2LjZoLTUuNGMtMC42LDAtMS4xLTAuNS0xLjEtMS4xdi01LjRjMC0wLjYsMC41LTEuMSwxLjEtMS4xaDUuNGMwLjYsMCwxLjEsMC41LDEuMSwxLjF2NS40DQoJCUM3My4yLDQ2LjEsNzIuOCw0Ni42LDcyLjIsNDYuNnogTTY3LjksNDQuNGgzLjJ2LTMuMmgtMy4yVjQ0LjR6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTYyLjYsNTYuNGgtNS40Yy0wLjYsMC0xLjEtMC41LTEuMS0xLjF2LTUuNGMwLTAuNiwwLjUtMS4xLDEuMS0xLjFoNS40YzAuNiwwLDEuMSwwLjUsMS4xLDEuMXY1LjQNCgkJQzYzLjcsNTUuOSw2My4yLDU2LjQsNjIuNiw1Ni40eiBNNTguMyw1NC4yaDMuMlY1MWgtMy4yVjU0LjJ6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTcyLjIsNTYuNGgtNS40Yy0wLjYsMC0xLjEtMC41LTEuMS0xLjF2LTUuNGMwLTAuNiwwLjUtMS4xLDEuMS0xLjFoNS40YzAuNiwwLDEuMSwwLjUsMS4xLDEuMXY1LjQNCgkJQzczLjIsNTUuOSw3Mi44LDU2LjQsNzIuMiw1Ni40eiBNNjcuOSw1NC4yaDMuMlY1MWgtMy4yVjU0LjJ6Ij48L3BhdGg+DQoJPHBhdGggY2xhc3M9InN0MCIgZD0iTTU5LjgsNzguOEg0MC4yYy0wLjYsMC0xLjEtMC41LTEuMS0xLjFWNjYuOWMwLTAuNiwwLjUtMS4xLDEuMS0xLjFoMTkuN2MwLjYsMCwxLjEsMC41LDEuMSwxLjF2MTAuOA0KCQlDNjAuOSw3OC4zLDYwLjQsNzguOCw1OS44LDc4Ljh6IE00MS41LDc0LjJINTlMNTguOCw2OEg0MS4yTDQxLjUsNzQuMnoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTMuMSw2M0gyOC4yYy0wLjcsMC0xLjMtMC42LTEuMy0xLjNWMTguOGMwLTAuNywwLjYtMS4zLDEuMy0xLjNoMjQuOWMwLjcsMCwxLjMsMC42LDEuMywxLjN2NDIuOA0KCQlDNTQuNCw2Mi40LDUzLjgsNjMsNTMuMSw2M3ogTTI5LjUsNjAuM2gyMi4zVjIwLjJIMjkuNVY2MC4zeiI+PC9wYXRoPg0KCTxnPg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzYuMywxM3Y3NC4xSDIzLjdWMTNINzYuMyBNNzYuMyw5SDIzLjdjLTIuMiwwLTQsMS44LTQsNHY3NC4xYzAsMi4yLDEuOCw0LDQsNGg1Mi42YzIuMiwwLDQtMS44LDQtNFYxMw0KCQkJQzgwLjMsMTAuOCw3OC41LDksNzYuMyw5TDc2LjMsOXoiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgVendingMachine as ReactComponent };","var _path, _path2, _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9;\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\nimport * as React from \"react\";\n\nfunction SvgMicrowave(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"microwave_svg__st0\",\n d: \"M88 25.2H12c-3 0-5.5 2.5-5.5 5.5v37.9c0 3 2.5 5.5 5.5 5.5h76c3 0 5.5-2.5 5.5-5.5V30.7c0-3-2.5-5.5-5.5-5.5zM10.2 68.6V30.7c0-1 .8-1.8 1.8-1.8h56.1v41.6H12c-1 0-1.8-.9-1.8-1.9zm79.6 0c0 1-.8 1.8-1.8 1.8H71.8V28.9H88c1 0 1.8.8 1.8 1.8v37.9z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"microwave_svg__st0\",\n d: \"M74.3 32.1h13.5v5.4H74.3zM84.5 60.7h-6.9c-2.3 0-4.2 1.9-4.2 4.2 0 2.3 1.9 4.2 4.2 4.2h6.9c2.3 0 4.2-1.9 4.2-4.2 0-2.4-1.9-4.2-4.2-4.2zm0 4.6h-6.9c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h6.9c.3 0 .5.2.5.5s-.2.5-.5.5zM59.9 32.2h-40c-3 0-5.5 2.5-5.5 5.5v23.8c0 3 2.5 5.5 5.5 5.5H60c3 0 5.5-2.5 5.5-5.5V37.7c-.1-3-2.5-5.5-5.6-5.5zm1.9 29.4c0 1-.8 1.8-1.8 1.8H19.9c-1 0-1.8-.8-1.8-1.8V37.7c0-1 .8-1.8 1.8-1.8H60c1 0 1.8.8 1.8 1.8v23.9z\"\n })), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 86.2,\n cy: 43.2,\n r: 2.4\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 81.1,\n cy: 43.2,\n r: 2.4\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 75.9,\n cy: 43.2,\n r: 2.4\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 86.2,\n cy: 49.4,\n r: 2.4\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 81.1,\n cy: 49.4,\n r: 2.4\n })), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 75.9,\n cy: 49.4,\n r: 2.4\n })), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 86.2,\n cy: 55.6,\n r: 2.4\n })), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 81.1,\n cy: 55.6,\n r: 2.4\n })), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"microwave_svg__st0\",\n cx: 75.9,\n cy: 55.6,\n r: 2.4\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTg4LDI1LjJIMTJjLTMsMC01LjUsMi41LTUuNSw1LjV2MzcuOWMwLDMsMi41LDUuNSw1LjUsNS41aDc2YzMsMCw1LjUtMi41LDUuNS01LjVWMzAuNw0KCQkJQzkzLjUsMjcuNyw5MSwyNS4yLDg4LDI1LjJ6IE0xMC4yLDY4LjZWMzAuN2MwLTEsMC44LTEuOCwxLjgtMS44aDU2LjF2NDEuNkgxMkMxMSw3MC41LDEwLjIsNjkuNiwxMC4yLDY4LjZ6IE04OS44LDY4LjYNCgkJCWMwLDEtMC44LDEuOC0xLjgsMS44SDcxLjhWMjguOUg4OGMxLDAsMS44LDAuOCwxLjgsMS44TDg5LjgsNjguNkw4OS44LDY4LjZ6Ij48L3BhdGg+DQoJCTxyZWN0IHg9Ijc0LjMiIHk9IjMyLjEiIGNsYXNzPSJzdDAiIHdpZHRoPSIxMy41IiBoZWlnaHQ9IjUuNCI+PC9yZWN0Pg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNODQuNSw2MC43aC02LjljLTIuMywwLTQuMiwxLjktNC4yLDQuMmMwLDIuMywxLjksNC4yLDQuMiw0LjJoNi45YzIuMywwLDQuMi0xLjksNC4yLTQuMg0KCQkJQzg4LjcsNjIuNSw4Ni44LDYwLjcsODQuNSw2MC43eiBNODQuNSw2NS4zaC02LjljLTAuMywwLTAuNS0wLjItMC41LTAuNWMwLTAuMywwLjItMC41LDAuNS0wLjVoNi45YzAuMywwLDAuNSwwLjIsMC41LDAuNQ0KCQkJUzg0LjgsNjUuMyw4NC41LDY1LjN6Ij48L3BhdGg+DQoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik01OS45LDMyLjJIMTkuOWMtMywwLTUuNSwyLjUtNS41LDUuNXYyMy44YzAsMywyLjUsNS41LDUuNSw1LjVoNDAuMWMzLDAsNS41LTIuNSw1LjUtNS41VjM3LjcNCgkJCUM2NS40LDM0LjcsNjMsMzIuMiw1OS45LDMyLjJ6IE02MS44LDYxLjZjMCwxLTAuOCwxLjgtMS44LDEuOEgxOS45Yy0xLDAtMS44LTAuOC0xLjgtMS44VjM3LjdjMC0xLDAuOC0xLjgsMS44LTEuOGg0MC4xDQoJCQljMSwwLDEuOCwwLjgsMS44LDEuOEw2MS44LDYxLjZMNjEuOCw2MS42eiI+PC9wYXRoPg0KCQk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSI4Ni4yIiBjeT0iNDMuMiIgcj0iMi40Ij48L2NpcmNsZT4NCgkJPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iODEuMSIgY3k9IjQzLjIiIHI9IjIuNCI+PC9jaXJjbGU+DQoJCTxjaXJjbGUgY2xhc3M9InN0MCIgY3g9Ijc1LjkiIGN5PSI0My4yIiByPSIyLjQiPjwvY2lyY2xlPg0KCQk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSI4Ni4yIiBjeT0iNDkuNCIgcj0iMi40Ij48L2NpcmNsZT4NCgkJPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iODEuMSIgY3k9IjQ5LjQiIHI9IjIuNCI+PC9jaXJjbGU+DQoJCTxjaXJjbGUgY2xhc3M9InN0MCIgY3g9Ijc1LjkiIGN5PSI0OS40IiByPSIyLjQiPjwvY2lyY2xlPg0KCQk8Y2lyY2xlIGNsYXNzPSJzdDAiIGN4PSI4Ni4yIiBjeT0iNTUuNiIgcj0iMi40Ij48L2NpcmNsZT4NCgkJPGNpcmNsZSBjbGFzcz0ic3QwIiBjeD0iODEuMSIgY3k9IjU1LjYiIHI9IjIuNCI+PC9jaXJjbGU+DQoJCTxjaXJjbGUgY2xhc3M9InN0MCIgY3g9Ijc1LjkiIGN5PSI1NS42IiByPSIyLjQiPjwvY2lyY2xlPg0KCTwvZz4NCjwvc3ZnPg==\";\nexport { SvgMicrowave as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgNoSmoking(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"noSmoking_svg__st0\",\n d: \"M50.3 13.4c-20.3 0-36.8 16.5-36.8 36.8S30 87 50.3 87s36.8-16.5 36.8-36.8-16.5-36.8-36.8-36.8zm0 70c-18.3 0-33.1-14.9-33.1-33.1 0-8.5 3.2-16.2 8.4-22.1l22.3 22.3H27.6v7h27.2L72.3 75c-5.8 5.2-13.6 8.4-22 8.4zm24.6-11.1L60.1 57.5h7.4v-7H53.1L28.2 25.6c5.9-5.2 13.6-8.4 22.1-8.4 18.3 0 33.1 14.9 33.1 33.1 0 8.4-3.2 16.2-8.5 22z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"noSmoking_svg__st0\",\n d: \"M70.3 50.5h2.6v7h-2.6zM72.9 48v-1.4c0-3.9-.5-6.9-6.6-6.9-.9 0-2.6-.7-2.6-3.3 0-10.5-6.4-11.3-14.9-11.3-2.5 0-4.6.6-6 1.8-1.4 1.1-2.2 2.6-2.2 4.3 0 3 2.5 6.1 7.3 6.1 6.8 0 7.2 1 7.2 2.6 0 5.6 1.6 8.1 11.1 8.1h1.4v-2.8H66c-8.3 0-8.3-1.5-8.3-5.3 0-5.4-5.5-5.4-10-5.4-2.9 0-4.5-1.7-4.5-3.3 0-2.3 2.7-3.3 5.4-3.3 9.1 0 12.1 1.2 12.1 8.6 0 2.4.9 3.8 1.7 4.6 1 1 2.3 1.5 3.7 1.5 3.9 0 3.9.8 3.9 4.1V48h2.9z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTUwLjMsMTMuNGMtMjAuMywwLTM2LjgsMTYuNS0zNi44LDM2LjhzMTYuNSwzNi44LDM2LjgsMzYuOHMzNi44LTE2LjUsMzYuOC0zNi44UzcwLjYsMTMuNCw1MC4zLDEzLjR6DQoJCQlNNTAuMyw4My40Yy0xOC4zLDAtMzMuMS0xNC45LTMzLjEtMzMuMWMwLTguNSwzLjItMTYuMiw4LjQtMjIuMWwyMi4zLDIyLjNIMjcuNnY3aDI3LjJMNzIuMyw3NUM2Ni41LDgwLjIsNTguNyw4My40LDUwLjMsODMuNHoNCgkJCU03NC45LDcyLjNMNjAuMSw1Ny41aDcuNHYtN0g1My4xTDI4LjIsMjUuNmM1LjktNS4yLDEzLjYtOC40LDIyLjEtOC40YzE4LjMsMCwzMy4xLDE0LjksMzMuMSwzMy4xQzgzLjQsNTguNyw4MC4yLDY2LjUsNzQuOSw3Mi4zDQoJCQl6Ij48L3BhdGg+DQoJCTxyZWN0IHg9IjcwLjMiIHk9IjUwLjUiIGNsYXNzPSJzdDAiIHdpZHRoPSIyLjYiIGhlaWdodD0iNyI+PC9yZWN0Pg0KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzIuOSw0OHYtMS40YzAtMy45LTAuNS02LjktNi42LTYuOWMtMC45LDAtMi42LTAuNy0yLjYtMy4zYzAtMTAuNS02LjQtMTEuMy0xNC45LTExLjNjLTIuNSwwLTQuNiwwLjYtNiwxLjgNCgkJCWMtMS40LDEuMS0yLjIsMi42LTIuMiw0LjNjMCwzLDIuNSw2LjEsNy4zLDYuMWM2LjgsMCw3LjIsMSw3LjIsMi42YzAsNS42LDEuNiw4LjEsMTEuMSw4LjFoMS40di0yLjhINjZjLTguMywwLTguMy0xLjUtOC4zLTUuMw0KCQkJYzAtNS40LTUuNS01LjQtMTAtNS40Yy0yLjksMC00LjUtMS43LTQuNS0zLjNjMC0yLjMsMi43LTMuMyw1LjQtMy4zYzkuMSwwLDEyLjEsMS4yLDEyLjEsOC42YzAsMi40LDAuOSwzLjgsMS43LDQuNg0KCQkJYzEsMSwyLjMsMS41LDMuNywxLjVjMy45LDAsMy45LDAuOCwzLjksNC4xVjQ4TDcyLjksNDhMNzIuOSw0OHoiPjwvcGF0aD4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgNoSmoking as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgNewFile(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"newFile_svg__st0\",\n d: \"M57.3 17H25.5v63.3H73V32.7L57.3 17zm2.4 5.8l7.6 7.6h-7.6v-7.6zM70.6 78H27.9V19.4h29.4v13.3h13.3V78z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"newFile_svg__st0\",\n d: \"M32.3 25.1h16.6v2.4H32.3zM32.3 30.1h16.6v2.4H32.3zM32.3 42.4h33.1v2.4H32.3zM32.3 37.6h33.1V40H32.3zM32.3 47.1h33.1v2.4H32.3zM32.3 51.8h33.1v2.4H32.3zM32.3 56.6h33.1V59H32.3zM32.3 69.8h18.9v2.4H32.3zM32.3 60.8h9.5v2.4h-9.5z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNTcuMywxN0gyNS41djYzLjNINzNWMzIuN0w1Ny4zLDE3eiBNNTkuNywyMi44bDcuNiw3LjZoLTcuNlYyMi44eiBNNzAuNiw3OEgyNy45VjE5LjRoMjkuNHYxMy4zaDEzLjMNCgkJCQlMNzAuNiw3OEw3MC42LDc4eiI+PC9wYXRoPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHJlY3QgeD0iMzIuMyIgeT0iMjUuMSIgY2xhc3M9InN0MCIgd2lkdGg9IjE2LjYiIGhlaWdodD0iMi40Ij48L3JlY3Q+DQoJCTwvZz4NCgkJPGc+DQoJCQk8cmVjdCB4PSIzMi4zIiB5PSIzMC4xIiBjbGFzcz0ic3QwIiB3aWR0aD0iMTYuNiIgaGVpZ2h0PSIyLjQiPjwvcmVjdD4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxyZWN0IHg9IjMyLjMiIHk9IjQyLjQiIGNsYXNzPSJzdDAiIHdpZHRoPSIzMy4xIiBoZWlnaHQ9IjIuNCI+PC9yZWN0Pg0KCQk8L2c+DQoJCTxnPg0KCQkJPHJlY3QgeD0iMzIuMyIgeT0iMzcuNiIgY2xhc3M9InN0MCIgd2lkdGg9IjMzLjEiIGhlaWdodD0iMi40Ij48L3JlY3Q+DQoJCTwvZz4NCgkJPGc+DQoJCQk8cmVjdCB4PSIzMi4zIiB5PSI0Ny4xIiBjbGFzcz0ic3QwIiB3aWR0aD0iMzMuMSIgaGVpZ2h0PSIyLjQiPjwvcmVjdD4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxyZWN0IHg9IjMyLjMiIHk9IjUxLjgiIGNsYXNzPSJzdDAiIHdpZHRoPSIzMy4xIiBoZWlnaHQ9IjIuNCI+PC9yZWN0Pg0KCQk8L2c+DQoJCTxnPg0KCQkJPHJlY3QgeD0iMzIuMyIgeT0iNTYuNiIgY2xhc3M9InN0MCIgd2lkdGg9IjMzLjEiIGhlaWdodD0iMi40Ij48L3JlY3Q+DQoJCTwvZz4NCgkJPGc+DQoJCQk8cmVjdCB4PSIzMi4zIiB5PSI2OS44IiBjbGFzcz0ic3QwIiB3aWR0aD0iMTguOSIgaGVpZ2h0PSIyLjQiPjwvcmVjdD4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxyZWN0IHg9IjMyLjMiIHk9IjYwLjgiIGNsYXNzPSJzdDAiIHdpZHRoPSI5LjUiIGhlaWdodD0iMi40Ij48L3JlY3Q+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4=\";\nexport { SvgNewFile as ReactComponent };","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport clipboard from \"../assets/svg/clipboard.svg\";\r\nimport clockArrow from \"../assets/svg/clockArrow.svg\";\r\nimport flag from \"../assets/svg/flag.svg\";\r\nimport newFile from \"../assets/svg/newFile.svg\";\r\nimport pencilRuler from \"../assets/svg/pencilRuler.svg\";\r\nimport speechBubbles from \"../assets/svg/speechBubbles.svg\";\r\nimport thumbsUp from \"../assets/svg/thumbsUp.svg\";\r\nimport trophy from \"../assets/svg/trophy.svg\";\r\nimport user from \"../assets/svg/user2.svg\";\r\n\r\nimport { ReactComponent as CloseIcon } from \"../assets/svg/closeIcon.svg\";\r\n\r\nexport const ActionPlan: React.FC<{}> = () => {\r\n const [selected, setSelected] = React.useState(-1);\r\n\r\n const handleSelection = (id: number): void => {\r\n selected === id ? setSelected(-1) : setSelected(id);\r\n };\r\n\r\n return (\r\n
    \r\n {data.map(({ imgSrc, title }, idx) => (\r\n \r\n handleSelection(idx)}>\r\n \"\"\r\n \r\n {title}\r\n \r\n ))}\r\n \r\n {selected !== -1 && (\r\n <>\r\n {data[selected].title}\r\n

    {data[selected].description}

    \r\n handleSelection(selected)}\r\n css={`\r\n background-color: transparent;\r\n border: 0;\r\n `}\r\n >\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst Information = styled.div<{ active: boolean }>`\r\n position: absolute;\r\n transition: all 500ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n top: ${(p) => (p.active ? \"calc(50% - 12.5rem)\" : \"50%\")};\r\n left: ${(p) => (p.active ? \"calc(50% - 12.5rem)\" : \"50%\")};\r\n width: ${(p) => (p.active ? \"25rem\" : \"0\")};\r\n height: ${(p) => (p.active ? \"25rem\" : \"0\")};\r\n opacity: ${(p) => (p.active ? 1 : 0)};\r\n background: ${(p) => p.theme.info};\r\n border-radius: 50%;\r\n padding: 2rem 4rem;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst ButtonWrapper = styled.div`\r\n position: relative;\r\n width: 10rem;\r\n height: 10rem;\r\n margin-bottom: 2rem;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst StyledButton = styled.button`\r\n position: absolute;\r\n top: 0;\r\n left: 12.5%;\r\n width: 75%;\r\n height: 75%;\r\n padding: 1rem;\r\n background: ${(p) => p.theme.primary};\r\n border: none;\r\n border-radius: 50%;\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst StyledTitle = styled.strong`\r\n position: absolute;\r\n left: 12.5%;\r\n bottom: 0;\r\n height: 20%;\r\n width: 75%;\r\n text-align: center;\r\n`;\r\n\r\ninterface Data {\r\n imgSrc: any;\r\n title: string;\r\n description: string;\r\n}\r\n\r\nconst data: Data[] = [\r\n {\r\n imgSrc: trophy,\r\n title: \"A goal\",\r\n description:\r\n \"A goal describes the overall aim of your health and wellbeing program. Goals need to consider the big picture (3 to 5 years). Changing behaviour can take a long time, so your goal needs to reflect this e.g. to improve the health and wellbeing of the workforce.\",\r\n },\r\n {\r\n imgSrc: flag,\r\n title: \"Objectives\",\r\n description:\r\n \"Objectives state how you will achieve your goal. These are shorter term (6 – 12 months) and are more specific. You may have a couple or several, depending on how many health risk behaviours you’re targeting e.g. increase by 20% the proportion of factory workers achieving 30 minutes of physical activity everyday over the next 12 months.\",\r\n },\r\n {\r\n imgSrc: newFile,\r\n title: \"Strategies\",\r\n description:\r\n \"Strategies include the steps you’ll take to implement your objective. Ensure you consider policy, environment, education and activities e.g. create a lunchtime walking group, equip staff kitchen with adequate food preparation equipment.\",\r\n },\r\n {\r\n imgSrc: clipboard,\r\n title: \"Tasks\",\r\n description:\r\n \"Tasks include the day-to-day activities that need to be carried out to achieve your strategies. This step helps you to break down the specific tasks that need to be done, and to plan your timeframe e.g. form a working group to develop / review policy, obtain a quote from three health professionals.\",\r\n },\r\n {\r\n imgSrc: pencilRuler,\r\n title: \"Resources and tools\",\r\n description:\r\n \"What will be needed to implement your strategies? Include materials, money and time e.g. Workplace Health Coordinator’s time, promotional materials, health professionals.\",\r\n },\r\n {\r\n imgSrc: user,\r\n title: \"Key people\",\r\n description:\r\n \"Include people who will coordinate or be involved in running the strategy e.g. Workplace Health Coordinator and working group members.\",\r\n },\r\n {\r\n imgSrc: clockArrow,\r\n title: \"Timeframe\",\r\n description:\r\n \"When strategies will run, how long they will run for, and expected completion date e.g. 3 months (Jan – Mar 20xx).\",\r\n },\r\n {\r\n imgSrc: thumbsUp,\r\n title: \"Measure of success\",\r\n description:\r\n \"What criteria you will use to evaluate if your strategies were successful and your objectives were met e.g. the proportion of staff who know about the the new health and wellbeing policy, changes in the amount that gym equipment is use, changes in the proportion of staff who smoke.\",\r\n },\r\n {\r\n imgSrc: speechBubbles,\r\n title: \"Evaluation method/s\",\r\n description:\r\n \"How will you evaluate whether you have met your success criteria? e.g. staff awareness survey.\",\r\n },\r\n];\r\n","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgTrophy(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"trophy_svg__st0\",\n d: \"M34.5 43.8c-.2.3-.3.6-.3.9v-.9h.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"trophy_svg__st0\",\n d: \"M65.9 44.7v-.9c6-.8 10.7-5.9 10.7-12.1S72 20.3 65.9 19.6v-2.8c0-.9-.7-1.6-1.6-1.6H35.8c-.9 0-1.6.7-1.6 1.6v2.8c-6 .8-10.7 5.9-10.7 12.1S28.2 43 34.2 43.8h.3c-.2.3-.3.6-.3.9 0 8 5.9 14.6 13.1 14.7l-5.5 9.5H38c-.9 0-1.6.7-1.6 1.6V74h-1.3c-.9 0-1.6.7-1.6 1.6v7.8c0 .9.7 1.6 1.6 1.6H65c.9 0 1.6-.7 1.6-1.6v-7.8c0-.9-.7-1.6-1.6-1.6h-1.3v-3.5c0-.9-.7-1.6-1.6-1.6h-3.8l-5.5-9.5c7.3-.2 13.1-6.7 13.1-14.7zm-31.7-4.1c-4.3-.7-7.5-4.5-7.5-8.9 0-4.5 3.2-8.2 7.5-9v17.9zm39.2-8.9c0 4.5-3.2 8.2-7.5 8.9V22.7c4.3.8 7.5 4.5 7.5 9zm-10 45.4v4.6H36.7v-4.6h26.7zM60.5 72v2H39.6v-2h20.9zm-5.9-3.1h-9.1l4.6-7.9 4.5 7.9zm-2.1-12.6h-4.8c-5.7 0-10.3-5.2-10.3-11.6V18.3h25.4v26.4c0 6.4-4.6 11.6-10.3 11.6z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzQuNSw0My44Yy0wLjIsMC4zLTAuMywwLjYtMC4zLDAuOXYtMC45QzM0LjMsNDMuOCwzNC40LDQzLjgsMzQuNSw0My44eiI+PC9wYXRoPg0KCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTY1LjksNDQuN3YtMC45YzYtMC44LDEwLjctNS45LDEwLjctMTIuMXMtNC42LTExLjQtMTAuNy0xMi4xdi0yLjhjMC0wLjktMC43LTEuNi0xLjYtMS42SDM1LjgNCgkJCQljLTAuOSwwLTEuNiwwLjctMS42LDEuNnYyLjhjLTYsMC44LTEwLjcsNS45LTEwLjcsMTIuMVMyOC4yLDQzLDM0LjIsNDMuOGMwLjEsMCwwLjIsMCwwLjMsMGMtMC4yLDAuMy0wLjMsMC42LTAuMywwLjkNCgkJCQljMCw4LDUuOSwxNC42LDEzLjEsMTQuN2wtNS41LDkuNUgzOGMtMC45LDAtMS42LDAuNy0xLjYsMS42Vjc0aC0xLjNjLTAuOSwwLTEuNiwwLjctMS42LDEuNnY3LjhjMCwwLjksMC43LDEuNiwxLjYsMS42SDY1DQoJCQkJYzAuOSwwLDEuNi0wLjcsMS42LTEuNnYtNy44YzAtMC45LTAuNy0xLjYtMS42LTEuNmgtMS4zdi0zLjVjMC0wLjktMC43LTEuNi0xLjYtMS42aC0zLjhsLTUuNS05LjUNCgkJCQlDNjAuMSw1OS4yLDY1LjksNTIuNyw2NS45LDQ0Ljd6IE0zNC4yLDQwLjZjLTQuMy0wLjctNy41LTQuNS03LjUtOC45YzAtNC41LDMuMi04LjIsNy41LTlWNDAuNnogTTczLjQsMzEuNw0KCQkJCWMwLDQuNS0zLjIsOC4yLTcuNSw4LjlWMjIuN0M3MC4yLDIzLjUsNzMuNCwyNy4yLDczLjQsMzEuN3ogTTYzLjQsNzcuMXY0LjZIMzYuN3YtNC42SDYzLjR6IE02MC41LDcyVjc0SDM5LjZWNzJINjAuNXoNCgkJCQlNNTQuNiw2OC45aC05LjFsNC42LTcuOUw1NC42LDY4Ljl6IE01Mi41LDU2LjNoLTQuOGMtNS43LDAtMTAuMy01LjItMTAuMy0xMS42VjE4LjNoMjUuNHYyNi40QzYyLjgsNTEuMSw1OC4yLDU2LjMsNTIuNSw1Ni4zeiI+PC9wYXRoPg0KCQk8L2c+DQoJPC9nPg0KPC9zdmc+\";\nexport { SvgTrophy as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgFlag(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"flag_svg__st0\",\n d: \"M22.4 83.4c-.8 0-1.4-.6-1.4-1.4V19.7c0-.8.6-1.4 1.4-1.4.8 0 1.4.6 1.4 1.4V82c0 .8-.6 1.4-1.4 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"flag_svg__st0\",\n d: \"M26.6 84.9h-8.5c-.8 0-1.4-.6-1.4-1.4 0-.8.6-1.4 1.4-1.4h8.5c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4zM70.3 56c-5.5 0-10.4-1.2-15.1-2.3-4.7-1.1-9.5-2.3-15-2.3-3.9 0-7.7.6-11.7 1.8-.4.1-.9 0-1.2-.2-.4-.3-.6-.7-.6-1.1V20.6c0-.6.4-1.2 1-1.4 4.3-1.3 8.4-1.9 12.5-1.9 5.8 0 10.8 1.2 15.6 2.4 4.8 1.1 9.3 2.2 14.4 2.2 3.7 0 7.4-.6 11.2-1.7.4-.1.9-.1 1.3.2.4.3.6.7.6 1.1v31.2c0 .6-.4 1.2-1 1.4-4.1 1.3-8 1.9-12 1.9zm-30.1-7.4c5.8 0 10.8 1.2 15.7 2.4 4.8 1.1 9.3 2.2 14.4 2.2 3.4 0 6.7-.5 10.2-1.4V23.5c-3.4.9-6.8 1.3-10.2 1.3-5.5 0-10.4-1.2-15.1-2.3-4.7-1.1-9.5-2.3-15-2.3-3.5 0-7.1.5-10.7 1.5V50c3.6-1 7.1-1.4 10.7-1.4z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjIuNCw4My40Yy0wLjgsMC0xLjQtMC42LTEuNC0xLjRWMTkuN2MwLTAuOCwwLjYtMS40LDEuNC0xLjRjMC44LDAsMS40LDAuNiwxLjQsMS40VjgyDQoJCUMyMy44LDgyLjgsMjMuMiw4My40LDIyLjQsODMuNHoiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjYuNiw4NC45aC04LjVjLTAuOCwwLTEuNC0wLjYtMS40LTEuNGMwLTAuOCwwLjYtMS40LDEuNC0xLjRoOC41YzAuOCwwLDEuNCwwLjYsMS40LDEuNFMyNy40LDg0LjksMjYuNiw4NC45eg0KCQkiPjwvcGF0aD4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzAuMyw1NmMtNS41LDAtMTAuNC0xLjItMTUuMS0yLjNjLTQuNy0xLjEtOS41LTIuMy0xNS0yLjNjLTMuOSwwLTcuNywwLjYtMTEuNywxLjhjLTAuNCwwLjEtMC45LDAtMS4yLTAuMg0KCQljLTAuNC0wLjMtMC42LTAuNy0wLjYtMS4xVjIwLjZjMC0wLjYsMC40LTEuMiwxLTEuNGM0LjMtMS4zLDguNC0xLjksMTIuNS0xLjljNS44LDAsMTAuOCwxLjIsMTUuNiwyLjRjNC44LDEuMSw5LjMsMi4yLDE0LjQsMi4yDQoJCWMzLjcsMCw3LjQtMC42LDExLjItMS43YzAuNC0wLjEsMC45LTAuMSwxLjMsMC4yYzAuNCwwLjMsMC42LDAuNywwLjYsMS4xdjMxLjJjMCwwLjYtMC40LDEuMi0xLDEuNEM3OC4yLDU1LjQsNzQuMyw1Niw3MC4zLDU2eg0KCQlNNDAuMiw0OC42YzUuOCwwLDEwLjgsMS4yLDE1LjcsMi40YzQuOCwxLjEsOS4zLDIuMiwxNC40LDIuMmMzLjQsMCw2LjctMC41LDEwLjItMS40VjIzLjVjLTMuNCwwLjktNi44LDEuMy0xMC4yLDEuMw0KCQljLTUuNSwwLTEwLjQtMS4yLTE1LjEtMi4zYy00LjctMS4xLTkuNS0yLjMtMTUtMi4zYy0zLjUsMC03LjEsMC41LTEwLjcsMS41VjUwQzMzLjEsNDksMzYuNiw0OC42LDQwLjIsNDguNnoiPjwvcGF0aD4NCjwvc3ZnPg==\";\nexport { SvgFlag as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgPencilRuler(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"pencilRuler_svg__st0\",\n d: \"M83.3 21.2L78.1 16c-.7-.7-1.9-.7-2.5 0L54.8 36.8 34.1 16c-.7-.7-1.9-.7-2.5 0L18.7 28.8c-.7.7-.7 1.9 0 2.5L39.4 52l-18 18.2c-.2.2-.4.4-.4.7l-2.6 7.7c-.2.7-.1 1.4.4 1.9.4.3.8.5 1.3.5.2 0 .4 0 .6-.1l7.7-2.5c.3-.1.5-.2.7-.4l18.1-18.1 20.7 20.7c.4.4.8.5 1.3.5s.9-.1 1.3-.5l12.7-12.7c.7-.7.7-1.9 0-2.5L62.5 44.5l20.7-20.7c.7-.7.7-1.9.1-2.6zM26.8 75.1L23 76.4l1.3-3.9 47.4-47.4 2.5 2.5-47.4 47.5zm50-50l-2.5-2.5 2.5-2.5 2.5 2.5-2.5 2.5zM39 46.5l2.3-2.3c.7-.7.7-1.9 0-2.5-.7-.7-1.9-.7-2.5 0L36.5 44l-3-3 2.3-2.3c.7-.7.7-1.9 0-2.5-.7-.7-1.9-.7-2.5 0L31 38.5l-2.9-2.9 2.3-2.3c.7-.7.7-1.9 0-2.5-.7-.7-1.9-.7-2.5 0L25.5 33l-2.9-2.9 10.2-10.2 19.4 19.4L42 49.5l-3-3zm40.4 20L69.2 76.7l-2.9-2.9 2.3-2.3c.7-.7.7-1.9 0-2.5-.7-.7-1.9-.7-2.5 0l-2.3 2.3-2.9-2.9 2.3-2.3c.7-.7.7-1.9 0-2.5-.7-.7-1.9-.7-2.5 0l-2.3 2.3-2.9-2.9 2.3-2.3c.7-.7.7-1.9 0-2.5-.7-.7-1.9-.7-2.5 0L53 60.5l-3.1-3.1L60 47.1l19.4 19.4z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNODMuMywyMS4yTDc4LjEsMTZjLTAuNy0wLjctMS45LTAuNy0yLjUsMEw1NC44LDM2LjhMMzQuMSwxNmMtMC43LTAuNy0xLjktMC43LTIuNSwwTDE4LjcsMjguOA0KCQljLTAuNywwLjctMC43LDEuOSwwLDIuNUwzOS40LDUyTDIxLjQsNzAuMmMtMC4yLDAuMi0wLjQsMC40LTAuNCwwLjdsLTIuNiw3LjdjLTAuMiwwLjctMC4xLDEuNCwwLjQsMS45YzAuNCwwLjMsMC44LDAuNSwxLjMsMC41DQoJCWMwLjIsMCwwLjQsMCwwLjYtMC4xbDcuNy0yLjVjMC4zLTAuMSwwLjUtMC4yLDAuNy0wLjRsMTguMS0xOC4xbDIwLjcsMjAuN2MwLjQsMC40LDAuOCwwLjUsMS4zLDAuNXMwLjktMC4xLDEuMy0wLjVsMTIuNy0xMi43DQoJCWMwLjctMC43LDAuNy0xLjksMC0yLjVMNjIuNSw0NC41bDIwLjctMjAuN0M4My45LDIzLjEsODMuOSwyMS45LDgzLjMsMjEuMnogTTI2LjgsNzUuMUwyMyw3Ni40bDEuMy0zLjlsNDcuNC00Ny40bDIuNSwyLjUNCgkJTDI2LjgsNzUuMXogTTc2LjgsMjUuMWwtMi41LTIuNWwyLjUtMi41bDIuNSwyLjVMNzYuOCwyNS4xeiBNMzksNDYuNWwyLjMtMi4zYzAuNy0wLjcsMC43LTEuOSwwLTIuNWMtMC43LTAuNy0xLjktMC43LTIuNSwwDQoJCWwtMi4zLDIuM0wzMy41LDQxbDIuMy0yLjNjMC43LTAuNywwLjctMS45LDAtMi41Yy0wLjctMC43LTEuOS0wLjctMi41LDBMMzEsMzguNWwtMi45LTIuOWwyLjMtMi4zYzAuNy0wLjcsMC43LTEuOSwwLTIuNQ0KCQljLTAuNy0wLjctMS45LTAuNy0yLjUsMEwyNS41LDMzbC0yLjktMi45bDEwLjItMTAuMmwxOS40LDE5LjRMNDIsNDkuNUwzOSw0Ni41eiBNNzkuNCw2Ni41TDY5LjIsNzYuN2wtMi45LTIuOWwyLjMtMi4zDQoJCWMwLjctMC43LDAuNy0xLjksMC0yLjVjLTAuNy0wLjctMS45LTAuNy0yLjUsMGwtMi4zLDIuM2wtMi45LTIuOWwyLjMtMi4zYzAuNy0wLjcsMC43LTEuOSwwLTIuNWMtMC43LTAuNy0xLjktMC43LTIuNSwwbC0yLjMsMi4zDQoJCWwtMi45LTIuOWwyLjMtMi4zYzAuNy0wLjcsMC43LTEuOSwwLTIuNWMtMC43LTAuNy0xLjktMC43LTIuNSwwbC0yLjMsMi4zbC0zLjEtMy4xTDYwLDQ3LjFMNzkuNCw2Ni41eiI+PC9wYXRoPg0KPC9zdmc+\";\nexport { SvgPencilRuler as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgUser2(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"user2_svg__st0\",\n d: \"M83.4 73.9c-3-8-8.2-9.9-12.3-10.6-3.5-.6-7.8-1.9-9.3-2.8-.1-.7-.1-2.1.1-4.4l.3-.3c2-2.7 3-5.3 3.5-7.1 1.3-.9 2.7-2.7 3.5-6.3.5-2 .8-4.6-.6-6.4l-.1-.1c1.3-12.9-7-19.4-11.8-21.1h-.2c-1.8-.6-3.6-.8-5.2-.8h-2.2c-1.6 0-3.4.3-5.2.8h-.2c-4.9 1.7-13.1 8.2-11.8 21.1l-.1.1c-1.5 1.8-1.1 4.4-.6 6.4.8 3.5 2.2 5.3 3.5 6.3.4 1.7 1.4 4.3 3.4 7 .1.2.2.3.3.5.1 2.2.1 3.6 0 4.3-1.5.8-5.8 2.1-9.3 2.7-4.1.7-9.3 2.6-12.3 10.6-.5 1.4-.3 2.8.5 4.1 3.1 4.5 19.6 5.5 32.9 5.5s29.7-1 32.9-5.5c.6-1.1.8-2.6.3-4zM37.3 46.4c-.4 0-2.1-.3-3.1-4.6-.8-3.4 0-3.9.6-3.9.3 0 .5.1.5.1-3-15.7 9.3-20 9.3-20 1.7-.5 3.1-.7 4.3-.7.4 0 .8 0 1.1.1.3 0 .7-.1 1.1-.1 1.2 0 2.6.2 4.3.7 0 0 12.3 4.3 9.3 20 0 0 .2-.1.5-.1.6 0 1.4.5.6 3.9-1 4.4-2.7 4.6-3.1 4.6h-.1s-.2 4.1-4 8.5v.1c-2.9 3-5.9 4.4-8.9 4.3-3.7-.2-6.7-2.7-8.1-4.2V55c-4-4.5-4.2-8.6-4.3-8.6.1 0 .1 0 0 0zm4 15.8c.2-.6.3-1.6.3-2.8 2 1.5 4.6 2.9 7.8 3h.5c2.9 0 5.7-1.1 8.4-3.1 0 1.2.1 2.3.3 2.8.3.9 2.2 1.8 4.5 2.5-3.3 3.2-7.9 5.2-13.1 5.2-5.2 0-9.9-2-13.1-5.2 2.2-.7 4.1-1.6 4.4-2.4z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZmZmIj4NCgk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNODMuNCw3My45Yy0zLTgtOC4yLTkuOS0xMi4zLTEwLjZjLTMuNS0wLjYtNy44LTEuOS05LjMtMi44Yy0wLjEtMC43LTAuMS0yLjEsMC4xLTQuNGMwLjEtMC4xLDAuMi0wLjIsMC4zLTAuMw0KCQlsMCwwYzItMi43LDMtNS4zLDMuNS03LjFjMS4zLTAuOSwyLjctMi43LDMuNS02LjNjMC41LTIsMC44LTQuNi0wLjYtNi40YzAsMC0wLjEtMC4xLTAuMS0wLjFjMS4zLTEyLjktNy0xOS40LTExLjgtMjEuMWwtMC4xLDANCgkJbC0wLjEsMGMtMS44LTAuNi0zLjYtMC44LTUuMi0wLjhjLTAuNCwwLTAuNywwLTEuMSwwYy0wLjQsMC0wLjcsMC0xLjEsMGMtMS42LDAtMy40LDAuMy01LjIsMC44bC0wLjEsMGwtMC4xLDANCgkJYy00LjksMS43LTEzLjEsOC4yLTExLjgsMjEuMWMwLDAtMC4xLDAuMS0wLjEsMC4xYy0xLjUsMS44LTEuMSw0LjQtMC42LDYuNGMwLjgsMy41LDIuMiw1LjMsMy41LDYuM2MwLjQsMS43LDEuNCw0LjMsMy40LDd2MA0KCQljMCwwLDAsMCwwLDBjMC4xLDAuMiwwLjIsMC4zLDAuMywwLjVjMC4xLDIuMiwwLjEsMy42LDAsNC4zYy0xLjUsMC44LTUuOCwyLjEtOS4zLDIuN2MtNC4xLDAuNy05LjMsMi42LTEyLjMsMTAuNg0KCQljLTAuNSwxLjQtMC4zLDIuOCwwLjUsNC4xYzMuMSw0LjUsMTkuNiw1LjUsMzIuOSw1LjVzMjkuNy0xLDMyLjktNS41QzgzLjcsNzYuOCw4My45LDc1LjMsODMuNCw3My45eiBNMzcuMyw0Ni40DQoJCWMtMC40LDAtMi4xLTAuMy0zLjEtNC42Yy0wLjgtMy40LDAtMy45LDAuNi0zLjljMC4zLDAsMC41LDAuMSwwLjUsMC4xYy0zLTE1LjcsOS4zLTIwLDkuMy0yMGMxLjctMC41LDMuMS0wLjcsNC4zLTAuNw0KCQljMC40LDAsMC44LDAsMS4xLDAuMWMwLjMsMCwwLjctMC4xLDEuMS0wLjFjMS4yLDAsMi42LDAuMiw0LjMsMC43YzAsMCwxMi4zLDQuMyw5LjMsMjBjMCwwLDAuMi0wLjEsMC41LTAuMWMwLjYsMCwxLjQsMC41LDAuNiwzLjkNCgkJYy0xLDQuNC0yLjcsNC42LTMuMSw0LjZjLTAuMSwwLTAuMSwwLTAuMSwwcy0wLjIsNC4xLTQsOC41YzAsMCwwLDAuMSwwLDAuMWMtMi45LDMtNS45LDQuNC04LjksNC4zYy0zLjctMC4yLTYuNy0yLjctOC4xLTQuMg0KCQljMCwwLDAtMC4xLDAtMC4xQzM3LjYsNTAuNSwzNy40LDQ2LjQsMzcuMyw0Ni40QzM3LjQsNDYuNCwzNy40LDQ2LjQsMzcuMyw0Ni40eiBNNDEuMyw2Mi4yYzAuMi0wLjYsMC4zLTEuNiwwLjMtMi44DQoJCWMyLDEuNSw0LjYsMi45LDcuOCwzYzAuMiwwLDAuMywwLDAuNSwwYzIuOSwwLDUuNy0xLjEsOC40LTMuMWMwLDEuMiwwLjEsMi4zLDAuMywyLjhjMC4zLDAuOSwyLjIsMS44LDQuNSwyLjUNCgkJYy0zLjMsMy4yLTcuOSw1LjItMTMuMSw1LjJjLTUuMiwwLTkuOS0yLTEzLjEtNS4yQzM5LjEsNjMuOSw0MSw2Myw0MS4zLDYyLjJ6Ij48L3BhdGg+DQo8L3N2Zz4=\";\nexport { SvgUser2 as ReactComponent };","import classNames from \"classnames\";\r\nimport React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nexport const ConsultationQuestions: React.FC<{}> = () => {\r\n const [currentSlide, setCurrentSlide] = React.useState(0);\r\n\r\n const handleSlideChange = (dir: -1 | 1, totalSlides: number): void => {\r\n setCurrentSlide((prev) => (prev + dir + totalSlides) % totalSlides);\r\n };\r\n\r\n return (\r\n
      \r\n {data.map(({ title, card }, idx) => (\r\n \r\n setCurrentSlide(0)}\r\n >\r\n

      {title}

      \r\n \r\n \r\n {card.map(({ title, subtitle, content }, idx) => (\r\n \r\n \r\n {title && (\r\n

      \r\n {title}\r\n

      \r\n )}\r\n {subtitle && {subtitle}}\r\n {content}\r\n
      \r\n \r\n ))}\r\n \r\n {card.length > 1 && currentSlide > 0 && (\r\n handleSlideChange(-1, card.length)}>\r\n ‹\r\n \r\n )}\r\n {card.length > 1 && currentSlide < card.length - 1 && (\r\n handleSlideChange(1, card.length)}>\r\n ›\r\n \r\n )}\r\n \r\n \r\n
      \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nconst StyledListItem = styled.li`\r\n position: relative;\r\n background-color: transparent;\r\n`;\r\n\r\nconst StyledButton = styled.button`\r\n border: none;\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst ContentWrapper = styled.div<{ totalSlides: number }>`\r\n position: relative;\r\n width: ${(p) => p.totalSlides * 100}%;\r\n display: flex;\r\n overflow: hidden;\r\n background-color: ${(p) => p.theme.primary}cc;\r\n`;\r\n\r\nconst StyledInner = styled.div<{ slide: number; totalSlides: number }>`\r\n position: relative;\r\n width: ${(p) => 100 / p.totalSlides}%;\r\n transition: all 1000ms ease;\r\n transform: translateX(${(p) => p.slide * -100}%);\r\n`;\r\n\r\nconst Overlay = styled.div<{ totalSlides: number }>`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n width: calc(100% / ${(p) => p.totalSlides});\r\n z-index: 1;\r\n`;\r\n\r\nconst StyledContent = styled.div`\r\n padding: 0.5rem 5rem;\r\n`;\r\n\r\nconst NextButton = styled.button`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: calc(100% - 5rem);\r\n right: 0;\r\n width: 5rem;\r\n font-size: 60px;\r\n color: white;\r\n opacity: 0.5;\r\n background-color: transparent;\r\n border: none;\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst PrevButton = styled(NextButton)`\r\n left: 0;\r\n right: calc(100% - 5rem);\r\n`;\r\n\r\nconst List = styled.ol`\r\n margin: 0.5rem 0;\r\n list-style: upper-alpha;\r\n .highlight > span {\r\n padding: 2px;\r\n color: ${p => p.theme.dark};\r\n background-color: ${p => p.theme.gold};\r\n }\r\n`;\r\ninterface Data {\r\n title: string;\r\n card: Card[];\r\n}\r\n\r\ninterface Card {\r\n title: string;\r\n subtitle: string;\r\n content?: JSX.Element;\r\n}\r\n\r\nconst data: Data[] = [\r\n {\r\n title: \"Physical inactivity\",\r\n card: [\r\n {\r\n title: \"Awareness\",\r\n subtitle:\r\n \"What is the minimum amount of moderate intensity* activity that you need to accumulate each week for good health?\",\r\n content: (\r\n <>\r\n \r\n
  • None
  • \r\n
  • At least 60 minutes
  • \r\n
  • At least 150 minutes
  • \r\n
  • At least 400 minutes
  • \r\n
    \r\n

    \r\n *Moderate intensity exercise will cause a slight, but noticeable\r\n increase in your breathing and heart rate.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Awareness\",\r\n subtitle:\r\n \"How many times a week do you need to do muscle strengthening activities for good health?\",\r\n content: (\r\n \r\n
  • None
  • \r\n
  • At least 1 day
  • \r\n
  • At least 2 days
  • \r\n
  • At least 3 days
  • \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"Awareness\",\r\n subtitle: \"Sitting down for long periods of time without breaks is bad for your health.\",\r\n content: (\r\n \r\n
  • True
  • \r\n
  • False
  • \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"Behaviour\",\r\n subtitle:\r\n \"How many days last week did you exercise at a moderate intensity* for at least 30 minutes?\",\r\n content: (\r\n <>\r\n \r\n
  • None
  • \r\n
  • 1
  • \r\n
  • 2
  • \r\n
  • 3
  • \r\n
  • 4
  • \r\n
  • 5
  • \r\n
  • 6
  • \r\n
  • 7
  • \r\n
    \r\n

    \r\n *Moderate intensity exercise will cause a slight, but noticeable\r\n increase in your breathing and heart rate.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Behaviour\",\r\n subtitle:\r\n \"Which best describes your sedentary time throughout the working day?\",\r\n content: (\r\n \r\n
  • I spend most of the day sitting
  • \r\n
  • \r\n I spend most of the day sitting, but regularly interrupt my\r\n sitting (for at least 2-4 minutes every hour)\r\n
  • \r\n
  • I spend most of the day standing
  • \r\n
    \r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Unhealthy eating and drinking\",\r\n card: [\r\n {\r\n title: \"Awareness\",\r\n subtitle:\r\n \"How many serves of fruit* do you need to eat each day for good health?\",\r\n content: (\r\n <>\r\n \r\n
  • Less than 1 serve per day
  • \r\n
  • 1 serve per day
  • \r\n
  • 2 serves per day
  • \r\n
  • 3 or more serves per day
  • \r\n
    \r\n

    \r\n *A serve of fruit is a medium piece or 2 small pieces of fresh\r\n fruit, or one cup of chopped or canned fruit.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Awareness\",\r\n subtitle:\r\n \"How many serves of vegetables** do you need to eat each day for good health?\",\r\n content: (\r\n <>\r\n \r\n
  • Less than 1 serve per day
  • \r\n
  • 1 serve per day
  • \r\n
  • 2 serves per day
  • \r\n
  • 4 serves per day
  • \r\n
  • 5 or more serves per day
  • \r\n
    \r\n

    \r\n **A serve of vegetables is ½ a cup of cooked vegetables (fresh,\r\n frozen or tinned) or 1 cup of salad.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Attitudes / Behaviour\",\r\n subtitle: \"Which category best describes you?\",\r\n content: (\r\n \r\n
  • \r\n Overall, my diet is not healthy and I do not intend to eat\r\n healthier in the next 6 months\r\n
  • \r\n
  • \r\n Overall, my diet is not healthy, but I am thinking about starting\r\n to eat healthier in the next 6 months\r\n
  • \r\n
  • \r\n Overall, my diet is healthy, but it has only become so within the last 6 months \r\n
  • \r\n
  • \r\n Overall, my diet is healthy, and has been so for longer than 6\r\n months\r\n
  • \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"Behaviour\",\r\n subtitle: \"How many serves of fruit* do you usually eat per day?\",\r\n content: (\r\n <>\r\n \r\n
  • Less than 1 serve per day
  • \r\n
  • 1 serve per day
  • \r\n
  • 2 serves per day
  • \r\n
  • 3 or more serves per day
  • \r\n
    \r\n

    \r\n *A serve of fruit is a medium piece or 2 small pieces of fresh\r\n fruit, or one cup of chopped or canned fruit.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Behaviour\",\r\n subtitle:\r\n \"How many serves of vegetables** or salad do you usually eat per day?\",\r\n content: (\r\n <>\r\n \r\n
  • Less than 1 serve per day
  • \r\n
  • 1 serve per day
  • \r\n
  • 2 serves per day
  • \r\n
  • 4 serves per day
  • \r\n
  • 5 or more serves per day
  • \r\n
    \r\n

    \r\n **A serve of vegetables is ½ a cup of cooked vegetables (fresh,\r\n frozen or tinned) or 1 cup of salad.\r\n

    \r\n \r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Smoking\",\r\n card: [\r\n {\r\n title: \"Attitudes / behaviour\",\r\n subtitle: \"Which category best describes you?\",\r\n content: (\r\n \r\n
  • I smoke regularly with no intention to stop
  • \r\n
  • I smoke regularly but plan to stop
  • \r\n
  • I smoke occasionally with no intention to stop
  • \r\n
  • I smoke occasionally but plan to stop
  • \r\n
  • I don’t smoke now
  • \r\n
  • I’ve never smoked
  • \r\n
    \r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: \"Alcohol use\",\r\n card: [\r\n {\r\n title: \"Awareness\",\r\n subtitle:\r\n \"In healthy adults, how many standard drinks* on any one day will lower your risk of harm from alcohol-related injury?\",\r\n content: (\r\n <>\r\n \r\n
  • No more than 2
  • \r\n
  • No more than 3
  • \r\n
  • No more than 4
  • \r\n
  • No more than 5
  • \r\n
    \r\n

    \r\n *A standard drink is equal to 30mL (1 nip) of spirits, 100mL of wine, a can or stubbie of mid-strength beer or one middy of full-strength beer.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Awareness\",\r\n subtitle:\r\n \"To reduce the risk of harm from alcohol-related disease, healthy adults should limit their standard drinks* to:\",\r\n content: (\r\n <>\r\n \r\n
  • 8 standard drinks per week
  • \r\n
  • 10 standard drinks per week
  • \r\n
  • 12 standard drinks per week
  • \r\n
  • 14 standard drinks per week
  • \r\n
    \r\n

    \r\n *A standard drink is equal to 30mL (1 nip) of spirits, 100mL of wine, a can or stubbie of mid-strength beer or one middy of full-strength beer.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Attitudes / Behaviour\",\r\n subtitle: \"Which category best describes you?\",\r\n content: (\r\n \r\n
  • \r\n Overall, my alcohol consumption is not healthy, and I do not\r\n intend to drink less alcohol in the next 6 months\r\n
  • \r\n
  • \r\n Overall, my alcohol consumption is not healthy, but I am thinking\r\n about starting to drink less alcohol in the next 6 months\r\n
  • \r\n
  • \r\n Overall, my levels of alcohol consumption are healthy, but\r\n occasionally I drink too much\r\n
  • \r\n
  • \r\n Overall, my levels of alcohol consumption are healthy, but it has\r\n only become so within the last 6 months\r\n
  • \r\n
  • \r\n Overall, my levels of alcohol consumption are healthy, and this\r\n has been so for longer than 6 months\r\n
  • \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"Behaviour\",\r\n subtitle: \"How often do you have a drink containing alcohol?\",\r\n content: (\r\n \r\n
  • Never
  • \r\n
  • Monthly or less
  • \r\n
  • Monthly
  • \r\n
  • Weekly
  • \r\n
  • Daily or almost daily
  • \r\n
    \r\n ),\r\n },\r\n {\r\n title: \"Behaviour\",\r\n subtitle:\r\n \"How many standard drinks* do you have on a typical day when you are drinking?\",\r\n content: (\r\n <>\r\n \r\n
  • 1-2
  • \r\n
  • 3-4
  • \r\n
  • 5-6
  • \r\n
  • 7-8
  • \r\n
  • 9-10
  • \r\n
  • More than 10
  • \r\n
    \r\n

    \r\n *A standard drink is equal to 30mL (1 nip) of spirits, 100mL of wine, a can or stubbie of mid-strength beer or one middy of full-strength beer.\r\n

    \r\n \r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n title: \"General questions\",\r\n card: [\r\n {\r\n title: \"\",\r\n subtitle: \"\",\r\n content: (\r\n <>\r\n \r\n In addition to assessing staff awareness levels, attitudes and\r\n behaviours it is important to consider:\r\n \r\n
      \r\n
    • What employees want from the program.
    • \r\n
    • What may stop them from participating in the program.
    • \r\n
    • What would encourage them to get involved in the program.
    • \r\n
    \r\n Some example questions are shown below:\r\n
      \r\n
    • \r\n What strategies would you like to see implemented in the\r\n workplace (think about policies, infrastructure, facilities,\r\n education and activities)?\r\n
    • \r\n
    • \r\n What would assist you in making healthier choices at work?\r\n
    • \r\n
    • What is currently supporting you to be healthy at work?
    • \r\n
    • \r\n Are there any barriers preventing you from being healthy at\r\n work?\r\n
    • \r\n
    • \r\n Do you think there is adequate infrastructure and facilities to\r\n support you to be healthy at work? If no, what could be\r\n improved?\r\n
    • \r\n
    • \r\n What would encourage you to participate in a workplace health\r\n and wellbeing program?\r\n
    • \r\n
    • \r\n What motivates you to make healthy choices (e.g. improved\r\n health, family role model)?\r\n
    • \r\n
    \r\n \r\n ),\r\n },\r\n ],\r\n },\r\n];\r\n","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport conversation from \"../assets/svg/04_conversation.svg\";\r\nimport eye from \"../assets/svg/04_eye.svg\";\r\nimport file from \"../assets/svg/04_file.svg\";\r\nimport graph from \"../assets/svg/04_graph.svg\";\r\n\r\nexport const StepsToAssess: React.FC<{}> = () => {\r\n return (\r\n \r\n {data.map(({ imgSrc, title, description }, idx) => (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {title}

    \r\n {description}\r\n
    \r\n
    \r\n ))}\r\n
    \r\n );\r\n};\r\n\r\nconst StyledList = styled.ul`\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n counter-reset: listCount;\r\n`;\r\n\r\nconst StyledRow = styled.li`\r\n position: relative;\r\n display: flex;\r\n padding-bottom: 2rem;\r\n\r\n &::before {\r\n content: counter(listCount);\r\n counter-increment: listCount;\r\n position: absolute;\r\n top: 0;\r\n left: calc(50% - 1.5rem);\r\n width: 3rem;\r\n height: 3rem;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 1.25em;\r\n font-weight: 800;\r\n border: solid 1px ${(p) => p.theme.info};\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n &:not(:last-of-type)::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 3rem;\r\n left: calc(50% - 1px);\r\n width: 1px;\r\n height: calc(100% - 3rem);\r\n background: ${(p) => p.theme.info};\r\n }\r\n`;\r\n\r\ntype DataType = {\r\n imgSrc: any;\r\n title: string;\r\n description: JSX.Element;\r\n};\r\n\r\nconst data: DataType[] = [\r\n {\r\n imgSrc: file,\r\n title:\r\n \"REVIEW EXISTING HEALTH (OR RELATED) POLICIES AND WHAT THEY DO AND DON’T COVER.\",\r\n description: (\r\n <>\r\n

    \r\n Find out what you already have in place, work out whether it’s\r\n sufficient and highlight any gaps.\r\n

    \r\n

    \r\n For example, you might have a comprehensive alcohol, physical activity\r\n and healthy eating policy, but not a smoke-free policy, despite having\r\n a number of smokers on site. You have identified that you need to\r\n start developing a smoke-free policy that’s in line with current\r\n legislation.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: eye,\r\n title: \"OBSERVE AND AUDIT THE WORKPLACE ENVIRONMENT/S\",\r\n description: (\r\n <>\r\n

    \r\n Observe the workplace environment, see how employees interact with it\r\n and how this may be affecting health in order to identify\r\n improvements.\r\n

    \r\n

    \r\n For example, 100% of your workforce might be seated behind computers\r\n all day, with employees only getting up every now and again to collect\r\n printing, get a cup of tea or use the bathroom. Employees might even\r\n eat lunch at their desk! How would you alter the environment to\r\n encourage people to get up out of their seats more?\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: conversation,\r\n title:\r\n \"REVIEW CURRENT AND PAST HEALTH ACTIVITIES AND ANY EVALUATION INFORMATION.\",\r\n description: (\r\n <>\r\n

    \r\n Do you know if any activities have already taken place at your\r\n organisation, and how successful they were? Use this information to\r\n plan the next event.\r\n

    \r\n

    \r\n For example, if a healthy cooking class was carried out, ensure you\r\n consult with staff on what they thought of it. If you find out quite a\r\n lot of people attended, that is a great indicator to show staff are\r\n already motivated to make healthy behaviour changes.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n imgSrc: graph,\r\n title:\r\n \"GATHER DEMOGRAPHIC INFORMATION ABOUT YOUR WORKFORCE (E.G. PERCENTAGE OF MEN VS WOMEN, AVERAGE AGE, LANGUAGE SPOKEN, EDUCATION LEVEL ETC)\",\r\n description: (\r\n <>\r\n

    \r\n If you’re able to collect this information, it can tell you a lot\r\n about how to best promote your program. Ensuring anonymity for\r\n employees will help with participation in a survey that seeks to\r\n gather this type of information.\r\n

    \r\n

    \r\n For example, if English is a second language to many employees, you\r\n would need to tailor your resources and messages to ensure they are\r\n meeting your employees’ needs.\r\n

    \r\n \r\n ),\r\n },\r\n];\r\n","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nvar _leaveRenders, _enterRenders;\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { ENTERED, ENTERING, EXITING } from './Transition';\nimport TransitionGroupContext from './TransitionGroupContext';\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (React.isValidElement(oldChildren) && React.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nexport var modes = {\n out: 'out-in',\n in: 'in-out'\n};\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return React.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [React.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(ENTERED, React.cloneElement(children, {\n in: true\n }));\n })\n }), React.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n *
    \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === ENTERING && props.mode === modes.in) {\n return {\n status: ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: EXITING\n };\n }\n\n return {\n current: React.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(React.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: PropTypes.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: PropTypes.oneOfType([PropTypes.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nexport default SwitchTransition;","var _style, _defs, _use, _clipPath, _g;\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\nimport * as React from \"react\";\n\nfunction Svg04File(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n id: \"04_file_svg__Layer_1\",\n x: 0,\n y: 0,\n viewBox: \"0 0 100 100\",\n xmlSpace: \"preserve\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".04_file_svg__st6{fill:#fff}.04_file_svg__st9{fill:#ecf1fa}.04_file_svg__st13{fill:#19b0bf}.04_file_svg__st14{fill:#a7dae9}\")), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"04_file_svg__SVGID_1_\",\n cx: 50,\n cy: 50,\n r: 50\n }))), _use || (_use = /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#04_file_svg__SVGID_1_\",\n overflow: \"visible\",\n opacity: 0.21,\n fill: \"#fff\"\n })), _clipPath || (_clipPath = /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"04_file_svg__SVGID_2_\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#04_file_svg__SVGID_1_\",\n overflow: \"visible\",\n opacity: 0.21\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#04_file_svg__SVGID_2_)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st6\",\n d: \"M32.2 49.3c-3.2 0-5.8 2.6-5.8 5.8v9.4c0 3.2 2.6 5.8 5.8 5.8h9.4c3.2 0 5.8-2.6 5.8-5.8v-9.4c0-3.2-2.6-5.8-5.8-5.8h-9.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st6\",\n d: \"M52.4 67.9c0 1.3-1.1 2.4-2.4 2.4H32.1c-1.3 0-2.4-1.1-2.4-2.4 0-1.3 1.1-2.4 2.4-2.4H50c1.3-.1 2.4 1 2.4 2.4zM61.4 61.8c0 1.3-1.1 2.4-2.4 2.4H41.1c-1.3 0-2.4-1.1-2.4-2.4 0-1.3 1.1-2.4 2.4-2.4H59c1.3 0 2.4 1 2.4 2.4zM62.5 55.7c0 1.3-1.1 2.4-2.4 2.4H42.2c-1.3 0-2.4-1.1-2.4-2.4 0-1.3 1.1-2.4 2.4-2.4h17.9c1.3 0 2.4 1.1 2.4 2.4zM55.3 49.3c0 1.3-1.1 2.4-2.4 2.4H35c-1.3 0-2.4-1.1-2.4-2.4 0-1.3 1.1-2.4 2.4-2.4h17.9c1.3 0 2.4 1.1 2.4 2.4z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st6\",\n d: \"M16.8 86.9L39.7 64c1.7-1.7 1.7-4.4 0-6.1L34.8 53c-1.7-1.7-4.4-1.7-6.1 0L5.8 75.9l11 11z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n transform: \"rotate(45.001 16 76.038)\",\n fill: \"#484871\",\n d: \"M6 62.9h19.9v26.2H6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n transform: \"rotate(45.001 25.14 66.898)\",\n className: \"04_file_svg__st9\",\n d: \"M15.2 66.5h19.9v.7H15.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n transform: \"rotate(-45.001 19.002 80.096)\",\n fill: \"#2f2f4e\",\n d: \"M6.6 75.1h24.7v10H6.6z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st9\",\n d: \"M72.5 76.2V31.5L61.8 20.7H31.9v55.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#cce5f3\",\n d: \"M61.8 31.5h10.7L61.8 20.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ced9e8\",\n d: \"M72.5 31.5H61.8l10.7 10.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st13\",\n d: \"M39.6 33.4H52v1H39.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st14\",\n d: \"M39.6 38.4h25.2v1H39.6zM39.6 41.6h25.2v1H39.6zM39.6 44.8h25.2v1H39.6zM39.6 48h25.2v1H39.6zM39.6 51.2h25.2v1H39.6zM39.6 54.4h25.2v1H39.6zM39.6 57.5h25.2v1H39.6z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st13\",\n d: \"M54.9 69.3c-.3 0-.4-.3-.5-.6-.2-.8-.1-1.6.3-2.3-.1-.2-.2-.5-.3-.7-.1-.1 0-.3.1-.3.1-.1.3 0 .3.1.1.1.2.3.2.5.5-.5 1-.7 1.7-.7.8 0 1.6.7 2 1.4 0 0 0 .1.1.1.8-.5 1.8-.9 2.3-.8.7.1.8.8.8 1.2.2-.3.3-.5.3-.6.2-.5.4-.5 1.6-.3h.3c.1 0 .2.2.2.3s-.2.2-.3.2h-.3c-.5-.1-.9-.2-1-.2v.1l-.4.8c-.2.3-.4.5-.6.4-.2-.1-.2-.3-.2-.6 0-.6-.1-.9-.4-.9-.5-.1-1.4.3-2 .8.2.4.3.9.1 1.2-.1.1-.3.3-.7.2-.6-.2-.6-.6-.5-.7.1-.3.3-.5.6-.8 0 0 0-.1-.1-.1-.4-.6-1-1.2-1.6-1.2-.6 0-1.1.3-1.5.8.3 1.1.2 2.3-.1 2.6-.2.1-.3.1-.4.1zm0-2.1c-.1.4-.2.9 0 1.3 0-.2.1-.7 0-1.3zm3.7.4c-.2.2-.3.3-.3.4 0 0 0 .1.2.1h.2c.1 0 .1-.2-.1-.5z\"\n }))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st6\",\n d: \"M30 43.1l6.7-.8c2.3-.3 3.9-2.4 3.6-4.7l-.2-1.4V36l-5.7.6-4.4 6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st6\",\n d: \"M37.5 40.7l-5.3 6.1-4.4-3.7 6.6-6.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_file_svg__st6\",\n d: \"M20.6 61.2L27.9 43c.5.1.9.2 1.4.4 4.4 1.8 6.1 8 3.8 13.8-1.2 3.1-3.3 5.4-5.7 6.7l-6.8-2.7z\"\n })))));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEwMCAxMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiMwMTAxMDE7fQ0KCS5zdDF7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS13aWR0aDozO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MntmaWxsOm5vbmU7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q0e2ZpbGw6IzIzMUYyMDt9DQoJLnN0NXtmaWxsOiMxOTgwQjQ7fQ0KCS5zdDZ7ZmlsbDojRkZGRkZGO30NCgkuc3Q3e2NsaXAtcGF0aDp1cmwoI1NWR0lEXzJfKTt9DQoJLnN0OHtmaWxsOiM0ODQ4NzE7fQ0KCS5zdDl7ZmlsbDojRUNGMUZBO30NCgkuc3QxMHtmaWxsOiMyRjJGNEU7fQ0KCS5zdDExe2ZpbGw6I0NDRTVGMzt9DQoJLnN0MTJ7ZmlsbDojQ0VEOUU4O30NCgkuc3QxM3tmaWxsOiMxOUIwQkY7fQ0KCS5zdDE0e2ZpbGw6I0E3REFFOTt9DQoJLnN0MTV7b3BhY2l0eTowLjI7ZmlsbDojRkZGRkZGO30NCgkuc3QxNntmaWxsOiNGMkYyRjI7fQ0KCS5zdDE3e2ZpbGw6IzlDQ0VERjt9DQoJLnN0MTh7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9DQoJLnN0MTl7ZmlsbDojNURCQUNBO30NCgkuc3QyMHtmaWxsOiM1MUE0QjM7fQ0KCS5zdDIxe2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQ0KCS5zdDIye2ZpbGw6IzkwQzRENjt9DQoJLnN0MjN7ZmlsbDp1cmwoI1NWR0lEXzVfKTt9DQoJLnN0MjR7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9DQoJLnN0MjV7b3BhY2l0eTowLjI7fQ0KCS5zdDI2e2ZpbGw6IzIzMjMyMzt9DQoJLnN0Mjd7ZmlsbDojRDNEM0QzO30NCgkuc3QyOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF84Xyk7fQ0KCS5zdDI5e2ZpbGw6I0QxRUJGQTt9DQo8L3N0eWxlPg0KPGc+DQoJPGc+DQoJCTxkZWZzPg0KCQkJPGNpcmNsZSBpZD0iU1ZHSURfMV8iIGN4PSI1MCIgY3k9IjUwIiByPSI1MCIvPg0KCQk8L2RlZnM+DQoJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzFfIiBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTtvcGFjaXR5OjAuMjE7ZmlsbDojRkZGRkZGOyIvPg0KCQk8Y2xpcFBhdGggaWQ9IlNWR0lEXzJfIj4NCgkJCTx1c2UgeGxpbms6aHJlZj0iI1NWR0lEXzFfIiBzdHlsZT0ib3ZlcmZsb3c6dmlzaWJsZTtvcGFjaXR5OjAuMjE7Ii8+DQoJCTwvY2xpcFBhdGg+DQoJCTxnIGNsYXNzPSJzdDciPg0KCQkJPGc+DQoJCQkJPGc+DQoJCQkJCTxnPg0KCQkJCQkJPHBhdGggY2xhc3M9InN0NiIgZD0iTTMyLjIsNDkuM2MtMy4yLDAtNS44LDIuNi01LjgsNS44bDAsOS40YzAsMy4yLDIuNiw1LjgsNS44LDUuOGg5LjRjMy4yLDAsNS44LTIuNiw1LjgtNS44bDAtOS40ICAgICAgICBjMC0zLjItMi42LTUuOC01LjgtNS44TDMyLjIsNDkuM3oiLz4NCgkJCQkJCTxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik01Mi40LDY3LjljMCwxLjMtMS4xLDIuNC0yLjQsMi40bC0xNy45LDBjLTEuMywwLTIuNC0xLjEtMi40LTIuNGwwLDBjMC0xLjMsMS4xLTIuNCwyLjQtMi40bDE3LjksMCAgICAgICAgQzUxLjMsNjUuNCw1Mi40LDY2LjUsNTIuNCw2Ny45TDUyLjQsNjcuOXoiLz4NCgkJCQkJCTxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik02MS40LDYxLjhjMCwxLjMtMS4xLDIuNC0yLjQsMi40bC0xNy45LDBjLTEuMywwLTIuNC0xLjEtMi40LTIuNGwwLDBjMC0xLjMsMS4xLTIuNCwyLjQtMi40bDE3LjksMCAgICAgICAgQzYwLjMsNTkuNCw2MS40LDYwLjQsNjEuNCw2MS44TDYxLjQsNjEuOHoiLz4NCgkJCQkJCTxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik02Mi41LDU1LjdjMCwxLjMtMS4xLDIuNC0yLjQsMi40bC0xNy45LDBjLTEuMywwLTIuNC0xLjEtMi40LTIuNGwwLDBjMC0xLjMsMS4xLTIuNCwyLjQtMi40bDE3LjksMCAgICAgICAgQzYxLjQsNTMuMyw2Mi41LDU0LjQsNjIuNSw1NS43TDYyLjUsNTUuN3oiLz4NCgkJCQkJCTxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik01NS4zLDQ5LjNjMCwxLjMtMS4xLDIuNC0yLjQsMi40SDM1Yy0xLjMsMC0yLjQtMS4xLTIuNC0yLjRsMCwwYzAtMS4zLDEuMS0yLjQsMi40LTIuNGgxNy45ICAgICAgICBDNTQuMiw0Ni45LDU1LjMsNDgsNTUuMyw0OS4zTDU1LjMsNDkuM3oiLz4NCgkJCQkJCTxwYXRoIGNsYXNzPSJzdDYiIGQ9Ik0xNi44LDg2LjlsMjIuOS0yMi45YzEuNy0xLjcsMS43LTQuNCwwLTYuMUwzNC44LDUzYy0xLjctMS43LTQuNC0xLjctNi4xLDBMNS44LDc1LjlMMTYuOCw4Ni45eiIvPg0KCQkJCQk8L2c+DQoJCQkJPC9nPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPGc+DQoJCQkJCTxnPg0KCQkJCQkJDQoJCQkJCQkJPHJlY3QgeD0iNiIgeT0iNjIuOSIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIDAuNzA3MSAtMC43MDcxIDAuNzA3MSA1OC40NTI2IDEwLjk1ODEpIiBjbGFzcz0ic3Q4IiB3aWR0aD0iMTkuOSIgaGVpZ2h0PSIyNi4yIi8+DQoJCQkJCQkNCgkJCQkJCQk8cmVjdCB4PSIxNS4yIiB5PSI2Ni41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjcwNzEgMC43MDcxIC0wLjcwNzEgMC43MDcxIDU0LjY2NzQgMS44MTc2KSIgY2xhc3M9InN0OSIgd2lkdGg9IjE5LjkiIGhlaWdodD0iMC43Ii8+DQoJCQkJCTwvZz4NCgkJCQkJDQoJCQkJCQk8cmVjdCB4PSI2LjYiIHk9Ijc1LjEiIHRyYW5zZm9ybT0ibWF0cml4KDAuNzA3MSAtMC43MDcxIDAuNzA3MSAwLjcwNzEgLTUxLjA2OTggMzYuODk2NikiIGNsYXNzPSJzdDEwIiB3aWR0aD0iMjQuNyIgaGVpZ2h0PSIxMCIvPg0KCQkJCTwvZz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwb2x5Z29uIGNsYXNzPSJzdDkiIHBvaW50cz0iNzIuNSw3Ni4yIDcyLjUsNDYuNCA3Mi41LDMxLjUgNjEuOCwyMC43IDMxLjksMjAuNyAzMS45LDMxLjggMzEuOSw0Ni40IDMxLjksNzYuMiAgICAgIi8+DQoJCQkJPHBvbHlnb24gY2xhc3M9InN0MTEiIHBvaW50cz0iNjEuOCwzMS41IDcyLjUsMzEuNSA2MS44LDIwLjcgICAgICIvPg0KCQkJCTxwb2x5Z29uIGNsYXNzPSJzdDEyIiBwb2ludHM9IjcyLjUsMzEuNSA2MS44LDMxLjUgNzIuNSw0Mi4yICAgICAiLz4NCgkJCQk8cmVjdCB4PSIzOS42IiB5PSIzMy40IiBjbGFzcz0ic3QxMyIgd2lkdGg9IjEyLjQiIGhlaWdodD0iMSIvPg0KCQkJCTxnPg0KCQkJCQk8cmVjdCB4PSIzOS42IiB5PSIzOC40IiBjbGFzcz0ic3QxNCIgd2lkdGg9IjI1LjIiIGhlaWdodD0iMSIvPg0KCQkJCQk8cmVjdCB4PSIzOS42IiB5PSI0MS42IiBjbGFzcz0ic3QxNCIgd2lkdGg9IjI1LjIiIGhlaWdodD0iMSIvPg0KCQkJCQk8cmVjdCB4PSIzOS42IiB5PSI0NC44IiBjbGFzcz0ic3QxNCIgd2lkdGg9IjI1LjIiIGhlaWdodD0iMSIvPg0KCQkJCQk8cmVjdCB4PSIzOS42IiB5PSI0OCIgY2xhc3M9InN0MTQiIHdpZHRoPSIyNS4yIiBoZWlnaHQ9IjEiLz4NCgkJCQkJPHJlY3QgeD0iMzkuNiIgeT0iNTEuMiIgY2xhc3M9InN0MTQiIHdpZHRoPSIyNS4yIiBoZWlnaHQ9IjEiLz4NCgkJCQkJPHJlY3QgeD0iMzkuNiIgeT0iNTQuNCIgY2xhc3M9InN0MTQiIHdpZHRoPSIyNS4yIiBoZWlnaHQ9IjEiLz4NCgkJCQkJPHJlY3QgeD0iMzkuNiIgeT0iNTcuNSIgY2xhc3M9InN0MTQiIHdpZHRoPSIyNS4yIiBoZWlnaHQ9IjEiLz4NCgkJCQk8L2c+DQoJCQkJPGc+DQoJCQkJCTxwYXRoIGNsYXNzPSJzdDEzIiBkPSJNNTQuOSw2OS4zQzU0LjksNjkuMyw1NC45LDY5LjMsNTQuOSw2OS4zYy0wLjMsMC0wLjQtMC4zLTAuNS0wLjZjLTAuMi0wLjgtMC4xLTEuNiwwLjMtMi4zICAgICAgIGMtMC4xLTAuMi0wLjItMC41LTAuMy0wLjdjLTAuMS0wLjEsMC0wLjMsMC4xLTAuM2MwLjEtMC4xLDAuMywwLDAuMywwLjFjMC4xLDAuMSwwLjIsMC4zLDAuMiwwLjVjMC41LTAuNSwxLTAuNywxLjctMC43ICAgICAgIGMwLjgsMCwxLjYsMC43LDIsMS40YzAsMCwwLDAuMSwwLjEsMC4xYzAuOC0wLjUsMS44LTAuOSwyLjMtMC44YzAuNywwLjEsMC44LDAuOCwwLjgsMS4yYzAuMi0wLjMsMC4zLTAuNSwwLjMtMC42ICAgICAgIGMwLjItMC41LDAuNC0wLjUsMS42LTAuM2wwLjMsMGMwLjEsMCwwLjIsMC4yLDAuMiwwLjNzLTAuMiwwLjItMC4zLDAuMmwtMC4zLDBjLTAuNS0wLjEtMC45LTAuMi0xLTAuMmMwLDAsMCwwLjEsMCwwLjEgICAgICAgYy0wLjEsMC4yLTAuMiwwLjQtMC40LDAuOGMtMC4yLDAuMy0wLjQsMC41LTAuNiwwLjRjLTAuMi0wLjEtMC4yLTAuMy0wLjItMC42YzAtMC42LTAuMS0wLjktMC40LTAuOWMtMC41LTAuMS0xLjQsMC4zLTIsMC44ICAgICAgIGMwLjIsMC40LDAuMywwLjksMC4xLDEuMmMtMC4xLDAuMS0wLjMsMC4zLTAuNywwLjJjLTAuNi0wLjItMC42LTAuNi0wLjUtMC43YzAuMS0wLjMsMC4zLTAuNSwwLjYtMC44YzAsMCwwLTAuMS0wLjEtMC4xICAgICAgIGMtMC40LTAuNi0xLTEuMi0xLjYtMS4yYy0wLjYsMC0xLjEsMC4zLTEuNSwwLjhjMC4zLDEuMSwwLjIsMi4zLTAuMSwyLjZDNTUuMSw2OS4zLDU1LDY5LjMsNTQuOSw2OS4zTDU0LjksNjkuM3ogTTU0LjksNjcuMiAgICAgICBjLTAuMSwwLjQtMC4yLDAuOSwwLDEuM2MwLDAsMCwwLDAsMEM1NC45LDY4LjMsNTUsNjcuOCw1NC45LDY3LjJMNTQuOSw2Ny4yeiBNNTguNiw2Ny42Yy0wLjIsMC4yLTAuMywwLjMtMC4zLDAuNCAgICAgICBjMCwwLDAsMC4xLDAuMiwwLjFjMC4xLDAsMC4yLDAsMC4yLDBDNTguOCw2OC4xLDU4LjgsNjcuOSw1OC42LDY3LjZMNTguNiw2Ny42eiIvPg0KCQkJCTwvZz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxnPg0KCQkJCQk8cGF0aCBjbGFzcz0ic3Q2IiBkPSJNMzAsNDMuMWw2LjctMC44YzIuMy0wLjMsMy45LTIuNCwzLjYtNC43bC0wLjItMS40YzAtMC4xLDAtMC4xLDAtMC4ybC01LjcsMC42TDMwLDQzLjF6Ii8+DQoJCQkJPC9nPg0KCQkJCTxwb2x5Z29uIGNsYXNzPSJzdDYiIHBvaW50cz0iMzcuNSw0MC43IDMyLjIsNDYuOCAyNy44LDQzLjEgMzQuNCwzNi42ICAgICAiLz4NCgkJCQk8cGF0aCBjbGFzcz0ic3Q2IiBkPSJNMjAuNiw2MS4ybDcuMy0xOC4yYzAuNSwwLjEsMC45LDAuMiwxLjQsMC40YzQuNCwxLjgsNi4xLDgsMy44LDEzLjhjLTEuMiwzLjEtMy4zLDUuNC01LjcsNi43TDIwLjYsNjEuMnoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCjwvZz4NCjwvc3ZnPg==\";\nexport { Svg04File as ReactComponent };","var _style, _circle, _path, _circle2, _circle3, _circle4;\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\nimport * as React from \"react\";\n\nfunction Svg04Eye(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"04_eye_svg__Layer_1\",\n x: 0,\n y: 0,\n viewBox: \"0 0 100 100\",\n xmlSpace: \"preserve\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null)), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n r: 50,\n opacity: 0.2,\n fill: \"#fff\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.8 30c-15.2 0-28.3 7.9-33.9 19.1 5.6 11.2 18.7 19.1 33.9 19.1s28.3-7.9 33.9-19.1C79.1 37.9 66 30 50.8 30z\",\n fill: \"#f2f2f2\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50.8,\n cy: 49.1,\n r: 16.7,\n fill: \"#9ccedf\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50.8,\n cy: 49.1,\n r: 10.7,\n fill: \"#2f2f4e\"\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 43.9,\n cy: 43.4,\n r: 3,\n fill: \"#fff\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEwMCAxMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiMwMTAxMDE7fQ0KCS5zdDF7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS13aWR0aDozO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MntmaWxsOm5vbmU7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q0e2ZpbGw6IzIzMUYyMDt9DQoJLnN0NXtmaWxsOiMxOTgwQjQ7fQ0KCS5zdDZ7ZmlsbDojRkZGRkZGO30NCgkuc3Q3e2NsaXAtcGF0aDp1cmwoI1NWR0lEXzJfKTt9DQoJLnN0OHtmaWxsOiM0ODQ4NzE7fQ0KCS5zdDl7ZmlsbDojRUNGMUZBO30NCgkuc3QxMHtmaWxsOiMyRjJGNEU7fQ0KCS5zdDExe2ZpbGw6I0NDRTVGMzt9DQoJLnN0MTJ7ZmlsbDojQ0VEOUU4O30NCgkuc3QxM3tmaWxsOiMxOUIwQkY7fQ0KCS5zdDE0e2ZpbGw6I0E3REFFOTt9DQoJLnN0MTV7b3BhY2l0eTowLjI7ZmlsbDojRkZGRkZGO30NCgkuc3QxNntmaWxsOiNGMkYyRjI7fQ0KCS5zdDE3e2ZpbGw6IzlDQ0VERjt9DQoJLnN0MTh7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9DQoJLnN0MTl7ZmlsbDojNURCQUNBO30NCgkuc3QyMHtmaWxsOiM1MUE0QjM7fQ0KCS5zdDIxe2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQ0KCS5zdDIye2ZpbGw6IzkwQzRENjt9DQoJLnN0MjN7ZmlsbDp1cmwoI1NWR0lEXzVfKTt9DQoJLnN0MjR7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9DQoJLnN0MjV7b3BhY2l0eTowLjI7fQ0KCS5zdDI2e2ZpbGw6IzIzMjMyMzt9DQoJLnN0Mjd7ZmlsbDojRDNEM0QzO30NCgkuc3QyOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF84Xyk7fQ0KCS5zdDI5e2ZpbGw6I0QxRUJGQTt9DQo8L3N0eWxlPg0KPGc+DQoJPGNpcmNsZSBjbGFzcz0ic3QxNSIgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+DQoJPGc+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MTYiIGQ9Ik01MC44LDMwYy0xNS4yLDAtMjguMyw3LjktMzMuOSwxOS4xYzUuNiwxMS4yLDE4LjcsMTkuMSwzMy45LDE5LjFzMjguMy03LjksMzMuOS0xOS4xICAgICAgQzc5LjEsMzcuOSw2NiwzMCw1MC44LDMweiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPGNpcmNsZSBjbGFzcz0ic3QxNyIgY3g9IjUwLjgiIGN5PSI0OS4xIiByPSIxNi43Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8Y2lyY2xlIGNsYXNzPSJzdDEwIiBjeD0iNTAuOCIgY3k9IjQ5LjEiIHI9IjEwLjciLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxjaXJjbGUgY2xhc3M9InN0NiIgY3g9IjQzLjkiIGN5PSI0My40IiByPSIzIi8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4=\";\nexport { Svg04Eye as ReactComponent };","var _style, _circle, _circle2, _path, _path2, _path3, _linearGradient, _path4, _path5, _path6, _path7, _linearGradient2, _path8, _path9, _path10, _path11, _path12, _g, _path13, _path14, _circle3, _circle4, _circle5;\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\nimport * as React from \"react\";\n\nfunction Svg04Conversation(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"04_conversation_svg__Layer_1\",\n x: 0,\n y: 0,\n viewBox: \"0 0 100 100\",\n xmlSpace: \"preserve\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".04_conversation_svg__st6{fill:#fff}.04_conversation_svg__st8{fill:#484871}.04_conversation_svg__st10{fill:#2f2f4e}.04_conversation_svg__st19{fill:#5dbaca}.04_conversation_svg__st20{fill:#51a4b3}.04_conversation_svg__st22{fill:#90c4d6}\")), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n r: 50,\n opacity: 0.2,\n fill: \"#fff\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n r: 50,\n fill: \"none\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st6\",\n d: \"M19.6 72.3c.7-2.4 4.9-4.2 8.1-5.4 1-.4 1.3-2.1 1.4-3.4-.5-.3-.9-.8-1.3-1.4-.6-.9-1.2-1.6-1.6-2.7-.3 0-.6-.3-.8-.6-.7-1.2-1.1-3.1-.8-3.7.1-.3.5-.4.8-.4-.2-4.3 1.9-6.8 4.5-7.8.6-.2.5-.3 1.9-.6.8-.2 1.8-.2 2.2-.1.3.1 1.6.7 1.4 1.2 0 0 1.7-.5 2 .9.1.1.1 0 0 .1 1.1.8 2.5 3.2 2.3 6.4.3 0 .7.1.9.4.2.6-.1 2.5-.8 3.7-.2.3-.6.6-.9.6-.5 1.2-1 1.8-1.6 2.7-.5.7-.9 1.2-1.4 1.5 0 1.2.3 2.5 1.4 2.8 2 .5 7.5 3.5 8.4 6.2.5 1.6.6 1.7.6 1.7 0 1.2-.5 2.2-1.8 2.2H20.6c-1.3 0-1.4-.9-1.4-2-.1-.7-.1-.5.4-2.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st8\",\n d: \"M27.7 66.7c.4-.2.7-.5.9-1l3.7 1.5 3.7-1.9c.2.5.5.9 1.1 1 2 .5 7.6 3.5 8.5 6.2.5 1.6.6 1.6.6 1.6 0 1.2.4 2.2-.9 2.2H19.8c-1.3 0-1.1-1.5-1.1-2.1 0-.5.2-1.3.5-2.2.6-1.9 5.3-4.1 8.5-5.3z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st10\",\n d: \"M32.3 68.1v-.2l3.7-2.1c.2.5.7.8 1.2 1 2 .5 8 3.8 8.9 6 .4.9.5 1.8.5 1.8.1.9-.1 1.7-1.4 1.7h-13v-8.2z\"\n })), _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"04_conversation_svg__SVGID_2_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 29.35,\n y1: 71.285,\n x2: 34.954,\n y2: 71.873\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e6e6e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#c9c9c9\"\n }))), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#04_conversation_svg__SVGID_2_)\",\n d: \"M32.3 67.2l-4.6.9 2.8 8.3h3.9l2.5-7.4-.6-2z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st19\",\n d: \"M31.4 71l-1.3 5.4h4.8L33.3 71z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st20\",\n d: \"M32.4 76.4h2.5L33.3 71h-.9z\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st19\",\n d: \"M34.2 69.8c-.2 1-1 1.8-1.8 1.8s-1.6-.8-1.8-1.8c-.2-1 .5-1.8 1.6-1.8h.5c1-.1 1.7.8 1.5 1.8z\"\n })), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"04_conversation_svg__SVGID_3_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 32.395,\n y1: 67.981,\n x2: 37.309,\n y2: 67.981\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e6e6e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#dcdbdb\"\n }))), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#04_conversation_svg__SVGID_3_)\",\n d: \"M36.1 65.3l-3.7 1.9 2.4 3.5 2.5-4.3z\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st6\",\n d: \"M32.3 67.2L30 70.8l-2.6-3.9 1.4-1.6z\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st22\",\n d: \"M35.7 63.6s-1.4 1.1-3.2 1.1c-1 0-2.2-.5-2.2-.5l2.6 2.7 3-1.6s-.3-1.2-.2-1.7z\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st8\",\n d: \"M36.9 66l-3.2 10.4h2.4l2-3.9-1.5-1.3 2.1.1.2-4.5z\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st10\",\n d: \"M27.9 66.3l3.2 10.1h-2.8l-2.1-4L28 71l-2.3.2.4-3.9zM29.2 50.1s2.2 1.3 6.7.1c.8.1 2.5.8 2.1 2.4-.2.7.6 2.7.6 2.7s.7-.7 1-.7c0-.6.2-3.9-2.2-6.4.1-.1-.6-1.3-1.9-1.2-.3-.3-.6-.9-2-1.1-1.4-.1-4.2.8-4.9 1.4-.5.1-3.7 2.1-3.4 7.3l.9.5s.8-1.5.9-2.3c-.2-.9.4-3 2.2-2.7z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st6\",\n d: \"M54.2 72.3c.7-2.4 4.9-4.2 8.1-5.4 1-.4 1.3-2.1 1.4-3.4-.5-.3-.9-.8-1.3-1.4-.6-.9-1.2-1.6-1.6-2.7-.3 0-.6-.3-.8-.6-.7-1.2-1.1-3.1-.8-3.7.1-.3.5-.4.8-.4-.2-4.3 1.9-6.8 4.5-7.8.6-.2.5-.3 1.9-.6.8-.2 1.8-.2 2.2-.1.3.1 1.6.7 1.4 1.2 0 0 1.7-.5 2 .9.1.1.1 0 0 .1 1.1.8 2.5 3.2 2.3 6.4.3 0 .7.1.9.4.2.6-.1 2.5-.8 3.7-.2.3-.6.6-.9.6-.5 1.2-1 1.8-1.6 2.7-.5.7-.9 1.2-1.4 1.5 0 1.2.3 2.5 1.4 2.8 2 .5 7.5 3.5 8.4 6.2.5 1.6.6 1.7.6 1.7 0 1.2-.5 2.2-1.8 2.2H55.2c-1.3 0-1.4-.9-1.4-2 0-.7-.1-.5.4-2.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st8\",\n d: \"M62.4 66.7c.4-.2.7-.5.9-1l3.7 1.5 3.7-1.9c.2.5.5.9 1.1 1 2 .5 7.6 3.5 8.5 6.2.5 1.6.6 1.6.6 1.6 0 1.2.4 2.2-.9 2.2H54.4c-1.3 0-1.1-1.5-1.1-2.1 0-.5.2-1.3.5-2.2.7-1.9 5.4-4.1 8.6-5.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st10\",\n d: \"M67 68.1v-.2l3.7-2.1c.2.5.7.8 1.2 1 2 .5 8 3.8 8.9 6 .4.9.5 1.8.5 1.8.1.9-.1 1.7-1.4 1.7h-13v-8.2z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"04_conversation_svg__SVGID_4_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 64.004,\n y1: 71.285,\n x2: 69.608,\n y2: 71.873\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e6e6e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#c9c9c9\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#04_conversation_svg__SVGID_4_)\",\n d: \"M67 67.2l-4.7.9 2.9 8.3H69l2.5-7.4-.5-2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st19\",\n d: \"M66 71l-1.2 5.4h4.7L68 71z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st20\",\n d: \"M67 76.4h2.5L68 71h-1z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st19\",\n d: \"M68.8 69.8c-.2 1-1 1.8-1.8 1.8s-1.6-.8-1.8-1.8c-.2-1 .5-1.8 1.6-1.8h.5c1-.1 1.8.8 1.5 1.8z\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"04_conversation_svg__SVGID_5_\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 67.049,\n y1: 67.981,\n x2: 71.963,\n y2: 67.981\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#e6e6e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#dcdbdb\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#04_conversation_svg__SVGID_5_)\",\n d: \"M70.7 65.3L67 67.2l2.4 3.5 2.6-4.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st6\",\n d: \"M67 67.2l-2.4 3.6-2.6-3.9 1.4-1.6z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st22\",\n d: \"M70.3 63.6s-1.4 1.1-3.2 1.1c-1 0-2.2-.5-2.2-.5l2.6 2.7 3-1.6c.1 0-.2-1.2-.2-1.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st8\",\n d: \"M71.5 66l-3.1 10.4h2.4l2-3.9-1.5-1.3 2 .1.2-4.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st10\",\n d: \"M62.5 66.3l3.3 10.1H63l-2.1-4 1.8-1.4-2.4.2.4-3.9zM63.9 50.1s2.2 1.3 6.7.1c.8.1 2.5.8 2.1 2.4-.2.7.6 2.7.6 2.7s.7-.7 1-.7c0-.6.2-3.9-2.2-6.4.1-.1-.6-1.3-1.9-1.2-.3-.3-.6-.9-2-1.1-1.4-.1-4.2.8-4.9 1.4-.5.1-3.7 2.1-3.4 7.3l.9.5s.8-1.5.9-2.3c-.3-.9.4-3 2.2-2.7z\"\n }))), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st22\",\n d: \"M61.8 18.9H47.4c-3.6 0-6.5 2.9-6.5 6.5v9.2c0 3.6 2.9 6.5 6.5 6.5h4.5l9.3 5.2-1-5.2h1.7c3.6 0 6.5-2.9 6.5-6.5v-9.2c-.1-3.6-3-6.5-6.6-6.5z\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_conversation_svg__st10\",\n d: \"M52.6 13.7H36.9c-3.6 0-6.5 2.9-6.5 6.5v9.2c0 3.1 2.1 5.7 5 6.4l-1.8 8 9.5-7.8h9.4c3.6 0 6.5-2.9 6.5-6.5v-9.2c.1-3.7-2.8-6.6-6.4-6.6z\"\n })), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"04_conversation_svg__st6\",\n cx: 38.9,\n cy: 24.8,\n r: 2\n })), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"04_conversation_svg__st6\",\n cx: 44.8,\n cy: 24.8,\n r: 2\n })), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"04_conversation_svg__st6\",\n cx: 50.6,\n cy: 24.8,\n r: 2\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEwMCAxMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiMwMTAxMDE7fQ0KCS5zdDF7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS13aWR0aDozO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MntmaWxsOm5vbmU7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q0e2ZpbGw6IzIzMUYyMDt9DQoJLnN0NXtmaWxsOiMxOTgwQjQ7fQ0KCS5zdDZ7ZmlsbDojRkZGRkZGO30NCgkuc3Q3e2NsaXAtcGF0aDp1cmwoI1NWR0lEXzJfKTt9DQoJLnN0OHtmaWxsOiM0ODQ4NzE7fQ0KCS5zdDl7ZmlsbDojRUNGMUZBO30NCgkuc3QxMHtmaWxsOiMyRjJGNEU7fQ0KCS5zdDExe2ZpbGw6I0NDRTVGMzt9DQoJLnN0MTJ7ZmlsbDojQ0VEOUU4O30NCgkuc3QxM3tmaWxsOiMxOUIwQkY7fQ0KCS5zdDE0e2ZpbGw6I0E3REFFOTt9DQoJLnN0MTV7b3BhY2l0eTowLjI7ZmlsbDojRkZGRkZGO30NCgkuc3QxNntmaWxsOiNGMkYyRjI7fQ0KCS5zdDE3e2ZpbGw6IzlDQ0VERjt9DQoJLnN0MTh7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9DQoJLnN0MTl7ZmlsbDojNURCQUNBO30NCgkuc3QyMHtmaWxsOiM1MUE0QjM7fQ0KCS5zdDIxe2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQ0KCS5zdDIye2ZpbGw6IzkwQzRENjt9DQoJLnN0MjN7ZmlsbDp1cmwoI1NWR0lEXzVfKTt9DQoJLnN0MjR7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9DQoJLnN0MjV7b3BhY2l0eTowLjI7fQ0KCS5zdDI2e2ZpbGw6IzIzMjMyMzt9DQoJLnN0Mjd7ZmlsbDojRDNEM0QzO30NCgkuc3QyOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF84Xyk7fQ0KCS5zdDI5e2ZpbGw6I0QxRUJGQTt9DQo8L3N0eWxlPg0KPGc+DQoJPGNpcmNsZSBjbGFzcz0ic3QxNSIgY3g9IjUwIiBjeT0iNTAiIHI9IjUwIi8+DQoJPGNpcmNsZSBjbGFzcz0ic3QyIiBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiLz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3Q2IiBkPSJNMTkuNiw3Mi4zYzAuNy0yLjQsNC45LTQuMiw4LjEtNS40YzEtMC40LDEuMy0yLjEsMS40LTMuNGMtMC41LTAuMy0wLjktMC44LTEuMy0xLjQgICAgIGMtMC42LTAuOS0xLjItMS42LTEuNi0yLjdjLTAuMywwLTAuNi0wLjMtMC44LTAuNmMtMC43LTEuMi0xLjEtMy4xLTAuOC0zLjdjMC4xLTAuMywwLjUtMC40LDAuOC0wLjRjLTAuMi00LjMsMS45LTYuOCw0LjUtNy44ICAgICBjMC42LTAuMiwwLjUtMC4zLDEuOS0wLjZjMC44LTAuMiwxLjgtMC4yLDIuMi0wLjFjMC4zLDAuMSwxLjYsMC43LDEuNCwxLjJjMCwwLDEuNy0wLjUsMiwwLjljMC4xLDAuMSwwLjEsMCwwLDAuMSAgICAgYzEuMSwwLjgsMi41LDMuMiwyLjMsNi40YzAuMywwLDAuNywwLjEsMC45LDAuNGMwLjIsMC42LTAuMSwyLjUtMC44LDMuN2MtMC4yLDAuMy0wLjYsMC42LTAuOSwwLjZjLTAuNSwxLjItMSwxLjgtMS42LDIuNyAgICAgYy0wLjUsMC43LTAuOSwxLjItMS40LDEuNWMwLDEuMiwwLjMsMi41LDEuNCwyLjhjMiwwLjUsNy41LDMuNSw4LjQsNi4yYzAuNSwxLjYsMC42LDEuNywwLjYsMS43YzAsMS4yLTAuNSwyLjItMS44LDIuMkgyMC42ICAgICBjLTEuMywwLTEuNC0wLjktMS40LTJDMTkuMSw3My45LDE5LjEsNzQuMSwxOS42LDcyLjN6Ii8+DQoJCQk8cGF0aCBjbGFzcz0ic3Q4IiBkPSJNMjcuNyw2Ni43YzAuNC0wLjIsMC43LTAuNSwwLjktMWwzLjcsMS41bDMuNy0xLjljMC4yLDAuNSwwLjUsMC45LDEuMSwxYzIsMC41LDcuNiwzLjUsOC41LDYuMiAgICAgYzAuNSwxLjYsMC42LDEuNiwwLjYsMS42YzAsMS4yLDAuNCwyLjItMC45LDIuMkgxOS44Yy0xLjMsMC0xLjEtMS41LTEuMS0yLjFjMC0wLjUsMC4yLTEuMywwLjUtMi4yICAgICBDMTkuOCw3MC4xLDI0LjUsNjcuOSwyNy43LDY2Ljd6Ii8+DQoJCQk8cGF0aCBjbGFzcz0ic3QxMCIgZD0iTTMyLjMsNjguMWwwLTAuMmwzLjctMi4xYzAuMiwwLjUsMC43LDAuOCwxLjIsMWMyLDAuNSw4LDMuOCw4LjksNmMwLjQsMC45LDAuNSwxLjgsMC41LDEuOCAgICAgYzAuMSwwLjktMC4xLDEuNy0xLjQsMS43bC0xMywwVjY4LjF6Ii8+DQoJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzJfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI5LjM1MDMiIHkxPSI3MS4yODQ5IiB4Mj0iMzQuOTU0MyIgeTI9IjcxLjg3MzEiPg0KCQkJCTxzdG9wIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0U2RTZFNSIvPg0KCQkJCTxzdG9wIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0M5QzlDOSIvPg0KCQkJPC9saW5lYXJHcmFkaWVudD4NCgkJCTxwb2x5Z29uIHN0eWxlPSJmaWxsOnVybCgjU1ZHSURfMl8pOyIgcG9pbnRzPSIzMi4zLDY3LjIgMjcuNyw2OC4xIDMwLjUsNzYuNCAzNC40LDc2LjQgMzYuOSw2OSAzNi4zLDY3ICAgICIvPg0KCQkJPHBvbHlnb24gY2xhc3M9InN0MTkiIHBvaW50cz0iMzEuNCw3MSAzMC4xLDc2LjQgMzQuOSw3Ni40IDMzLjMsNzEgICAgIi8+DQoJCQk8cG9seWdvbiBjbGFzcz0ic3QyMCIgcG9pbnRzPSIzMi40LDc2LjQgMzQuOSw3Ni40IDMzLjMsNzEgMzIuNCw3MSAgICAiLz4NCgkJCTxwYXRoIGNsYXNzPSJzdDE5IiBkPSJNMzQuMiw2OS44Yy0wLjIsMS0xLDEuOC0xLjgsMS44Yy0wLjgsMC0xLjYtMC44LTEuOC0xLjhjLTAuMi0xLDAuNS0xLjgsMS42LTEuOGgwLjUgICAgIEMzMy43LDY3LjksMzQuNCw2OC44LDM0LjIsNjkuOHoiLz4NCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzIuMzk1MSIgeTE9IjY3Ljk4MTUiIHgyPSIzNy4zMDkxIiB5Mj0iNjcuOTgxNSI+DQoJCQkJPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFNkU1Ii8+DQoJCQkJPHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRENEQkRCIi8+DQoJCQk8L2xpbmVhckdyYWRpZW50Pg0KCQkJPHBvbHlnb24gY2xhc3M9InN0MTgiIHBvaW50cz0iMzYuMSw2NS4zIDMyLjQsNjcuMiAzNC44LDcwLjcgMzcuMyw2Ni40ICAgICIvPg0KCQkJPHBvbHlnb24gY2xhc3M9InN0NiIgcG9pbnRzPSIzMi4zLDY3LjIgMzAsNzAuOCAyNy40LDY2LjkgMjguOCw2NS4zICAgICIvPg0KCQkJPHBhdGggY2xhc3M9InN0MjIiIGQ9Ik0zNS43LDYzLjZjMCwwLTEuNCwxLjEtMy4yLDEuMWMtMSwwLTIuMi0wLjUtMi4yLTAuNWwyLjYsMi43bDMtMS42QzM1LjksNjUuMywzNS42LDY0LjEsMzUuNyw2My42eiIvPg0KCQkJPHBvbHlnb24gY2xhc3M9InN0OCIgcG9pbnRzPSIzNi45LDY2IDMzLjcsNzYuNCAzNi4xLDc2LjQgMzguMSw3Mi41IDM2LjYsNzEuMiAzOC43LDcxLjMgMzguOSw2Ni44ICAgICIvPg0KCQkJPHBvbHlnb24gY2xhc3M9InN0MTAiIHBvaW50cz0iMjcuOSw2Ni4zIDMxLjEsNzYuNCAyOC4zLDc2LjQgMjYuMiw3Mi40IDI4LDcxIDI1LjcsNzEuMiAyNi4xLDY3LjMgICAgIi8+DQoJCQk8cGF0aCBjbGFzcz0ic3QxMCIgZD0iTTI5LjIsNTAuMWMwLDAsMi4yLDEuMyw2LjcsMC4xYzAuOCwwLjEsMi41LDAuOCwyLjEsMi40Yy0wLjIsMC43LDAuNiwyLjcsMC42LDIuN3MwLjctMC43LDEtMC43ICAgICBjMC0wLjYsMC4yLTMuOS0yLjItNi40YzAuMS0wLjEtMC42LTEuMy0xLjktMS4yYy0wLjMtMC4zLTAuNi0wLjktMi0xLjFjLTEuNC0wLjEtNC4yLDAuOC00LjksMS40Yy0wLjUsMC4xLTMuNywyLjEtMy40LDcuMyAgICAgYzAsMCwwLjksMC41LDAuOSwwLjVzMC44LTEuNSwwLjktMi4zQzI2LjgsNTEuOSwyNy40LDQ5LjgsMjkuMiw1MC4xeiIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0NiIgZD0iTTU0LjIsNzIuM2MwLjctMi40LDQuOS00LjIsOC4xLTUuNGMxLTAuNCwxLjMtMi4xLDEuNC0zLjRjLTAuNS0wLjMtMC45LTAuOC0xLjMtMS40ICAgICBjLTAuNi0wLjktMS4yLTEuNi0xLjYtMi43Yy0wLjMsMC0wLjYtMC4zLTAuOC0wLjZjLTAuNy0xLjItMS4xLTMuMS0wLjgtMy43YzAuMS0wLjMsMC41LTAuNCwwLjgtMC40Yy0wLjItNC4zLDEuOS02LjgsNC41LTcuOCAgICAgYzAuNi0wLjIsMC41LTAuMywxLjktMC42YzAuOC0wLjIsMS44LTAuMiwyLjItMC4xYzAuMywwLjEsMS42LDAuNywxLjQsMS4yYzAsMCwxLjctMC41LDIsMC45YzAuMSwwLjEsMC4xLDAsMCwwLjEgICAgIGMxLjEsMC44LDIuNSwzLjIsMi4zLDYuNGMwLjMsMCwwLjcsMC4xLDAuOSwwLjRjMC4yLDAuNi0wLjEsMi41LTAuOCwzLjdjLTAuMiwwLjMtMC42LDAuNi0wLjksMC42Yy0wLjUsMS4yLTEsMS44LTEuNiwyLjcgICAgIGMtMC41LDAuNy0wLjksMS4yLTEuNCwxLjVjMCwxLjIsMC4zLDIuNSwxLjQsMi44YzIsMC41LDcuNSwzLjUsOC40LDYuMmMwLjUsMS42LDAuNiwxLjcsMC42LDEuN2MwLDEuMi0wLjUsMi4yLTEuOCwyLjJINTUuMiAgICAgYy0xLjMsMC0xLjQtMC45LTEuNC0yQzUzLjgsNzMuOSw1My43LDc0LjEsNTQuMiw3Mi4zeiIvPg0KCQkJPHBhdGggY2xhc3M9InN0OCIgZD0iTTYyLjQsNjYuN2MwLjQtMC4yLDAuNy0wLjUsMC45LTFsMy43LDEuNWwzLjctMS45YzAuMiwwLjUsMC41LDAuOSwxLjEsMWMyLDAuNSw3LjYsMy41LDguNSw2LjIgICAgIGMwLjUsMS42LDAuNiwxLjYsMC42LDEuNmMwLDEuMiwwLjQsMi4yLTAuOSwyLjJINTQuNGMtMS4zLDAtMS4xLTEuNS0xLjEtMi4xYzAtMC41LDAuMi0xLjMsMC41LTIuMiAgICAgQzU0LjUsNzAuMSw1OS4yLDY3LjksNjIuNCw2Ni43eiIvPg0KCQkJPHBhdGggY2xhc3M9InN0MTAiIGQ9Ik02Nyw2OC4xbDAtMC4ybDMuNy0yLjFjMC4yLDAuNSwwLjcsMC44LDEuMiwxYzIsMC41LDgsMy44LDguOSw2YzAuNCwwLjksMC41LDEuOCwwLjUsMS44ICAgICBjMC4xLDAuOS0wLjEsMS43LTEuNCwxLjdsLTEzLDBWNjguMXoiLz4NCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNjQuMDA0MSIgeTE9IjcxLjI4NDkiIHgyPSI2OS42MDgxIiB5Mj0iNzEuODczMSI+DQoJCQkJPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFNkU1Ii8+DQoJCQkJPHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojQzlDOUM5Ii8+DQoJCQk8L2xpbmVhckdyYWRpZW50Pg0KCQkJPHBvbHlnb24gY2xhc3M9InN0MjEiIHBvaW50cz0iNjcsNjcuMiA2Mi4zLDY4LjEgNjUuMiw3Ni40IDY5LDc2LjQgNzEuNSw2OSA3MSw2NyAgICAiLz4NCgkJCTxwb2x5Z29uIGNsYXNzPSJzdDE5IiBwb2ludHM9IjY2LDcxIDY0LjgsNzYuNCA2OS41LDc2LjQgNjgsNzEgICAgIi8+DQoJCQk8cG9seWdvbiBjbGFzcz0ic3QyMCIgcG9pbnRzPSI2Nyw3Ni40IDY5LjUsNzYuNCA2OCw3MSA2Nyw3MSAgICAiLz4NCgkJCTxwYXRoIGNsYXNzPSJzdDE5IiBkPSJNNjguOCw2OS44Yy0wLjIsMS0xLDEuOC0xLjgsMS44Yy0wLjgsMC0xLjYtMC44LTEuOC0xLjhjLTAuMi0xLDAuNS0xLjgsMS42LTEuOGgwLjUgICAgIEM2OC4zLDY3LjksNjkuMSw2OC44LDY4LjgsNjkuOHoiLz4NCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iNjcuMDQ4OCIgeTE9IjY3Ljk4MTUiIHgyPSI3MS45NjI5IiB5Mj0iNjcuOTgxNSI+DQoJCQkJPHN0b3Agb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRTZFNkU1Ii8+DQoJCQkJPHN0b3Agb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRENEQkRCIi8+DQoJCQk8L2xpbmVhckdyYWRpZW50Pg0KCQkJPHBvbHlnb24gY2xhc3M9InN0MjMiIHBvaW50cz0iNzAuNyw2NS4zIDY3LDY3LjIgNjkuNCw3MC43IDcyLDY2LjQgICAgIi8+DQoJCQk8cG9seWdvbiBjbGFzcz0ic3Q2IiBwb2ludHM9IjY3LDY3LjIgNjQuNiw3MC44IDYyLDY2LjkgNjMuNCw2NS4zICAgICIvPg0KCQkJPHBhdGggY2xhc3M9InN0MjIiIGQ9Ik03MC4zLDYzLjZjMCwwLTEuNCwxLjEtMy4yLDEuMWMtMSwwLTIuMi0wLjUtMi4yLTAuNWwyLjYsMi43bDMtMS42QzcwLjYsNjUuMyw3MC4zLDY0LjEsNzAuMyw2My42eiIvPg0KCQkJPHBvbHlnb24gY2xhc3M9InN0OCIgcG9pbnRzPSI3MS41LDY2IDY4LjQsNzYuNCA3MC44LDc2LjQgNzIuOCw3Mi41IDcxLjMsNzEuMiA3My4zLDcxLjMgNzMuNSw2Ni44ICAgICIvPg0KCQkJPHBvbHlnb24gY2xhc3M9InN0MTAiIHBvaW50cz0iNjIuNSw2Ni4zIDY1LjgsNzYuNCA2Myw3Ni40IDYwLjksNzIuNCA2Mi43LDcxIDYwLjMsNzEuMiA2MC43LDY3LjMgICAgIi8+DQoJCQk8cGF0aCBjbGFzcz0ic3QxMCIgZD0iTTYzLjksNTAuMWMwLDAsMi4yLDEuMyw2LjcsMC4xYzAuOCwwLjEsMi41LDAuOCwyLjEsMi40Yy0wLjIsMC43LDAuNiwyLjcsMC42LDIuN3MwLjctMC43LDEtMC43ICAgICBjMC0wLjYsMC4yLTMuOS0yLjItNi40YzAuMS0wLjEtMC42LTEuMy0xLjktMS4yYy0wLjMtMC4zLTAuNi0wLjktMi0xLjFjLTEuNC0wLjEtNC4yLDAuOC00LjksMS40Yy0wLjUsMC4xLTMuNywyLjEtMy40LDcuMyAgICAgYzAsMCwwLjksMC41LDAuOSwwLjVzMC44LTEuNSwwLjktMi4zQzYxLjQsNTEuOSw2Mi4xLDQ5LjgsNjMuOSw1MC4xeiIvPg0KCQk8L2c+DQoJCTxwYXRoIGNsYXNzPSJzdDIyIiBkPSJNNjEuOCwxOC45SDQ3LjRjLTMuNiwwLTYuNSwyLjktNi41LDYuNXY5LjJjMCwzLjYsMi45LDYuNSw2LjUsNi41aDQuNWw5LjMsNS4ybC0xLTUuMmgxLjcgICAgYzMuNiwwLDYuNS0yLjksNi41LTYuNXYtOS4yQzY4LjMsMjEuOCw2NS40LDE4LjksNjEuOCwxOC45eiIvPg0KCQk8cGF0aCBjbGFzcz0ic3QxMCIgZD0iTTUyLjYsMTMuN0gzNi45Yy0zLjYsMC02LjUsMi45LTYuNSw2LjV2OS4yYzAsMy4xLDIuMSw1LjcsNSw2LjRsLTEuOCw4bDkuNS03LjhoOS40YzMuNiwwLDYuNS0yLjksNi41LTYuNSAgICB2LTkuMkM1OS4xLDE2LjYsNTYuMiwxMy43LDUyLjYsMTMuN3oiLz4NCgkJPGNpcmNsZSBjbGFzcz0ic3Q2IiBjeD0iMzguOSIgY3k9IjI0LjgiIHI9IjIiLz4NCgkJPGNpcmNsZSBjbGFzcz0ic3Q2IiBjeD0iNDQuOCIgY3k9IjI0LjgiIHI9IjIiLz4NCgkJPGNpcmNsZSBjbGFzcz0ic3Q2IiBjeD0iNTAuNiIgY3k9IjI0LjgiIHI9IjIiLz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4=\";\nexport { Svg04Conversation as ReactComponent };","var _style, _circle, _path, _path2, _path3, _path4, _path5, _path6, _g, _path7;\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\nimport * as React from \"react\";\n\nfunction Svg04Graph(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n id: \"04_graph_svg__Layer_1\",\n x: 0,\n y: 0,\n viewBox: \"0 0 100 100\",\n xmlSpace: \"preserve\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".04_graph_svg__st6{fill:#fff}.04_graph_svg__st8{fill:#484871}.04_graph_svg__st22{fill:#90c4d6}\")), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"04_graph_svg__st6\",\n cx: 50,\n cy: 50,\n r: 50,\n opacity: 0.2\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_graph_svg__st6\",\n d: \"M18.5 28.2h63V71h-63z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#2f2f4e\",\n d: \"M22.2 31.9h55.6v35.5H22.2z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.5 32.2V67h-55V32.2h55zm.6-.6H21.9v36h56.2v-36z\",\n fill: \"#232323\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_graph_svg__st8\",\n d: \"M27 40.7h13.2V42H27zM27 36.7h13.2V38H27zM27 44.7h13.2V46H27z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_graph_svg__st22\",\n d: \"M27.5 62l-.6-.7 11.6-10 7.7 5.9 9.1-9.6 5.8 5.2L71 41.9l.7.7-10.5 11.6-5.8-5.2-9.1 9.5-7.8-5.9z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"04_graph_svg__st22\",\n d: \"M71.9 45.1l-1.1-2.3-2.4-.8 5.5-2.6z\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#ecf1fa\",\n d: \"M69.4 59.1h4.5v4.2h-4.5z\"\n }))), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#d3d3d3\",\n d: \"M18.5 70.1h63v1h-63z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDEwMCAxMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiMwMTAxMDE7fQ0KCS5zdDF7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS13aWR0aDozO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9DQoJLnN0MntmaWxsOm5vbmU7fQ0KCS5zdDN7ZmlsbDpub25lO3N0cm9rZTojMDEwMTAxO3N0cm9rZS1taXRlcmxpbWl0OjEwO30NCgkuc3Q0e2ZpbGw6IzIzMUYyMDt9DQoJLnN0NXtmaWxsOiMxOTgwQjQ7fQ0KCS5zdDZ7ZmlsbDojRkZGRkZGO30NCgkuc3Q3e2NsaXAtcGF0aDp1cmwoI1NWR0lEXzJfKTt9DQoJLnN0OHtmaWxsOiM0ODQ4NzE7fQ0KCS5zdDl7ZmlsbDojRUNGMUZBO30NCgkuc3QxMHtmaWxsOiMyRjJGNEU7fQ0KCS5zdDExe2ZpbGw6I0NDRTVGMzt9DQoJLnN0MTJ7ZmlsbDojQ0VEOUU4O30NCgkuc3QxM3tmaWxsOiMxOUIwQkY7fQ0KCS5zdDE0e2ZpbGw6I0E3REFFOTt9DQoJLnN0MTV7b3BhY2l0eTowLjI7ZmlsbDojRkZGRkZGO30NCgkuc3QxNntmaWxsOiNGMkYyRjI7fQ0KCS5zdDE3e2ZpbGw6IzlDQ0VERjt9DQoJLnN0MTh7ZmlsbDp1cmwoI1NWR0lEXzNfKTt9DQoJLnN0MTl7ZmlsbDojNURCQUNBO30NCgkuc3QyMHtmaWxsOiM1MUE0QjM7fQ0KCS5zdDIxe2ZpbGw6dXJsKCNTVkdJRF80Xyk7fQ0KCS5zdDIye2ZpbGw6IzkwQzRENjt9DQoJLnN0MjN7ZmlsbDp1cmwoI1NWR0lEXzVfKTt9DQoJLnN0MjR7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9DQoJLnN0MjV7b3BhY2l0eTowLjI7fQ0KCS5zdDI2e2ZpbGw6IzIzMjMyMzt9DQoJLnN0Mjd7ZmlsbDojRDNEM0QzO30NCgkuc3QyOHtjbGlwLXBhdGg6dXJsKCNTVkdJRF84Xyk7fQ0KCS5zdDI5e2ZpbGw6I0QxRUJGQTt9DQo8L3N0eWxlPg0KPGc+DQoJPGcgY2xhc3M9InN0MjUiPg0KCQk8Y2lyY2xlIGNsYXNzPSJzdDYiIGN4PSI1MCIgY3k9IjUwIiByPSI1MCIvPg0KCTwvZz4NCgk8Zz4NCgkJPHJlY3QgeD0iMTguNSIgeT0iMjguMiIgY2xhc3M9InN0NiIgd2lkdGg9IjYzIiBoZWlnaHQ9IjQyLjgiLz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHJlY3QgeD0iMjIuMiIgeT0iMzEuOSIgY2xhc3M9InN0MTAiIHdpZHRoPSI1NS42IiBoZWlnaHQ9IjM1LjUiLz4NCgkJPC9nPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDI2IiBkPSJNNzcuNSwzMi4yVjY3aC01NVYzMi4ySDc3LjVMNzcuNSwzMi4yeiBNNzguMSwzMS42aC0wLjZoLTU1aC0wLjZ2MC42VjY3djAuNmgwLjZoNTVoMC42VjY3VjMyLjJWMzEuNiAgICAgTDc4LjEsMzEuNnoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPHJlY3QgeD0iMjciIHk9IjQwLjciIGNsYXNzPSJzdDgiIHdpZHRoPSIxMy4yIiBoZWlnaHQ9IjEuMyIvPg0KCTwvZz4NCgk8Zz4NCgkJPHJlY3QgeD0iMjciIHk9IjM2LjciIGNsYXNzPSJzdDgiIHdpZHRoPSIxMy4yIiBoZWlnaHQ9IjEuMyIvPg0KCTwvZz4NCgk8Zz4NCgkJPHJlY3QgeD0iMjciIHk9IjQ0LjciIGNsYXNzPSJzdDgiIHdpZHRoPSIxMy4yIiBoZWlnaHQ9IjEuMyIvPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cG9seWdvbiBjbGFzcz0ic3QyMiIgcG9pbnRzPSIyNy41LDYyIDI2LjksNjEuMyAzOC41LDUxLjMgNDYuMiw1Ny4yIDU1LjMsNDcuNiA2MS4xLDUyLjggNzEsNDEuOSA3MS43LDQyLjYgNjEuMiw1NC4yIDU1LjQsNDkgICAgICA0Ni4zLDU4LjUgMzguNSw1Mi42ICAgICIvPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBvbHlnb24gY2xhc3M9InN0MjIiIHBvaW50cz0iNzEuOSw0NS4xIDcwLjgsNDIuOCA2OC40LDQyIDczLjksMzkuNCAgICAgIi8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxyZWN0IHg9IjY5LjQiIHk9IjU5LjEiIGNsYXNzPSJzdDkiIHdpZHRoPSI0LjUiIGhlaWdodD0iNC4yIi8+DQoJPC9nPg0KCTxyZWN0IHg9IjE4LjUiIHk9IjcwLjEiIGNsYXNzPSJzdDI3IiB3aWR0aD0iNjMiIGhlaWdodD0iMSIvPg0KPC9nPg0KPC9zdmc+\";\nexport { Svg04Graph as ReactComponent };","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\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 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","import { rgba } from \"polished\";\r\nimport React from \"react\";\r\nimport { CSSTransition, SwitchTransition } from \"react-transition-group\";\r\nimport styled from \"styled-components\";\r\nimport { theme } from \"~/theme\";\r\n\r\nexport const SmartObjectives: React.FC<{}> = () => {\r\n const [itemSelected, setItemSelected] = React.useState(0);\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n

    \r\n SMART objectives ensure everyone clearly understands what is being\r\n worked towards. As opposed to a general objective which can be\r\n interpreted in many different ways, SMART objectives allow you to\r\n confidently measure whether or not success has been achieved.\r\n

    \r\n

    Ensure the objectives you set cover the following:

    \r\n
    \r\n
    \r\n
    \r\n {data.map(({ id, letter }) => (\r\n setItemSelected(id)}\r\n >\r\n \r\n {letter}\r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n Writing SMART objectives is not a complex process; it may just take\r\n a little getting used to. Below are a few examples you can use as a\r\n basis for creating your own:\r\n

    \r\n
      \r\n
    • \r\n

      \r\n Double the number of employees taking active transport to work each day over the next 6 months.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Over the next 12 months, increase by 10% the proportion of factory staff eating fruit or vegetables as a snack each day at work.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Decrease the proportion of employees who smoke by 30% over the\r\n next 6 months.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Reduce by 50% the proportion of workshop employees who are\r\n drinking more than 2 standard drinks at any work event over the\r\n next 12 months.\r\n

      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst ItemDescription: React.FC<{ objectiveId: number }> = ({\r\n objectiveId,\r\n}) => {\r\n const { title, content } = data[objectiveId];\r\n\r\n return (\r\n \r\n \r\n {\r\n node.addEventListener(\"transitionend\", done, false);\r\n }}\r\n classNames=\"fade\"\r\n >\r\n \r\n

    {title}

    \r\n {content}\r\n
    \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst StyledButton = styled.button`\r\n background-color: transparent;\r\n border: none;\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst CircleDiv = styled.div<{ active: boolean }>`\r\n position: relative;\r\n width: 100%;\r\n padding-bottom: 100%;\r\n transition: transform 500ms cubic-bezier(0.34, 1.86, 0.64, 1);\r\n transform: ${(p) => (p.active ? \"scale(1.5)\" : \"scale(1)\")};\r\n`;\r\n\r\nconst Symbol = styled.span<{ active: boolean }>`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n padding: 1rem;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 4em;\r\n color: white;\r\n background-color: ${(p) => (p.active ? theme.info : theme.gray800)};\r\n border-radius: 50%;\r\n`;\r\n\r\nconst StyledContent = styled.div`\r\n transition: all 300ms;\r\n &.fade-enter {\r\n margin-left: 3rem;\r\n opacity: 0;\r\n }\r\n &.fade-enter.fade-enter-active {\r\n opacity: 1;\r\n margin-left: 0;\r\n }\r\n &.fade-exit {\r\n opacity: 1;\r\n margin-left: 0;\r\n }\r\n &.fade-exit.fade-exit-active {\r\n opacity: 0;\r\n margin-left: -3rem;\r\n }\r\n`;\r\n\r\ninterface Data {\r\n id: number;\r\n letter: string;\r\n title: string;\r\n content: JSX.Element;\r\n}\r\n\r\nconst data: Data[] = [\r\n {\r\n id: 0,\r\n letter: \"S\",\r\n title: \"Specific\",\r\n content: (\r\n <>\r\n

    What specifically do you want to achieve?

    \r\n

    \r\n “Increase by 20% the proportion of employees achieving at least 30\r\n minutes of exercise on 6 days per week” is more specific than\r\n “increase the number of employees exercising”\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n id: 1,\r\n letter: \"M\",\r\n title: \"Measurable\",\r\n content: (\r\n <>\r\n

    Can you measure if you have achieved success?

    \r\n

    \r\n By adding in specific figures, it will be easier to measure whether\r\n you have been successful e.g. You can see if there’s been a 20%\r\n increase in the proportion of employees achieving 30 minutes of\r\n exercise by surveying employees before and after your strategies are\r\n implemented and comparing the results.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n id: 2,\r\n letter: \"A\",\r\n title: \"Achievable\",\r\n content: (\r\n <>\r\n

    \r\n Can you realistically achieve your objective with the time and\r\n resources available?\r\n

    \r\n

    \r\n If you’re low on resources, including time and money, you may need to\r\n adjust your expectations. Objectives shouldn’t be too easy, nor too\r\n difficult to achieve.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n id: 3,\r\n letter: \"R\",\r\n title: \"Relevant\",\r\n content: (\r\n <>\r\n

    \r\n Does your objective reflect your organisation’s and employees’ needs?\r\n

    \r\n

    \r\n Focusing on reducing smoking rates in an organisation with no smokers would be a waste of time and money. Ensure you consult effectively so that your objectives are relevant.\r\n

    \r\n \r\n ),\r\n },\r\n {\r\n id: 4,\r\n letter: \"T\",\r\n title: \"Time bound\",\r\n content: (\r\n <>\r\n

    When do you want to achieve your objective by?

    \r\n

    \r\n Adding a completion date will help you to keep focused. Try to choose\r\n timelines within 6 to 12 months and remember to ensure it’s a\r\n realistic timeframe.\r\n

    \r\n \r\n ),\r\n },\r\n];\r\n","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport { Tooltips } from \".\";\r\n\r\nimport meetingImg from \"../assets/gfx/04_meeting.jpg\";\r\n\r\nexport const WorkplaceAssessment: React.FC<{}> = () => {\r\n return (\r\n
    \r\n
    \r\n

    \r\n Workplace assessment and consultation\r\n

    \r\n \r\n

    \r\n All workplaces (and their employees) are different, which means there\r\n is no \"one size fits all\" solution. It’s important to assess your\r\n workplace and consult with staff in order to understand what is\r\n impacting on health behaviours, so that solutions can be found to\r\n improve them. Use assessment and consultation to answer:\r\n

    \r\n
    \r\n
    \r\n 1\r\n \r\n What are the current gaps and barriers?\r\n \r\n
    \r\n
    \r\n 2\r\n \r\n What do employees want?\r\n \r\n
    \r\n
    \r\n 3\r\n \r\n How can things be improved?\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst StyledSpan = styled.span`\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n margin: 0 auto;\r\n height: 1.2rem;\r\n width: 1.2rem;\r\n font-size: 0.8rem;\r\n font-weight: 600;\r\n margin-bottom: 0.5rem;\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n border: 1px solid ${(p) => p.theme.info};\r\n border-radius: 50%;\r\n }\r\n &:not(.last)::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 0.6rem;\r\n left: calc(1.2rem + 2rem);\r\n width: 10rem;\r\n height: 1px;\r\n background: ${(p) => p.theme.info};\r\n }\r\n`;\r\n","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import { useRef, useEffect } from 'react';\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\n\nexport default function useMounted() {\n var mounted = useRef(true);\n var isMounted = useRef(function () {\n return mounted.current;\n });\n useEffect(function () {\n return function () {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\n\nexport default function useWillUnmount(fn) {\n var onUnmount = useUpdatedRef(fn);\n useEffect(function () {\n return function () {\n return onUnmount.current();\n };\n }, []);\n}","import { useRef } from 'react';\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\n\nexport default function useUpdatedRef(value) {\n var valueRef = useRef(value);\n valueRef.current = value;\n return valueRef;\n}","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\n\nvar MAX_DELAY_MS = Math.pow(2, 31) - 1;\n\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n var delayMs = timeoutAtMs - Date.now();\n handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(function () {\n return setChainedTimeout(handleRef, fn, timeoutAtMs);\n }, MAX_DELAY_MS);\n}\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n *
    \n * {hello ?

    Hello

    : null}\n *
    \n * );\n * ```\n */\n\n\nexport default function useTimeout() {\n var isMounted = useMounted(); // types are confused between node and web here IDK\n\n var handleRef = useRef();\n useWillUnmount(function () {\n return clearTimeout(handleRef.current);\n });\n return useMemo(function () {\n var clear = function clear() {\n return clearTimeout(handleRef.current);\n };\n\n function set(fn, delayMs) {\n if (delayMs === void 0) {\n delayMs = 0;\n }\n\n if (!isMounted()) return;\n clear();\n\n if (delayMs <= MAX_DELAY_MS) {\n // For simplicity, if the timeout is short, just set a normal timeout.\n handleRef.current = setTimeout(fn, delayMs);\n } else {\n setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n }\n }\n\n return {\n set: set,\n clear: clear\n };\n }, []);\n}","import ReactDOM from 'react-dom';\nexport default function safeFindDOMNode(componentOrElement) {\n if (componentOrElement && 'setState' in componentOrElement) {\n return ReactDOM.findDOMNode(componentOrElement);\n }\n\n return componentOrElement != null ? componentOrElement : null;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import { useState } from 'react';\n/**\n * A convenience hook around `useState` designed to be paired with\n * the component [callback ref](https://reactjs.org/docs/refs-and-the-dom.html#callback-refs) api.\n * Callback refs are useful over `useRef()` when you need to respond to the ref being set\n * instead of lazily accessing it in an effect.\n *\n * ```ts\n * const [element, attachRef] = useCallbackRef()\n *\n * useEffect(() => {\n * if (!element) return\n *\n * const calendar = new FullCalendar.Calendar(element)\n *\n * return () => {\n * calendar.destroy()\n * }\n * }, [element])\n *\n * return
    \n * ```\n *\n * @category refs\n */\n\nexport default function useCallbackRef() {\n return useState(null);\n}","import { useMemo } from 'react';\n\nvar toFnRef = function toFnRef(ref) {\n return !ref || typeof ref === 'function' ? ref : function (value) {\n ref.current = value;\n };\n};\n\nexport function mergeRefs(refA, refB) {\n var a = toFnRef(refA);\n var b = toFnRef(refB);\n return function (value) {\n if (a) a(value);\n if (b) b(value);\n };\n}\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return
    \r\n);\r\n\r\nexport const ModuleFooter: React.FC = ({\r\n moduleNumber,\r\n currentSection,\r\n totalSections,\r\n sectionTitle,\r\n sectionData = [],\r\n}) => {\r\n const { refList } = useModuleRefs();\r\n\r\n const [isMenuOpen, setIsMenuOpen] = useState(false);\r\n\r\n React.useEffect(() => {\r\n if (sectionData.length === 0 && isMenuOpen) {\r\n setIsMenuOpen(false);\r\n }\r\n }, [sectionData.length]);\r\n\r\n return (\r\n p.theme.info};\r\n z-index: 5;\r\n\r\n margin-left: -2rem;\r\n margin-right: -2rem;\r\n margin-bottom: -2rem;\r\n `}\r\n className=\"text-center text-white d-flex\"\r\n >\r\n darken(0.075, p.theme.info)};\r\n padding: 0 1.5rem;\r\n clip-path: polygon(\r\n 0 0,\r\n calc(100% - 0.5rem) 0,\r\n calc(100% - 0.5rem) calc(50% - 0.5rem),\r\n 100% 50%,\r\n calc(100% - 0.5rem) calc(50% + 0.5rem),\r\n calc(100% - 0.5rem) 100%,\r\n 0% 100%\r\n );\r\n `}\r\n >\r\n Module {moduleNumber}\r\n \r\n \r\n

    {sectionTitle}

    \r\n
    \r\n \r\n

    \r\n {currentSection} of {totalSections}\r\n

    \r\n \r\n setIsMenuOpen(!isMenuOpen)}\r\n disabled={!sectionData.length}\r\n >\r\n \r\n i\r\n \r\n \r\n \r\n {\r\n e.preventDefault();\r\n const nextSection = currentSection; // currentSection starts at 1, refList is an array (starts at 0)\r\n const sections = Array.from(refList.current.entries());\r\n sections[nextSection][0].scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"start\",\r\n inline: \"nearest\",\r\n });\r\n }}\r\n disabled={currentSection === totalSections}\r\n >\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n {/* RESOURCES : TODO, look in to React.Portal/use Popper/react-bootstrap dropdown */}\r\n \r\n setIsMenuOpen(false)}>x\r\n
    Resources
    \r\n \r\n {sectionData.map(({ href, title, type }, idx) => (\r\n \r\n \r\n {(() => {\r\n switch (type) {\r\n case \"document\":\r\n return (\r\n \r\n );\r\n case \"link\":\r\n return ;\r\n default:\r\n return null;\r\n }\r\n })()}\r\n \r\n \r\n {title}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nconst FooterDescription = styled.div`\r\n align-items: center;\r\n justify-content: center;\r\n padding: 1rem;\r\n`;\r\n\r\nconst FooterInfo = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-left: auto;\r\n max-width: 300px;\r\n`;\r\n\r\nconst InfoButton = styled.button<{ clickable: boolean }>`\r\n margin: 0;\r\n border: 0;\r\n height: 100%;\r\n padding: 0 1rem;\r\n transition: background-color 500ms cubic-bezier(0.34, 1.86, 0.64, 1);\r\n background-color: ${(p) => (p.clickable ? p.theme.primary : \"transparent\")};\r\n opacity: 0.4;\r\n &:not(:disabled) {\r\n cursor: pointer;\r\n opacity: 1;\r\n }\r\n &:focus {\r\n outline: none;\r\n }\r\n`;\r\n\r\nconst FooterIcon = styled.div`\r\n width: 1.5rem;\r\n height: 1.5rem;\r\n background-color: white;\r\n border-radius: 50%;\r\n strong {\r\n color: ${(p) => p.theme.info};\r\n }\r\n`;\r\n\r\nconst NextSection = styled.button`\r\n margin: 0;\r\n background: 0;\r\n border: 0;\r\n color: #fff;\r\n &:focus {\r\n outline: none;\r\n }\r\n &:not(:disabled) {\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nconst ResourcesPopout = styled.div<{ show: boolean }>`\r\n position: absolute;\r\n bottom: 100%;\r\n right: 0;\r\n width: 300px;\r\n display: ${(p) => (p.show ? \"block\" : \"none\")};\r\n background-color: ${(p) => p.theme.primary};\r\n`;\r\n\r\nconst CloseButton = styled.button`\r\n position: absolute;\r\n top: 0.5rem;\r\n right: 0.5rem;\r\n padding: 0.1rem 0.5rem;\r\n font-size: 1.5rem;\r\n color: white;\r\n background-color: transparent;\r\n border: none;\r\n line-height: 1;\r\n cursor: pointer;\r\n`;\r\n","import * as React from \"react\";\r\n\r\ninterface AppContext {\r\n wrapperRef: React.RefObject;\r\n}\r\n\r\nconst AppContext = React.createContext(undefined);\r\n\r\ninterface AppContextProviderProps {\r\n wrapperRef: React.RefObject;\r\n}\r\n\r\nexport const AppContextProvider: React.FC = ({\r\n children,\r\n wrapperRef,\r\n}) => {\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nexport const useAppContext = () => {\r\n const ctx = React.useContext(AppContext);\r\n\r\n if (!ctx) {\r\n throw Error(\"useAppContext used outside AppContextProvider\");\r\n }\r\n\r\n return ctx;\r\n};\r\n\r\nexport const useAppContextMethods = () => {\r\n const { wrapperRef } = useAppContext();\r\n\r\n const scrollToTop = React.useCallback(() => {\r\n wrapperRef.current?.scrollIntoView({\r\n behavior: \"auto\",\r\n block: \"start\",\r\n inline: \"nearest\",\r\n });\r\n }, []);\r\n\r\n return {\r\n scrollToTop,\r\n };\r\n};\r\n","type Unarray = T extends (infer U)[] ? U : T;\r\n\r\nexport const STATE_LIST = [\r\n [\"NSW\", \"New South Wales\"],\r\n [\"QLD\", \"Queensland\"],\r\n [\"SA\", \"South Australia\"],\r\n [\"TAS\", \"Tasmania\"],\r\n [\"VIC\", \"Victoria\"],\r\n [\"WA\", \"Western Australia\"],\r\n [\"Other\", \"Other\"],\r\n] as const;\r\n\r\nexport const STATE_LIST_KEYS = STATE_LIST.map((n) => n[0]);\r\n\r\nexport type StateKey = Unarray;\r\n\r\nexport const TOTAL_MODULES = 4;\r\n","import * as React from \"react\";\r\n\r\nimport * as store2 from \"store2\";\r\nimport { StateKey, TOTAL_MODULES } from \"~/constants\";\r\n\r\ninterface GlobalUserStateContext {\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n state: StateKey | null;\r\n\r\n view: \"start\" | \"registration\" | \"module\" | \"end\";\r\n startedModules: Record;\r\n completedModules: Record;\r\n usersModuleAnswers: Record>;\r\n currentModule: number;\r\n currentQuestion: number; // todo : currentQuestion doesn't seem to have any effect even on pre hwwa website (currentQuestion isn't restored on load)\r\n\r\n dateLastUsed: number;\r\n}\r\n\r\nconst GlobalUserStateContext = React.createContext<\r\n GlobalUserStateContext | undefined\r\n>(undefined);\r\n\r\nconst GlobalUserDispatchContext = React.createContext<\r\n | ((\r\n value: React.SetStateAction,\r\n saveToStore?: any,\r\n ) => void)\r\n | undefined\r\n>(undefined);\r\n\r\ninterface GlobalUserMethodsContext {\r\n goToRegistration: () => void;\r\n goToModule: (module: number) => void;\r\n nextModule: () => void;\r\n reset: () => void;\r\n finish: () => void;\r\n}\r\n\r\nconst GlobalUserMethodsContext = React.createContext<\r\n GlobalUserMethodsContext | undefined\r\n>(undefined);\r\n\r\nconst STORAGE_KEY = \"user\";\r\n\r\nconst DEFAULT_STATE: GlobalUserStateContext = {\r\n email: \"\",\r\n lastName: \"\",\r\n firstName: \"\",\r\n state: null,\r\n view: \"start\",\r\n startedModules: {},\r\n completedModules: {},\r\n usersModuleAnswers: {},\r\n currentModule: 0,\r\n currentQuestion: 0,\r\n dateLastUsed: Date.now(),\r\n};\r\n\r\nexport const GlobalUserProvider: React.FC<{}> = ({ children }) => {\r\n const [state, $setState] = React.useState(() => {\r\n if (store2.has(STORAGE_KEY)) {\r\n return store2.get(STORAGE_KEY);\r\n }\r\n\r\n return DEFAULT_STATE;\r\n });\r\n\r\n const stateRef = React.useRef(state);\r\n\r\n React.useEffect(() => {\r\n stateRef.current = state;\r\n });\r\n\r\n const getState = React.useCallback(() => {\r\n return stateRef.current;\r\n }, [stateRef]);\r\n\r\n const setState = React.useCallback(\r\n (\r\n value: React.SetStateAction,\r\n saveToStore = true,\r\n ) => {\r\n const nextState = typeof value === \"function\" ? value(getState()) : value;\r\n $setState(nextState);\r\n\r\n if (saveToStore) {\r\n store2.set(STORAGE_KEY, nextState);\r\n }\r\n },\r\n [getState],\r\n );\r\n\r\n const reset = React.useCallback(() => {\r\n return setState(DEFAULT_STATE);\r\n }, []);\r\n\r\n const goToRegistration = React.useCallback((saveToStore: boolean = false) => {\r\n setState(\r\n (prev) => ({\r\n ...prev,\r\n view: \"registration\",\r\n dateLastUsed: Date.now(),\r\n }),\r\n saveToStore,\r\n );\r\n }, []);\r\n\r\n const goToModule = React.useCallback(\r\n (module: number) => {\r\n const nextLastUsed = Date.now();\r\n\r\n return setState((prev) => ({\r\n ...prev,\r\n view: \"module\",\r\n currentModule: module,\r\n currentQuestion: 0,\r\n dateLastUsed: nextLastUsed,\r\n startedModules: {\r\n ...prev.startedModules,\r\n [module]: true,\r\n },\r\n }));\r\n },\r\n [setState],\r\n );\r\n\r\n const nextModule = React.useCallback(() => {\r\n const curState = getState();\r\n\r\n const nextState: GlobalUserStateContext = {\r\n ...curState,\r\n startedModules: {\r\n ...curState.startedModules,\r\n [curState.currentModule + 1]: true,\r\n },\r\n completedModules: {\r\n ...curState.completedModules,\r\n [curState.currentModule]: true,\r\n },\r\n view: \"module\",\r\n currentModule: curState.currentModule + 1,\r\n currentQuestion: 0,\r\n dateLastUsed: Date.now(),\r\n };\r\n\r\n setState(nextState);\r\n }, [getState, setState]);\r\n\r\n const finish = React.useCallback(() => {\r\n const curState = getState();\r\n\r\n const nextState: GlobalUserStateContext = {\r\n ...curState,\r\n completedModules: (() => {\r\n const dict = Array.from(\r\n { length: TOTAL_MODULES },\r\n (v, k) => k + 1,\r\n ).reduce((acc, cur) => {\r\n acc[cur] = true;\r\n return acc;\r\n }, {} as Record);\r\n\r\n return dict;\r\n })(),\r\n view: \"end\",\r\n currentModule: 0,\r\n currentQuestion: 0,\r\n dateLastUsed: Date.now(),\r\n };\r\n\r\n setState(nextState);\r\n }, [setState]);\r\n\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const useGlobalUserState = () => {\r\n const ctx = React.useContext(GlobalUserStateContext);\r\n\r\n if (!ctx) {\r\n throw Error(\"useGlobalUserState used outsite \");\r\n }\r\n\r\n return ctx;\r\n};\r\n\r\nexport const useGlobalUserDispatch = () => {\r\n const setState = React.useContext(GlobalUserDispatchContext);\r\n\r\n if (!setState) {\r\n throw Error(\"useGlobalUserDispatch used outsite \");\r\n }\r\n\r\n return setState;\r\n};\r\n\r\nexport const useGlobalUserMethods = () => {\r\n const methods = React.useContext(GlobalUserMethodsContext);\r\n\r\n if (!methods) {\r\n throw Error(\"useGlobalUserMethods used outsite \");\r\n }\r\n\r\n return methods;\r\n};\r\n\r\nexport const useGlobalUser = () => {\r\n const state = useGlobalUserState();\r\n const setState = useGlobalUserDispatch();\r\n const methods = useGlobalUserMethods();\r\n\r\n return [state, setState, methods] as const;\r\n};\r\n","import * as React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\nimport { useGlobalUserMethods, useGlobalUserState } from \"~/state\";\r\n\r\ninterface ModuleHeaderProps {\r\n currentPage: number;\r\n totalPages: number;\r\n}\r\n\r\nexport const ModuleHeader = React.forwardRef(\r\n ({ currentPage, totalPages }, ref) => {\r\n const modules = Array(totalPages).fill(0);\r\n\r\n const { startedModules } = useGlobalUserState();\r\n const { goToModule } = useGlobalUserMethods();\r\n\r\n return (\r\n \r\n
    \r\n Module {currentPage}\r\n
    \r\n\r\n \r\n {modules.map((_, idx) => (\r\n currentPage - 1}\r\n type=\"button\"\r\n onClick={(e) => {\r\n e.preventDefault();\r\n goToModule(idx + 1);\r\n }}\r\n disabled={!startedModules[idx + 1]}\r\n >\r\n {idx + 1}\r\n \r\n ))}\r\n \r\n \r\n );\r\n },\r\n);\r\n\r\nconst ModuleMap = styled.div`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1;\r\n`;\r\n\r\nexport const StyledStep = styled.button<{ active: boolean }>`\r\n width: 2rem;\r\n height: 2rem;\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n background: ${(p) => (p.active ? p.theme.gray500 : p.theme.warning)};\r\n border-radius: 50%;\r\n margin: 0 calc(1.25rem - 1px);\r\n color: white;\r\n border: 0;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n width: 1.25rem;\r\n height: 10px;\r\n top: calc(50% - 5px);\r\n left: calc(-1.25rem + 1px);\r\n background: ${(p) => (p.active ? p.theme.gray500 : p.theme.warning)};\r\n }\r\n :first-of-type {\r\n margin-left: 0;\r\n &::before {\r\n content: none;\r\n }\r\n }\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n width: 1.25rem;\r\n height: 10px;\r\n top: calc(50% - 5px);\r\n right: calc(-1.25rem + 1px);\r\n background: ${(p) => (p.active ? p.theme.gray500 : p.theme.warning)};\r\n }\r\n :last-of-type {\r\n margin-right: 0;\r\n &::after {\r\n content: none;\r\n }\r\n }\r\n`;\r\n","import * as React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport type { FlipData, FlipType } from \".\";\r\n\r\ninterface FlipperProps {\r\n data: FlipData[];\r\n type: FlipType;\r\n}\r\n\r\nexport const Flipper: React.FC = ({ data, type }) => {\r\n const [currentSlide, setCurrentSlide] = React.useState(0);\r\n\r\n const handleAnimation = (dir: -1 | 1) => {\r\n setCurrentSlide((prev) => (prev + dir + data.length) % data.length);\r\n };\r\n\r\n return (\r\n \r\n handleAnimation(-1)}\r\n >\r\n ‹\r\n \r\n {data.map(({ imgSrc, smallText, title, description }, idx) => (\r\n \r\n \r\n {imgSrc && \"\"}\r\n {title && (\r\n \r\n {smallText && {smallText}}\r\n {title}\r\n \r\n )}\r\n {description && (\r\n {description}\r\n )}\r\n \r\n \r\n ))}\r\n handleAnimation(1)}\r\n >\r\n ›\r\n \r\n \r\n );\r\n};\r\n\r\nconst FlipContainer = styled.div<{ type: FlipType }>`\r\n position: relative;\r\n width: ${(p) => (p.type === \"benefits\" ? \"40vw\" : \"60vw\")};\r\n height: ${(p) => (p.type === \"benefits\" ? \"40vw\" : \"60vw\")};\r\n max-width: ${(p) => (p.type === \"benefits\" ? \"25rem\" : \"30rem\")};\r\n max-height: ${(p) => (p.type === \"benefits\" ? \"25rem\" : \"30rem\")};\r\n`;\r\n\r\nconst FlipInner = styled.div<{ active: boolean }>`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 50%;\r\n -webkit-backface-visibility: hidden;\r\n backface-visibility: hidden;\r\n transition: 500ms all cubic-bezier(0.34, 1.56, 0.64, 1);\r\n z-index: ${(p) => (p.active ? 1 : 0)};\r\n transform-style: preserve-3d;\r\n transform: ${(p) => (p.active ? \"rotateY(0deg)\" : \"rotateY(180deg)\")};\r\n`;\r\n\r\nconst IndicatorLeft = styled.button`\r\n position: absolute;\r\n padding: 0 0 0.25rem 0;\r\n width: 2rem;\r\n height: 2rem;\r\n top: calc(50% - 1rem);\r\n left: -1rem;\r\n z-index: 1;\r\n font-size: 2rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: 150ms all cubic-bezier(0.34, 1.15, 0.85, 1);\r\n opacity: 0.9;\r\n z-index: 2;\r\n &:active {\r\n font-size: 3rem;\r\n padding: 0 0 0.5rem 0;\r\n }\r\n`;\r\n\r\nconst IndicatorRight = styled(IndicatorLeft)`\r\n left: calc(100% - 1rem);\r\n`;\r\n\r\nconst Contents = styled.div`\r\n padding: 1rem 2rem;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n text-align: center;\r\n color: white;\r\n`;\r\n\r\nconst ContentTitle = styled.h5<{ type: FlipType }>`\r\n font-size: ${(p) => (p.type === \"benefits\" ? \"4em\" : \"2em\")};\r\n\r\n span {\r\n display: block;\r\n font-size: 0.2em;\r\n }\r\n`;\r\n\r\nconst ContentDescription = styled.p`\r\n font-size: 1.25em;\r\n`;\r\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport isRequiredForA11y from 'prop-types-extra/lib/isRequiredForA11y';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n placement: 'right'\n};\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n placement = _ref.placement,\n className = _ref.className,\n style = _ref.style,\n children = _ref.children,\n arrowProps = _ref.arrowProps,\n _ = _ref.popper,\n _2 = _ref.show,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"placement\", \"className\", \"style\", \"children\", \"arrowProps\", \"popper\", \"show\"]);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'tooltip');\n\n var _ref2 = (placement == null ? void 0 : placement.split('-')) || [],\n primaryPlacement = _ref2[0];\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n style: style,\n role: \"tooltip\",\n \"x-placement\": primaryPlacement,\n className: classNames(className, bsPrefix, \"bs-tooltip-\" + primaryPlacement)\n }, props), /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"arrow\"\n }, arrowProps)), /*#__PURE__*/React.createElement(\"div\", {\n className: bsPrefix + \"-inner\"\n }, children));\n});\nTooltip.defaultProps = defaultProps;\nTooltip.displayName = 'Tooltip';\nexport default Tooltip;","import React from \"react\";\r\nimport { OverlayTrigger, Tooltip } from \"react-bootstrap\";\r\n\r\ninterface TooltipsProps {\r\n id: number;\r\n}\r\n\r\ntype citationKey = keyof typeof citations;\r\n\r\nexport const Tooltips: React.FC = ({ id }) => {\r\n if (citations[id as citationKey] === undefined) {\r\n return (\r\n \r\n Check citation\r\n \r\n }\r\n >\r\n \r\n ???\r\n \r\n \r\n );\r\n }\r\n return (\r\n {citations[id as citationKey]}\r\n }\r\n >\r\n {id}\r\n \r\n );\r\n};\r\n\r\nconst citations = {\r\n 1: (\r\n \r\n World Health Organization. (2021). Occupational health: Workplace health\r\n promotion. Retrieved from{\" \"}\r\n \r\n http://www.who.int/occupational_health/topics/workplace/en\r\n \r\n \r\n ),\r\n 2: (\r\n \r\n Australian Institute of Health and Welfare. (2012). Risk factors\r\n contributing to chronic disease. Cat No. PHE 157. Canberra: AIHW\r\n \r\n ),\r\n 3: (\r\n \r\n Australian Institute of Health and Welfare. (2014). Australia’s health\r\n 2014: in brief. Cat. No. AUS 181. Canberra: AIHW.\r\n \r\n ),\r\n 4: (\r\n \r\n Health and Productivity Institute of Australia. (2010). Best Practice\r\n Guidelines – Workplace. Health in Australia. Retrieved from{\" \"}\r\n \r\n https://www.healthierwork.act.gov.au/supporting-resources/hapiabestpracticeguidelines\r\n \r\n \r\n ),\r\n 5: (\r\n \r\n Australian Bureau of Statistics. (2013). Australian Health Survey:\r\n Physical Activity. Retrieved from{\" \"}\r\n \r\n https://www.abs.gov.au/statistics/health/health-conditions-and-risks/australian-health-survey-physical-activity/latest-release\r\n \r\n \r\n ),\r\n 6: (\r\n \r\n World Health Organization. (2010). Global Recommendations on Physical\r\n Activity for Health. World Health Organization, Geneva.\r\n \r\n ),\r\n 7: (\r\n \r\n Begg, S., Vos, T., Barker, B., Stevenson, C., Stanley, L. & Lopez,\r\n A.D. (2007). The burden of disease and injury in Australia 2003. PHE 82.\r\n Canberra: AIHW.\r\n \r\n ),\r\n 8: (\r\n \r\n Australian Institute of Health and Welfare. (2020). Australia’s health\r\n 2020: in brief. Australia’s health series no. 17 Cat. no. AUS 232.\r\n Canberra: AIHW.\r\n \r\n ),\r\n 9: (\r\n \r\n National Health and Medical Research Council. (2013). Australian Dietary\r\n Guidelines: Providing the scientific evidence for healthier Australian\r\n diets. Canberra: National Health and Medical Research Council.\r\n \r\n ),\r\n 10: (\r\n \r\n Australian Bureau of Statistics. (2018). National Health Survey: First\r\n results. 4364.0.55.001 Retrieved from{\" \"}\r\n \r\n https://www.abs.gov.au/statistics/health/health-conditions-and-risks/national-health-survey-first-results/latest-release\r\n \r\n \r\n ),\r\n 11: (\r\n \r\n Australian Bureau of Statistics. (2014). Australian Health Survey:\r\n nutrition first results—foods and nutrients, 2011–12. ABS cat. no.\r\n 4364.0.55.007. Canberra: ABS. Retrieved from{\" \"}\r\n \r\n https://www.abs.gov.au/statistics/health/health-conditions-and-risks/australian-health-survey-nutrition-first-results-foods-and-nutrients/latest-release\r\n \r\n \r\n ),\r\n 12: (\r\n \r\n Australian Bureau of Statistics. (2018). High Cholesterol. Retrieved from{\" \"}\r\n \r\n https://www.abs.gov.au/statistics/health/health-conditions-and-risks/high-cholesterol/latest-release#:~:text=In%202017%2D18%2C%206.1%25,had%20high%20cholesterol%20(6.1%25)\r\n \r\n \r\n ),\r\n 13: (\r\n \r\n Cancer Council Western Australia. (2021). Smoking and tobacco. Retrieved\r\n from{\" \"}\r\n \r\n http://www.cancerwa.asn.au/prevention/tobacco\r\n \r\n ;\r\n \r\n ),\r\n 14: (\r\n \r\n Epidemiology Branch. (2020). Prevalence of Smokers and E-cigarette Users,\r\n 18 years and over, 2002-2019. WA Department of Health: Perth\r\n \r\n ),\r\n 15: (\r\n \r\n Epidemiology Branch. (2018). Western Australia tobacco attributable\r\n related hospitalisation and deaths in 2017. WA Department of Health: Perth\r\n \r\n ),\r\n 16: (\r\n \r\n Tait, R.J. & Allsop, S. (2019). Identifying the social costs of\r\n tobacco use of Australia in 2015/16. National Drug Research Institute:\r\n Perth\r\n \r\n ),\r\n 17: (\r\n \r\n National Health and Medical Research Council, Australian Research Council\r\n and Universities Australia. (2020). Australian guidelines to reduce health\r\n risks from drinking alcohol. Canberra: National Health and Medical\r\n Research Council.\r\n \r\n ),\r\n 18: (\r\n \r\n Government of Western Australia Drug and Alcohol Office. (2014). Alcohol\r\n think again: Alcohol and your long-term health. Retrieved from{\" \"}\r\n \r\n http://alcoholthinkagain.com.au/Alcohol-Your-Health/Alcohol-and-Your-Long-Term-Health\r\n \r\n \r\n ),\r\n 19: (\r\n \r\n VicHealth. (2012). Reducing alcohol-related harm in the workplace. An\r\n evidence review: summary report. Victorian Health Promotion Foundation,\r\n Melbourne, Australia.\r\n \r\n ),\r\n 20: (\r\n \r\n Medibank Private. (2005). The health of Australia’s workforce, Medibank\r\n Private, Australia.\r\n \r\n ),\r\n 21: (\r\n \r\n Goetzel, R. Z., & Ozminkowski, R. J. (2008). The health and cost\r\n benefits of work site health promotion programs. Annual Review of Public\r\n Health. 29, 303-323.\r\n \r\n ),\r\n 22: (\r\n \r\n Hymel, P. A., Loeppke, R. R., Baase, C. M., Burton, W. N., Hartenbaum, N.\r\n P., Hudson, T. W., & Larson, P. W. (2011). Workplace health protection\r\n and promotion: a new pathway for a healthier—and safer—workforce. Journal\r\n of Occupational and Environmental Medicine. 53(6), 695-702.\r\n \r\n ),\r\n 23: (\r\n \r\n Dunstan, D.W., Howard, B., Healy, G.N. & Owen, N. (2012). Too much\r\n sitting – A health hazard. Diabetes Research and Clinical Practice.\r\n 97:368-376.\r\n \r\n ),\r\n 24: (\r\n \r\n Centers for Disease Control and Prevention. (2013). Workplace health\r\n promotion. Retrieved from{\" \"}\r\n \r\n http://www.cdc.gov/workplacehealthpromotion/index.html\r\n \r\n \r\n ),\r\n 25: (\r\n \r\n Heath. C. & Health, D. (2007). Made to stick: Why some ideas survive and others die (2nd ed.). New York: Random House.\r\n \r\n ),\r\n 26: (\r\n \r\n Prochaska, J.O. & DiClemente, C.C. (1982) Transtheoretical therapy: Toward a more integrative model of change. Pcychotherapy: Theory, Research and Practice. 19: 276-288.\r\n \r\n ),\r\n};\r\n","import * as React from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport type { BaseFieldProps } from \"./types\";\r\n\r\nexport interface IconFieldProps extends BaseFieldProps {\r\n className?: string;\r\n icon: React.FC>;\r\n placeholder?: string;\r\n type?: \"text\" | \"email\";\r\n value?: React.InputHTMLAttributes[\"value\"];\r\n defaultValue?: React.InputHTMLAttributes[\"defaultValue\"];\r\n}\r\n\r\nexport const IconField: React.FC = ({\r\n className,\r\n icon: Icon,\r\n onChange,\r\n onBlur,\r\n name,\r\n id,\r\n placeholder,\r\n label,\r\n type,\r\n error,\r\n touched = false,\r\n ...rest\r\n}) => {\r\n id = id || name;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n {error && touched && (\r\n
    {error}
    \r\n )}\r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport cx from \"classnames\";\r\n\r\nimport type { BaseFieldProps } from \"./types\";\r\n\r\nexport interface CheckboxProps extends BaseFieldProps {\r\n className?: string;\r\n inline?: boolean;\r\n value?: React.InputHTMLAttributes[\"value\"];\r\n checked?: boolean;\r\n}\r\n\r\nexport const Checkbox: React.FC = ({\r\n className,\r\n label,\r\n id,\r\n name,\r\n onChange,\r\n onBlur,\r\n error,\r\n touched,\r\n children,\r\n inline,\r\n checked,\r\n ...rest\r\n}) => {\r\n id = id || name;\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport interface RadioProps extends Omit {\r\n className?: string;\r\n inline?: boolean;\r\n value?: React.InputHTMLAttributes[\"value\"];\r\n id: string;\r\n checked?: boolean;\r\n}\r\n\r\nexport const Radio: React.FC = ({\r\n className,\r\n label,\r\n id,\r\n name,\r\n onChange,\r\n onBlur,\r\n error,\r\n touched,\r\n children,\r\n inline,\r\n checked,\r\n ...rest\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgTick(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 330 330\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M165 0C74.019 0 0 74.019 0 165s74.019 165 165 165 165-74.019 165-165S255.981 0 165 0zm0 300c-74.44 0-135-60.561-135-135S90.56 30 165 30s135 60.561 135 135-60.561 135-135 135z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M226.872 106.664l-84.854 84.853-38.89-38.891c-5.857-5.857-15.355-5.858-21.213-.001-5.858 5.858-5.858 15.355 0 21.213l49.496 49.498a15 15 0 0010.606 4.394h.001c3.978 0 7.793-1.581 10.606-4.393l95.461-95.459c5.858-5.858 5.858-15.355 0-21.213-5.858-5.858-15.355-5.859-21.213-.001z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDMzMCAzMzAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMzMCAzMzA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0xNjUsMEM3NC4wMTksMCwwLDc0LjAxOSwwLDE2NXM3NC4wMTksMTY1LDE2NSwxNjVzMTY1LTc0LjAxOSwxNjUtMTY1UzI1NS45ODEsMCwxNjUsMHogTTE2NSwzMDANCgkJYy03NC40NCwwLTEzNS02MC41NjEtMTM1LTEzNVM5MC41NiwzMCwxNjUsMzBzMTM1LDYwLjU2MSwxMzUsMTM1UzIzOS40MzksMzAwLDE2NSwzMDB6Ii8+DQoJPHBhdGggZD0iTTIyNi44NzIsMTA2LjY2NGwtODQuODU0LDg0Ljg1M2wtMzguODktMzguODkxYy01Ljg1Ny01Ljg1Ny0xNS4zNTUtNS44NTgtMjEuMjEzLTAuMDAxDQoJCWMtNS44NTgsNS44NTgtNS44NTgsMTUuMzU1LDAsMjEuMjEzbDQ5LjQ5Niw0OS40OThjMi44MTMsMi44MTMsNi42MjgsNC4zOTQsMTAuNjA2LDQuMzk0YzAuMDAxLDAsMCwwLDAuMDAxLDANCgkJYzMuOTc4LDAsNy43OTMtMS41ODEsMTAuNjA2LTQuMzkzbDk1LjQ2MS05NS40NTljNS44NTgtNS44NTgsNS44NTgtMTUuMzU1LDAtMjEuMjEzDQoJCUMyNDIuMjI3LDEwMC44MDcsMjMyLjczLDEwMC44MDYsMjI2Ljg3MiwxMDYuNjY0eiIvPg0KPC9nPg0KPC9zdmc+DQoNCjwhLS0gPGRpdj5JY29ucyBtYWRlIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZyZWVwaWsuY29tIiB0aXRsZT0iRnJlZXBpayI+RnJlZXBpazwvYT4gZnJvbSA8YSBocmVmPSJodHRwczovL3d3dy5mbGF0aWNvbi5jb20vIiB0aXRsZT0iRmxhdGljb24iPnd3dy5mbGF0aWNvbi5jb208L2E+PC9kaXY+IC0tPg==\";\nexport { SvgTick as ReactComponent };","import React from \"react\";\r\n\r\nexport const ValidationError: React.FC<{}> = ({ children }) => {\r\n return
    {children}
    ;\r\n};\r\n","import * as React from \"react\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nimport { ValidationError } from \"~/ui\";\r\n\r\nimport { ReactComponent as TickIcon } from \"~/assets/svg/tick.svg\";\r\n\r\nimport styled from \"styled-components\";\r\nimport { rgba } from \"polished\";\r\nimport { SectionModuleProps, useModuleRefs } from \"./ModuleSection\";\r\n\r\nimport _store from \"store2\";\r\nimport { useGlobalUser } from \"~/state\";\r\nimport { theme } from \"~/theme\";\r\n\r\ninterface Question {\r\n question: string;\r\n options: React.ReactNode[];\r\n answer: number[];\r\n related: HTMLElement | null;\r\n}\r\n\r\ninterface QuizFormProps {\r\n quizKey: number;\r\n data: Question[];\r\n showAnswers?: boolean;\r\n onSuccess: () => void;\r\n onFail: () => void;\r\n onResetClick?: (e: React.MouseEvent) => void;\r\n onNextClick: (e: React.MouseEvent) => void;\r\n nextText?: React.ReactNode;\r\n quizHeading: string;\r\n}\r\n\r\ninterface QuizFormState {\r\n screen: \"quiz\" | \"results\";\r\n currentQuestion: number;\r\n showError: boolean;\r\n}\r\n\r\nconst DEFAULT_STATE: QuizFormState = {\r\n screen: \"quiz\",\r\n currentQuestion: 0,\r\n showError: false,\r\n};\r\n\r\nexport const ModuleQuizForm: React.FC = ({\r\n quizKey,\r\n data,\r\n showAnswers,\r\n onSuccess,\r\n onFail,\r\n onNextClick,\r\n onResetClick,\r\n nextText,\r\n quizHeading,\r\n}) => {\r\n const [userState, setUserState] = useGlobalUser();\r\n\r\n const CORRECT_ANSWERS = React.useMemo(() => {\r\n return data.reduce((acc, cur, idx) => {\r\n acc[idx] = cur.answer;\r\n return acc;\r\n }, {} as Record);\r\n }, [data]);\r\n\r\n const [state, setState] = React.useState(() => {\r\n if (userState.usersModuleAnswers[quizKey]) {\r\n const savedData = userState.usersModuleAnswers[quizKey];\r\n return {\r\n ...DEFAULT_STATE,\r\n userAnswers: savedData,\r\n };\r\n }\r\n\r\n return DEFAULT_STATE;\r\n });\r\n\r\n const resetQuiz = () => {\r\n setState(DEFAULT_STATE);\r\n setUserState((prev) => ({\r\n ...prev,\r\n usersModuleAnswers: {\r\n ...prev.usersModuleAnswers,\r\n [quizKey]: {},\r\n },\r\n }));\r\n };\r\n\r\n const handleSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n\r\n const $userAnswers = userState.usersModuleAnswers[quizKey] || {};\r\n const $currentQuestion = state.currentQuestion;\r\n\r\n if (\r\n !$userAnswers[$currentQuestion] ||\r\n $userAnswers[$currentQuestion].length === 0\r\n ) {\r\n setState((prev) => ({\r\n ...prev,\r\n showError: true,\r\n }));\r\n return;\r\n }\r\n\r\n setState((prev) => ({\r\n ...prev,\r\n showError: false,\r\n screen: \"results\",\r\n }));\r\n };\r\n\r\n const handleNext = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n\r\n const $userAnswers = userState.usersModuleAnswers[quizKey] || {};\r\n const $currentQuestion = state.currentQuestion;\r\n\r\n if (\r\n !$userAnswers[$currentQuestion] ||\r\n $userAnswers[$currentQuestion].length === 0\r\n ) {\r\n setState((prev) => ({\r\n ...prev,\r\n showError: true,\r\n }));\r\n return;\r\n }\r\n\r\n setState((prev) => {\r\n const nextState = {\r\n ...prev,\r\n currentQuestion: prev.currentQuestion + 1,\r\n showError: false,\r\n };\r\n\r\n return nextState;\r\n });\r\n\r\n setUserState((prev) => ({\r\n ...prev,\r\n usersModuleAnswers: {\r\n ...prev.usersModuleAnswers,\r\n [quizKey]: $userAnswers,\r\n },\r\n }));\r\n };\r\n\r\n const createCheckboxChangeHandler = (\r\n questionIdx: number,\r\n optionIdx: number,\r\n ) => (e: React.ChangeEvent) => {\r\n setUserState((prev) => {\r\n const selectedAnswers: number[] =\r\n (prev.usersModuleAnswers[quizKey] &&\r\n prev.usersModuleAnswers[quizKey][questionIdx]) ||\r\n [];\r\n const uniqueAnswers = new Set(selectedAnswers || []);\r\n\r\n if (uniqueAnswers.has(optionIdx)) {\r\n uniqueAnswers.delete(optionIdx);\r\n } else {\r\n uniqueAnswers.add(optionIdx);\r\n }\r\n\r\n const nextState: typeof prev = {\r\n ...prev,\r\n usersModuleAnswers: {\r\n ...prev.usersModuleAnswers,\r\n [quizKey]: {\r\n ...prev.usersModuleAnswers[quizKey],\r\n [questionIdx]: Array.from(uniqueAnswers),\r\n },\r\n },\r\n };\r\n\r\n return nextState;\r\n });\r\n };\r\n\r\n const isChecked = (questionIdx: number, optionIdx: number) => {\r\n if (\r\n !userState.usersModuleAnswers[quizKey] ||\r\n !userState.usersModuleAnswers[quizKey][questionIdx]\r\n ) {\r\n return false;\r\n }\r\n\r\n if (\r\n !userState.usersModuleAnswers[quizKey][questionIdx].includes(optionIdx)\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n if (state.screen === \"quiz\") {\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    {quizHeading}

    \r\n\r\n {data.map((q, qi) => (\r\n \r\n \r\n Q{qi + 1}.{\" \"}\r\n {q.question}\r\n \r\n \r\n {q.options.map((o, oi) => {\r\n const id = `q${qi}-${oi}`;\r\n\r\n return (\r\n
  • \r\n \r\n \r\n {o}\r\n \r\n
  • \r\n );\r\n })}\r\n
    \r\n \r\n ))}\r\n\r\n {state.showError && (\r\n \r\n Please choose one or more answers!\r\n \r\n )}\r\n\r\n
    \r\n {state.currentQuestion === data.length - 1 ? (\r\n \r\n ) : (\r\n \r\n Next question\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n {\r\n e.preventDefault();\r\n resetQuiz();\r\n onResetClick && onResetClick(e);\r\n }}\r\n nextText={nextText}\r\n />\r\n );\r\n};\r\n\r\nconst sortNumerical = (a: number, b: number) => a - b;\r\n\r\ninterface QuizResultsProps {\r\n data: Question[];\r\n userAnswers: Record;\r\n answers: Record;\r\n onSuccess: () => void;\r\n onFail?: () => void;\r\n onResetClick: (e: React.MouseEvent) => void;\r\n onNextClick: (e: React.MouseEvent) => void;\r\n nextText?: React.ReactNode;\r\n}\r\n\r\nconst QuizResults: React.FC = ({\r\n data,\r\n userAnswers,\r\n answers,\r\n onSuccess,\r\n onFail,\r\n onResetClick,\r\n onNextClick,\r\n nextText,\r\n}) => {\r\n const { refList } = useModuleRefs();\r\n\r\n const $answers = React.useMemo(() => {\r\n return Object.entries(answers);\r\n }, [answers]);\r\n\r\n const $userAnswers = React.useMemo(() => {\r\n return Object.entries(userAnswers);\r\n }, [userAnswers]);\r\n\r\n const results = React.useMemo(() => {\r\n const questionResults = $answers.map((a, idx) => {\r\n const setA = Array.from(new Set(a[1])).sort(sortNumerical);\r\n const setB = Array.from(new Set($userAnswers[idx][1])).sort(\r\n sortNumerical,\r\n );\r\n\r\n return JSON.stringify(setA) === JSON.stringify(setB);\r\n });\r\n\r\n const correctCount = questionResults.filter((x) => x === true).length;\r\n\r\n return {\r\n questionResults,\r\n correctCount,\r\n };\r\n }, [$answers, $userAnswers]);\r\n\r\n const incorrectQuestions = results.questionResults\r\n .map((v, i) => {\r\n if (v === false) {\r\n return i + 1;\r\n }\r\n\r\n return null;\r\n })\r\n .filter((x) => x !== null);\r\n\r\n const reviewRefs = React.useMemo(() => {\r\n const _ = data\r\n .filter((x, i) => results.questionResults[i] === false)\r\n .reduce((acc, cur) => {\r\n acc.set(cur.related!, refList.current.get(cur.related!)!);\r\n return acc;\r\n }, new Map());\r\n\r\n return Array.from(_.entries()).map(([k, v]) => {\r\n return {\r\n href: `#${k.id}`,\r\n children: v.sectionTitle,\r\n };\r\n });\r\n }, [data, results.questionResults]);\r\n\r\n React.useEffect(() => {\r\n if (results.correctCount === $answers.length) {\r\n onSuccess();\r\n return;\r\n }\r\n\r\n onFail && onFail();\r\n }, []);\r\n\r\n if (results.correctCount === $answers.length) {\r\n return (\r\n
    \r\n
    \r\n \r\n

    \r\n Congratulations! You got all the answers right.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n {nextText || \"Continue to next module\"}\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n You scored {results.correctCount} out of {$answers.length}\r\n

    \r\n
    \r\n {incorrectQuestions.length === 1 ? (\r\n

    \r\n You need to correct your answer to question{\" \"}\r\n {incorrectQuestions[0]} to proceed\r\n

    \r\n ) : (\r\n

    \r\n You need to correct your answers to questions{\" \"}\r\n {incorrectQuestions.slice(0, -1).join(\", \")} and{\" \"}\r\n {incorrectQuestions.slice(-1)} to proceed\r\n

    \r\n )}\r\n {!!reviewRefs.length && (\r\n <>\r\n
    \r\n \r\n Please review the following sections and try the quiz again:\r\n \r\n
      \r\n {reviewRefs.map((x, idx) => (\r\n
    • \r\n {x.children}\r\n
    • \r\n ))}\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n Try again\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst QuestionList = styled.ul`\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n\r\n counter-reset: listCount;\r\n\r\n > li:first-child > label {\r\n border-top-left-radius: 0.25rem;\r\n border-top-right-radius: 0.25rem;\r\n }\r\n\r\n > li:last-child > label {\r\n border-bottom-left-radius: 0.25rem;\r\n border-bottom-right-radius: 0.25rem;\r\n }\r\n\r\n > li > label {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 0;\r\n padding: 1rem;\r\n border: 1px solid ${(p) => p.theme.gray300};\r\n position: relative;\r\n margin-top: -1px;\r\n background: #fff;\r\n cursor: pointer;\r\n\r\n &:before {\r\n content: counter(listCount, upper-alpha);\r\n counter-increment: listCount;\r\n display: flex;\r\n flex: 0 0 2rem;\r\n margin-right: 1rem;\r\n height: 2rem;\r\n border-radius: 50%;\r\n background: ${(p) => p.theme.secondary};\r\n align-items: center;\r\n justify-content: center;\r\n font-weight: bold;\r\n font-size: 1.25rem;\r\n color: ${(p) => p.theme.info};\r\n }\r\n }\r\n\r\n input {\r\n position: absolute;\r\n left: -10000px;\r\n top: auto;\r\n width: 1px;\r\n height: 1px;\r\n overflow: hidden;\r\n\r\n &:focus ~ label {\r\n z-index: 1;\r\n box-shadow: 0 0 0 0.2rem ${(p) => rgba(p.theme.warning, 0.5)};\r\n }\r\n &:checked ~ label {\r\n background: ${(p) => rgba(p.theme.secondary, 0.2)};\r\n }\r\n }\r\n`;\r\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n\n};\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\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\nexport default function _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}","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport * as primitives from '@react-pdf/primitives';\nexport * from '@react-pdf/primitives';\nimport React, { useRef, useState, useEffect } from 'react';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport _regeneratorRuntime from '@babel/runtime/regenerator';\nimport BlobStream from 'blob-stream';\nimport FontStore from '@react-pdf/font';\nimport renderPDF from '@react-pdf/render';\nimport PDFDocument from '@react-pdf/pdfkit';\nimport layoutDocument from '@react-pdf/layout';\nimport ReactFiberReconciler from 'react-reconciler';\nimport { unstable_scheduleCallback, unstable_cancelCallback } from 'scheduler';\n\n/* eslint-disable no-continue */\n\n/**\n * Checks if two sets of props are equal (recursively)\n *\n * @param {Object} props A\n * @param {Object} props B\n * @returns {Boolean} props equals?\n *\n */\nvar propsEqual = function propsEqual(a, b) {\n var oldPropsKeys = Object.keys(a);\n var newPropsKeys = Object.keys(b);\n\n if (oldPropsKeys.length !== newPropsKeys.length) {\n return false;\n }\n\n for (var i = 0; i < oldPropsKeys.length; i += 1) {\n var propName = oldPropsKeys[i];\n\n if (propName === 'render' && !a[propName] !== !b[propName]) {\n return false;\n }\n\n if (propName !== 'children' && a[propName] !== b[propName]) {\n if (typeof a[propName] === 'object' && typeof b[propName] === 'object' && propsEqual(a[propName], b[propName])) {\n continue;\n }\n\n return false;\n }\n\n if (propName === 'children' && (typeof a[propName] === 'string' || typeof b[propName] === 'string')) {\n return a[propName] === b[propName];\n }\n }\n\n return true;\n};\n\nvar emptyObject = {};\n\nvar createRenderer = function createRenderer(_ref) {\n var _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;\n return ReactFiberReconciler({\n schedulePassiveEffects: unstable_scheduleCallback,\n cancelPassiveEffects: unstable_cancelCallback,\n supportsMutation: true,\n isPrimaryRenderer: false,\n warnsIfNotActing: false,\n appendInitialChild: function appendInitialChild(parentInstance, child) {\n parentInstance.children.push(child);\n },\n createInstance: function createInstance(type, _ref2) {\n var style = _ref2.style;\n _ref2.children;\n var props = _objectWithoutPropertiesLoose(_ref2, [\"style\", \"children\"]);\n\n return {\n type: type,\n box: {},\n style: style || {},\n props: props || {},\n children: []\n };\n },\n createTextInstance: function createTextInstance(text, rootContainerInstance) {\n return {\n type: 'TEXT_INSTANCE',\n value: text\n };\n },\n finalizeInitialChildren: function finalizeInitialChildren(element, type, props) {\n return false;\n },\n getPublicInstance: function getPublicInstance(instance) {\n return instance;\n },\n prepareForCommit: function prepareForCommit() {// Noop\n },\n clearContainer: function clearContainer() {// Noop\n },\n prepareUpdate: function prepareUpdate(element, type, oldProps, newProps) {\n return !propsEqual(oldProps, newProps);\n },\n resetAfterCommit: onChange,\n resetTextContent: function resetTextContent(element) {// Noop\n },\n getRootHostContext: function getRootHostContext() {\n return emptyObject;\n },\n getChildHostContext: function getChildHostContext() {\n return emptyObject;\n },\n shouldSetTextContent: function shouldSetTextContent(type, props) {\n return false;\n },\n now: Date.now,\n useSyncScheduling: true,\n appendChild: function appendChild(parentInstance, child) {\n parentInstance.children.push(child);\n },\n appendChildToContainer: function appendChildToContainer(parentInstance, child) {\n if (parentInstance.type === 'ROOT') {\n parentInstance.document = child;\n } else {\n parentInstance.children.push(child);\n }\n },\n insertBefore: function insertBefore(parentInstance, child, beforeChild) {\n var _parentInstance$child;\n\n var index = (_parentInstance$child = parentInstance.children) === null || _parentInstance$child === void 0 ? void 0 : _parentInstance$child.indexOf(beforeChild);\n if (index === undefined) return;\n if (index !== -1 && child) parentInstance.children.splice(index, 0, child);\n },\n removeChild: function removeChild(parentInstance, child) {\n var _parentInstance$child2;\n\n var index = (_parentInstance$child2 = parentInstance.children) === null || _parentInstance$child2 === void 0 ? void 0 : _parentInstance$child2.indexOf(child);\n if (index === undefined) return;\n if (index !== -1) parentInstance.children.splice(index, 1);\n },\n removeChildFromContainer: function removeChildFromContainer(parentInstance, child) {\n var _parentInstance$child3;\n\n var index = (_parentInstance$child3 = parentInstance.children) === null || _parentInstance$child3 === void 0 ? void 0 : _parentInstance$child3.indexOf(child);\n if (index === undefined) return;\n if (index !== -1) parentInstance.children.splice(index, 1);\n },\n commitTextUpdate: function commitTextUpdate(textInstance, oldText, newText) {\n textInstance.value = newText;\n },\n commitUpdate: function commitUpdate(instance, updatePayload, type, oldProps, newProps) {\n var style = newProps.style,\n props = _objectWithoutPropertiesLoose(newProps, [\"style\"]);\n\n instance.props = props;\n instance.style = style;\n }\n });\n};\n\nvar version = \"2.0.12\";\n\nvar fontStore = new FontStore(); // We must keep a single renderer instance, otherwise React will complain\n\nvar renderer; // The pdf instance acts as an event emmiter for DOM usage.\n// We only want to trigger an update then PDF content changes\n\nvar events = {};\n\nvar pdf = function pdf(initialValue) {\n var onChange = function onChange() {\n var _events$change;\n\n var listeners = ((_events$change = events.change) === null || _events$change === void 0 ? void 0 : _events$change.slice()) || [];\n\n for (var i = 0; i < listeners.length; i += 1) {\n listeners[i]();\n }\n };\n\n var container = {\n type: 'ROOT',\n document: null\n };\n renderer = renderer || createRenderer({\n onChange: onChange\n });\n var mountNode = renderer.createContainer(container);\n\n var updateContainer = function updateContainer(doc) {\n renderer.updateContainer(doc, mountNode, null);\n };\n\n if (initialValue) updateContainer(initialValue);\n\n var render = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(compress) {\n var props, pdfVersion, language, ctx, layout;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (compress === void 0) {\n compress = true;\n }\n\n props = container.document.props || {};\n pdfVersion = props.pdfVersion, language = props.language;\n ctx = new PDFDocument({\n compress: compress,\n pdfVersion: pdfVersion,\n lang: language,\n displayTitle: true,\n autoFirstPage: false\n });\n _context.next = 6;\n return layoutDocument(container.document, fontStore);\n\n case 6:\n layout = _context.sent;\n return _context.abrupt(\"return\", renderPDF(ctx, layout));\n\n case 8:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function render(_x) {\n return _ref.apply(this, arguments);\n };\n }();\n\n var callOnRender = function callOnRender(params) {\n if (params === void 0) {\n params = {};\n }\n\n if (container.document.props.onRender) {\n container.document.props.onRender(params);\n }\n };\n\n var toBlob = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var instance, stream;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return render();\n\n case 2:\n instance = _context2.sent;\n stream = instance.pipe(BlobStream());\n return _context2.abrupt(\"return\", new Promise(function (resolve, reject) {\n stream.on('finish', function () {\n try {\n var blob = stream.toBlob('application/pdf');\n callOnRender({\n blob: blob\n });\n resolve(blob);\n } catch (error) {\n reject(error);\n }\n });\n stream.on('error', reject);\n }));\n\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function toBlob() {\n return _ref2.apply(this, arguments);\n };\n }();\n\n var toBuffer = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n callOnRender();\n return _context3.abrupt(\"return\", render());\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n return function toBuffer() {\n return _ref3.apply(this, arguments);\n };\n }();\n\n var toString = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var result, instance;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n result = '';\n _context4.next = 3;\n return render(false);\n\n case 3:\n instance = _context4.sent;\n return _context4.abrupt(\"return\", new Promise(function (resolve, reject) {\n try {\n instance.on('data', function (buffer) {\n result += buffer;\n });\n instance.on('end', function () {\n callOnRender();\n resolve(result);\n });\n } catch (error) {\n reject(error);\n }\n }));\n\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n return function toString() {\n return _ref4.apply(this, arguments);\n };\n }();\n\n var on = function on(event, listener) {\n if (!events[event]) events[event] = [];\n events[event].push(listener);\n };\n\n var removeListener = function removeListener(event, listener) {\n if (!events[event]) return;\n var idx = events[event].indexOf(listener);\n if (idx > -1) events[event].splice(idx, 1);\n };\n\n return {\n on: on,\n container: container,\n toBlob: toBlob,\n toBuffer: toBuffer,\n toString: toString,\n removeListener: removeListener,\n updateContainer: updateContainer\n };\n};\n\nvar Font = fontStore;\nvar StyleSheet = {\n create: function create(s) {\n return s;\n }\n};\n\nvar queue = require('queue');\n\nvar usePDF = function usePDF(_ref) {\n var document = _ref.document;\n var pdfInstance = useRef(null);\n var previousUrl = useRef(null);\n\n var _useState = useState({\n url: null,\n blob: null,\n error: null,\n loading: false\n }),\n state = _useState[0],\n setState = _useState[1]; // Setup rendering queue\n\n\n useEffect(function () {\n var renderQueue = queue({\n autostart: true,\n concurrency: 1\n });\n\n var queueDocumentRender = function queueDocumentRender() {\n setState(function (prev) {\n return _extends({}, prev, {\n loading: true\n });\n });\n renderQueue.splice(0, renderQueue.length, function () {\n return state.error ? Promise.resolve() : pdfInstance.current.toBlob();\n });\n };\n\n var onRenderFailed = function onRenderFailed(error) {\n console.error(error);\n setState(function (prev) {\n return _extends({}, prev, {\n error: error\n });\n });\n };\n\n var onRenderSuccessful = function onRenderSuccessful(blob) {\n previousUrl.current = state.url;\n setState({\n blob: blob,\n error: null,\n loading: false,\n url: URL.createObjectURL(blob)\n });\n };\n\n pdfInstance.current = pdf();\n pdfInstance.current.on('change', queueDocumentRender);\n pdfInstance.current.updateContainer(document);\n renderQueue.on('error', onRenderFailed);\n renderQueue.on('success', onRenderSuccessful);\n return function () {\n renderQueue.end();\n };\n }, []); // Revoke old unused url instances\n\n useEffect(function () {\n if (previousUrl.current) URL.revokeObjectURL(previousUrl.current);\n }, [state.blob]);\n\n var update = function update() {\n pdfInstance.current.updateContainer(document);\n };\n\n return [state, update];\n};\nvar BlobProvider = function BlobProvider(_ref2) {\n var doc = _ref2.document,\n children = _ref2.children;\n\n var _usePDF = usePDF({\n document: doc\n }),\n instance = _usePDF[0],\n updateInstance = _usePDF[1];\n\n useEffect(updateInstance, [doc]);\n\n if (!doc) {\n console.warn('You should pass a valid document to BlobProvider');\n return null;\n }\n\n return children(instance);\n};\nvar PDFViewer = function PDFViewer(_ref3) {\n var title = _ref3.title,\n style = _ref3.style,\n className = _ref3.className,\n children = _ref3.children,\n innerRef = _ref3.innerRef,\n props = _objectWithoutPropertiesLoose(_ref3, [\"title\", \"style\", \"className\", \"children\", \"innerRef\"]);\n\n var _usePDF2 = usePDF({\n document: children\n }),\n instance = _usePDF2[0],\n updateInstance = _usePDF2[1];\n\n useEffect(updateInstance, [children]);\n return /*#__PURE__*/React.createElement(\"iframe\", _extends({\n title: title,\n ref: innerRef,\n style: style,\n src: instance.url,\n className: className\n }, props));\n};\nvar PDFDownloadLink = function PDFDownloadLink(_ref4) {\n var style = _ref4.style,\n children = _ref4.children,\n className = _ref4.className,\n doc = _ref4.document,\n _ref4$fileName = _ref4.fileName,\n fileName = _ref4$fileName === void 0 ? 'document.pdf' : _ref4$fileName;\n\n var _usePDF3 = usePDF({\n document: doc\n }),\n instance = _usePDF3[0],\n updateInstance = _usePDF3[1];\n\n useEffect(updateInstance, [children]);\n\n if (!doc) {\n console.warn('You should pass a valid document to PDFDownloadLink');\n return null;\n }\n\n var handleDownloadIE = function handleDownloadIE() {\n if (window.navigator.msSaveBlob) {\n // IE\n window.navigator.msSaveBlob(instance.blob, fileName);\n }\n };\n\n return /*#__PURE__*/React.createElement(\"a\", {\n style: style,\n href: instance.url,\n download: fileName,\n className: className,\n onClick: handleDownloadIE\n }, typeof children === 'function' ? children(instance) : children);\n};\n\nvar throwEnvironmentError = function throwEnvironmentError(name) {\n throw new Error(name + \" is a Node specific API. You're either using this method in a browser, or your bundler is not loading react-pdf from the appropriate web build.\");\n};\n\nvar renderToStream = function renderToStream() {\n throwEnvironmentError('renderToStream');\n};\nvar renderToString = function renderToString() {\n throwEnvironmentError('renderToString');\n};\nvar renderToFile = function renderToFile() {\n throwEnvironmentError('renderToFile');\n};\nvar render = function render() {\n throwEnvironmentError('render');\n};\nvar dom = _extends({\n pdf: pdf,\n usePDF: usePDF,\n Font: Font,\n version: version,\n StyleSheet: StyleSheet,\n PDFViewer: PDFViewer,\n BlobProvider: BlobProvider,\n PDFDownloadLink: PDFDownloadLink,\n renderToStream: renderToStream,\n renderToString: renderToString,\n renderToFile: renderToFile,\n render: render\n}, primitives);\n\nexport default dom;\nexport { BlobProvider, Font, PDFDownloadLink, PDFViewer, StyleSheet, createRenderer, pdf, render, renderToFile, renderToStream, renderToString, usePDF, version };\n//# sourceMappingURL=react-pdf.browser.es.js.map\n","import * as React from \"react\";\r\nimport { theme } from \"~/theme\";\r\n\r\nimport { rgba } from \"polished\";\r\nimport { format } from \"date-fns\";\r\n\r\nimport ceoSignature from \"~/assets/certificate/ceo-signature.png\";\r\nimport footerSponsors from \"~/assets/certificate/footer-sponsors.png\";\r\nimport logo from \"~/assets/certificate/logoLiveLighter.png\";\r\n\r\nimport futuraBt from \"~/assets/fonts/FuturaBT-Bold.ttf\";\r\n\r\n/* PDF */\r\nimport {\r\n Document,\r\n Font,\r\n Image,\r\n Page,\r\n StyleSheet,\r\n Text,\r\n View,\r\n} from \"@react-pdf/renderer\";\r\n\r\nFont.register({ family: \"FuturaBT\", src: futuraBt });\r\n\r\ninterface CertificateProps {\r\n name: string;\r\n completedDate: number;\r\n}\r\n\r\nexport const CertificatePdf: React.FC = ({\r\n name,\r\n completedDate,\r\n}) => (\r\n \r\n \r\n \r\n \r\n LiveLighter Workplace Health Coordinator Training\r\n \r\n Certificate of Completion\r\n \r\n\r\n \r\n This is to certify that\r\n {name}\r\n \r\n Has successfully completed the LiveLighter Workplace Health\r\n Coordinator Training\r\n \r\n \r\n \r\n Module one: \r\n Introduction to workplace health\r\n \r\n \r\n Module two: \r\n Motivating staff to be healthy\r\n \r\n \r\n Module three: \r\n Best practice workplace health promotion\r\n \r\n \r\n Module four: \r\n Planning your program\r\n \r\n \r\n\r\n \r\n \r\n \r\n Date of completion\r\n \r\n {format(completedDate, \"dd MMM yyyy\")}\r\n \r\n \r\n \r\n \r\n Ashley Reid\r\n \r\n \r\n Chief Executive Officer, Cancer Council Western Australia\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst pdfStyles = StyleSheet.create({\r\n page: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignContent: \"center\",\r\n margin: \"2vw\",\r\n height: \"96vw\",\r\n },\r\n\r\n heading: {\r\n backgroundColor: theme.info,\r\n padding: 20,\r\n width: \"96vw\",\r\n marginBottom: 20,\r\n },\r\n headingTitle1: {\r\n fontFamily: \"FuturaBT\",\r\n fontSize: \"22pt\",\r\n color: \"white\",\r\n textAlign: \"center\",\r\n marginBottom: 10,\r\n },\r\n headingTitle2: {\r\n fontFamily: \"FuturaBT\",\r\n fontSize: \"40pt\",\r\n letterSpacing: \"0.3vw\",\r\n color: theme.gold,\r\n textAlign: \"center\",\r\n textTransform: \"uppercase\",\r\n },\r\n\r\n body: {\r\n position: \"relative\",\r\n width: \"96vw\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-evenly\",\r\n alignContent: \"center\",\r\n textAlign: \"center\",\r\n },\r\n bodyText1: { marginBottom: 15, fontSize: \"14pt\" },\r\n bodyText2: {\r\n fontFamily: \"FuturaBT\",\r\n marginBottom: 20,\r\n color: theme.info,\r\n fontSize: \"24pt\",\r\n },\r\n bodyText3: { marginBottom: 20 },\r\n\r\n modulesBox: {\r\n width: \"50%\",\r\n margin: \"0 auto\",\r\n display: \"flex\",\r\n alignSelf: \"center\",\r\n padding: \"20px 0\",\r\n marginBottom: 10,\r\n backgroundColor: `${rgba(theme.gold, 0.2)}`,\r\n },\r\n moduleText: {\r\n fontSize: \"14pt\",\r\n marginBottom: 10,\r\n color: theme.primary,\r\n },\r\n\r\n completionBox: {\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-around\",\r\n alignContent: \"center\",\r\n width: \"100%\",\r\n },\r\n signature: {\r\n display: \"flex\",\r\n alignSelf: \"center\",\r\n width: 100,\r\n },\r\n\r\n footer: {\r\n width: \"96vw\",\r\n position: \"absolute\",\r\n display: \"flex\",\r\n flexDirection: \"row\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"center\",\r\n marginBottom: \"2vw\",\r\n bottom: \"2vw\",\r\n left: 0,\r\n right: 0,\r\n },\r\n});\r\n","import * as React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport tissue from \"~/assets/svg/tissue.svg\";\r\nimport arrowsUp from \"~/assets/svg/arrowsUp.svg\";\r\nimport userOxygen from \"~/assets/svg/userOxygen.svg\";\r\nimport userWinning from \"~/assets/svg/userWinning.svg\";\r\n\r\nexport type FlipDataType = {\r\n imgSrc: string | null;\r\n description: React.ReactNode;\r\n};\r\n\r\nexport const Hub_Flipper: React.FC> = () => {\r\n const data: FlipDataType[] = [\r\n {\r\n imgSrc: userOxygen,\r\n description: (\r\n <>Healthy employees are 3x more productive than unhealthy employees.\r\n ),\r\n },\r\n {\r\n imgSrc: arrowsUp,\r\n description: (\r\n <>\r\n Workplaces who don’t promote health and wellbeing are 4x more likely\r\n to lose talent within 12 months compared to workplaces that do promote\r\n health and wellbeing.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: tissue,\r\n description: (\r\n <>\r\n Implementing a health and wellbeing program reduces absences due to\r\n sick leave by 25% on average.\r\n \r\n ),\r\n },\r\n {\r\n imgSrc: userWinning,\r\n description: (\r\n <>\r\n Employees who work in organisations that actively promote health and\r\n wellbeing are 3x more likely to regard their workplace as a highly\r\n desirable or above average place to work.\r\n \r\n ),\r\n },\r\n ];\r\n\r\n const [currentSlide, setCurrentSlide] = React.useState(0);\r\n\r\n const handleAnimation = (dir: -1 | 1) => {\r\n setCurrentSlide((prev) => (prev + dir + data.length) % data.length);\r\n };\r\n\r\n return (\r\n \r\n handleAnimation(-1)}\r\n >\r\n ‹\r\n \r\n {data.map(({ imgSrc, description }, idx) => (\r\n \r\n \r\n {imgSrc && \"\"}\r\n {description && (\r\n {description}\r\n )}\r\n \r\n \r\n ))}\r\n handleAnimation(1)}\r\n >\r\n ›\r\n \r\n \r\n );\r\n};\r\n\r\nconst FlipContainer = styled.div`\r\n position: relative;\r\n margin: 0 auto;\r\n max-width: 20rem;\r\n max-height: 20rem;\r\n min-width: 10rem;\r\n min-height: 10rem;\r\n &::after {\r\n content: \"\";\r\n display: block;\r\n padding-bottom: 100%;\r\n }\r\n`;\r\n\r\nconst FlipInner = styled.div<{ active: boolean }>`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n padding: 1rem 2rem;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n border-radius: 50%;\r\n -webkit-backface-visibility: hidden;\r\n backface-visibility: hidden;\r\n transition: 500ms all cubic-bezier(0.34, 1.56, 0.64, 1);\r\n z-index: ${(p) => (p.active ? 1 : 0)};\r\n transform-style: preserve-3d;\r\n transform: ${(p) => (p.active ? \"rotateY(0deg)\" : \"rotateY(180deg)\")};\r\n`;\r\n\r\nconst IndicatorLeft = styled.button`\r\n position: absolute;\r\n padding: 0 0 0.25rem 0;\r\n width: 2rem;\r\n height: 2rem;\r\n top: calc(50% - 1rem);\r\n left: -1rem;\r\n z-index: 1;\r\n font-size: 2rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: 150ms all cubic-bezier(0.34, 1.15, 0.85, 1);\r\n opacity: 0.9;\r\n z-index: 2;\r\n &:active {\r\n font-size: 3rem;\r\n padding: 0 0 0.5rem 0;\r\n }\r\n`;\r\n\r\nconst IndicatorRight = styled(IndicatorLeft)`\r\n left: calc(100% - 1rem);\r\n`;\r\n\r\nconst Contents = styled.div`\r\n padding: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n text-align: center;\r\n color: white;\r\n`;\r\n\r\nconst ContentDescription = styled.p`\r\n display: block;\r\n margin: 0;\r\n font-size: 1rem;\r\n`;\r\n","import * as React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const Hub_InteractiveTable: React.FC> = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n \r\n Within a few months\r\n \r\n

    \r\n \r\n \r\n \r\n
      \r\n
    • Worker morale and engagement
    • \r\n
    • Team cohesion
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n \r\n Within 1-2 years\r\n \r\n

    \r\n \r\n \r\n \r\n
      \r\n
    • Individual work performance and productivity
    • \r\n
    • Attraction and retention of employees
    • \r\n
    • Improvement corporate and recruitment image
    • \r\n
    • Individual health knowledge
    • \r\n
    • Job satisfaction
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    \r\n \r\n Within 3-5 years\r\n \r\n

    \r\n \r\n \r\n \r\n
      \r\n
    • Workplace injuries and associated expenses
    • \r\n
    • Absenteeism and sick leave
    • \r\n
    • Incidence of attending work when sick
    • \r\n
    • Improved relations among workers and with management
    • \r\n
    • Return on training and development investment
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AccordionHeader = styled.div`\r\n width: calc(100% + 1rem);\r\n clip-path: polygon(\r\n 0 0,\r\n calc(100% - 1rem) 0,\r\n 100% 50%,\r\n calc(100% - 1rem) 100%,\r\n 0 100%\r\n );\r\n\r\n @media screen and (min-width: 768px) {\r\n &.heading-two,\r\n &.heading-three {\r\n clip-path: polygon(\r\n 0 0,\r\n calc(100% - 1rem) 0,\r\n 100% 50%,\r\n calc(100% - 1rem) 100%,\r\n 0 100%,\r\n 1rem 50%\r\n );\r\n }\r\n }\r\n`;\r\n\r\nconst AccordionButton = styled.button`\r\n padding: 0.5rem;\r\n text-align: left;\r\n text-transform: uppercase;\r\n color: white;\r\n font-weight: bold;\r\n\r\n &:focus,\r\n &:hover {\r\n color: white;\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nconst AccordionBody = styled.div`\r\n padding: 1rem 0.5rem 0.5rem;\r\n border: 1px solid #888;\r\n border-top: none;\r\n background-color: floralwhite;\r\n`;\r\n","var _g, _path;\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\nimport * as React from \"react\";\n\nfunction SvgTrophyGold(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#ffa000\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M373.333 256c-5.891 0-10.667-4.776-10.667-10.667s4.776-10.667 10.667-10.667C432.214 234.596 479.93 186.881 480 128V42.667h-96c-5.891 0-10.667-4.776-10.667-10.667S378.109 21.333 384 21.333h106.667c5.891 0 10.667 4.776 10.667 10.667v96c-.083 70.658-57.342 127.918-128.001 128zM138.667 256c-70.658-.082-127.918-57.342-128-128V32c0-5.891 4.776-10.667 10.667-10.667H128c5.891 0 10.667 4.776 10.667 10.667S133.891 42.667 128 42.667H32V128c.071 58.881 47.786 106.596 106.667 106.667 5.891 0 10.667 4.776 10.667 10.667-.001 5.89-4.776 10.666-10.667 10.666zM322.709 425.131l-5.739-5.888c-22.357-22.998-28.501-87.296-28.97-110.123-.116-5.808-4.858-10.454-10.667-10.453h-42.667c-5.801-.001-10.539 4.633-10.667 10.432-.448 22.827-6.592 87.083-28.971 110.123l-5.739 5.888c-29.291 30.144-50.624 51.925-50.624 76.224 0 5.891 4.776 10.667 10.667 10.667h213.333c5.891 0 10.667-4.776 10.667-10.667.001-24.299-21.332-46.081-50.623-76.203z\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M384 0H128c-5.891 0-10.667 4.776-10.667 10.667v170.667C118.333 257.499 179.834 319 256 320c76.166-1 137.667-62.501 138.667-138.667V10.667C394.667 4.776 389.891 0 384 0z\",\n fill: \"#ffc107\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIj4NCgk8Zz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6I0ZGQTAwMDsiIGQ9Ik0zNzMuMzMzLDI1NmMtNS44OTEsMC0xMC42NjctNC43NzYtMTAuNjY3LTEwLjY2N2MwLTUuODkxLDQuNzc2LTEwLjY2NywxMC42NjctMTAuNjY3ICAgQzQzMi4yMTQsMjM0LjU5Niw0NzkuOTMsMTg2Ljg4MSw0ODAsMTI4VjQyLjY2N2gtOTZjLTUuODkxLDAtMTAuNjY3LTQuNzc2LTEwLjY2Ny0xMC42NjdTMzc4LjEwOSwyMS4zMzMsMzg0LDIxLjMzM2gxMDYuNjY3ICAgYzUuODkxLDAsMTAuNjY3LDQuNzc2LDEwLjY2NywxMC42Njd2OTZDNTAxLjI1MSwxOTguNjU4LDQ0My45OTIsMjU1LjkxOCwzNzMuMzMzLDI1NnoiLz4NCgkJPHBhdGggc3R5bGU9ImZpbGw6I0ZGQTAwMDsiIGQ9Ik0xMzguNjY3LDI1NmMtNzAuNjU4LTAuMDgyLTEyNy45MTgtNTcuMzQyLTEyOC0xMjhWMzJjMC01Ljg5MSw0Ljc3Ni0xMC42NjcsMTAuNjY3LTEwLjY2N0gxMjggICBjNS44OTEsMCwxMC42NjcsNC43NzYsMTAuNjY3LDEwLjY2N1MxMzMuODkxLDQyLjY2NywxMjgsNDIuNjY3SDMyVjEyOGMwLjA3MSw1OC44ODEsNDcuNzg2LDEwNi41OTYsMTA2LjY2NywxMDYuNjY3ICAgYzUuODkxLDAsMTAuNjY3LDQuNzc2LDEwLjY2NywxMC42NjdDMTQ5LjMzMywyNTEuMjI0LDE0NC41NTgsMjU2LDEzOC42NjcsMjU2eiIvPg0KCQk8cGF0aCBzdHlsZT0iZmlsbDojRkZBMDAwOyIgZD0iTTMyMi43MDksNDI1LjEzMWwtNS43MzktNS44ODhDMjk0LjYxMywzOTYuMjQ1LDI4OC40NjksMzMxLjk0NywyODgsMzA5LjEyICAgYy0wLjExNi01LjgwOC00Ljg1OC0xMC40NTQtMTAuNjY3LTEwLjQ1M2gtNDIuNjY3Yy01LjgwMS0wLjAwMS0xMC41MzksNC42MzMtMTAuNjY3LDEwLjQzMiAgIGMtMC40NDgsMjIuODI3LTYuNTkyLDg3LjA4My0yOC45NzEsMTEwLjEyM2wtNS43MzksNS44ODhjLTI5LjI5MSwzMC4xNDQtNTAuNjI0LDUxLjkyNS01MC42MjQsNzYuMjI0ICAgYzAsNS44OTEsNC43NzYsMTAuNjY3LDEwLjY2NywxMC42NjdoMjEzLjMzM2M1Ljg5MSwwLDEwLjY2Ny00Ljc3NiwxMC42NjctMTAuNjY3QzM3My4zMzMsNDc3LjAzNSwzNTIsNDU1LjI1MywzMjIuNzA5LDQyNS4xMzF6Ii8+DQoJPC9nPg0KCTxwYXRoIHN0eWxlPSJmaWxsOiNGRkMxMDc7IiBkPSJNMzg0LDBIMTI4Yy01Ljg5MSwwLTEwLjY2Nyw0Ljc3Ni0xMC42NjcsMTAuNjY3djE3MC42NjdDMTE4LjMzMywyNTcuNDk5LDE3OS44MzQsMzE5LDI1NiwzMjAgIGM3Ni4xNjYtMSwxMzcuNjY3LTYyLjUwMSwxMzguNjY3LTEzOC42NjdWMTAuNjY3QzM5NC42NjcsNC43NzYsMzg5Ljg5MSwwLDM4NCwweiIvPg0KPC9zdmc+\";\nexport { SvgTrophyGold as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgRightArrow(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512.171 512.171\",\n fill: \"#fff\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M509.035 248.212l-213.504-212.8c-3.051-3.029-7.595-3.904-11.627-2.304a10.67 10.67 0 00-6.571 9.856v117.333H10.667C4.779 160.298 0 165.076 0 170.964v170.667c0 5.888 4.779 10.667 10.667 10.667h266.667v116.885c0 4.309 2.603 8.192 6.592 9.856 1.323.555 2.709.811 4.075.811 2.773 0 5.504-1.088 7.552-3.115l213.504-213.419a10.655 10.655 0 003.115-7.552 10.682 10.682 0 00-3.137-7.552z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIuMTcxIDUxMi4xNzEiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9IiNmZmYiPg0KCTxnPg0KCQk8cGF0aCBkPSJNNTA5LjAzNSwyNDguMjEybC0yMTMuNTA0LTIxMi44Yy0zLjA1MS0zLjAyOS03LjU5NS0zLjkwNC0xMS42MjctMi4zMDRjLTMuOTg5LDEuNjY0LTYuNTcxLDUuNTQ3LTYuNTcxLDkuODU2djExNy4zMzMgICAgSDEwLjY2N0M0Ljc3OSwxNjAuMjk4LDAsMTY1LjA3NiwwLDE3MC45NjR2MTcwLjY2N2MwLDUuODg4LDQuNzc5LDEwLjY2NywxMC42NjcsMTAuNjY3aDI2Ni42Njd2MTE2Ljg4NSAgICBjMCw0LjMwOSwyLjYwMyw4LjE5Miw2LjU5Miw5Ljg1NmMxLjMyMywwLjU1NSwyLjcwOSwwLjgxMSw0LjA3NSwwLjgxMWMyLjc3MywwLDUuNTA0LTEuMDg4LDcuNTUyLTMuMTE1bDIxMy41MDQtMjEzLjQxOSAgICBjMi4wMDUtMi4wMDUsMy4xMTUtNC43MTUsMy4xMTUtNy41NTJDNTEyLjE3MSwyNTIuOTI3LDUxMS4wNCwyNTAuMjE4LDUwOS4wMzUsMjQ4LjIxMnoiLz4NCgk8L2c+DQo8L3N2Zz4NCg0KPCEtLSBBdHRyaWJ1dGlvbiBSZXF1aXJlZCAtLT4NCjwhLS0gPGRpdj5JY29ucyBtYWRlIGJ5IDxhIGhyZWY9Imh0dHBzOi8vaWNvbjU0LmNvbS8iIHRpdGxlPSJQaXhlbCBwZXJmZWN0Ij5QaXhlbCBwZXJmZWN0PC9hPiBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZsYXRpY29uLmNvbS8iIHRpdGxlPSJGbGF0aWNvbiI+d3d3LmZsYXRpY29uLmNvbTwvYT48L2Rpdj4gLS0+\";\nexport { SvgRightArrow as ReactComponent };","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgClock(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n fill: \"#ADCB00\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M347.216 301.211l-71.387-53.54V138.609c0-10.966-8.864-19.83-19.83-19.83-10.966 0-19.83 8.864-19.83 19.83v118.978c0 6.246 2.935 12.136 7.932 15.864l79.318 59.489a19.713 19.713 0 0011.878 3.966c6.048 0 11.997-2.717 15.884-7.952 6.585-8.746 4.8-21.179-3.965-27.743z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 0C114.833 0 0 114.833 0 256s114.833 256 256 256 256-114.833 256-256S397.167 0 256 0zm0 472.341c-119.275 0-216.341-97.066-216.341-216.341S136.725 39.659 256 39.659c119.295 0 216.341 97.066 216.341 216.341S375.275 472.341 256 472.341z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjQURDQjAwIj4NCgk8Zz4NCgkJPHBhdGggZD0iTTM0Ny4yMTYsMzAxLjIxMWwtNzEuMzg3LTUzLjU0VjEzOC42MDljMC0xMC45NjYtOC44NjQtMTkuODMtMTkuODMtMTkuODNjLTEwLjk2NiwwLTE5LjgzLDguODY0LTE5LjgzLDE5LjgzdjExOC45NzggICAgYzAsNi4yNDYsMi45MzUsMTIuMTM2LDcuOTMyLDE1Ljg2NGw3OS4zMTgsNTkuNDg5YzMuNTY5LDIuNjc3LDcuNzM0LDMuOTY2LDExLjg3OCwzLjk2NmM2LjA0OCwwLDExLjk5Ny0yLjcxNywxNS44ODQtNy45NTIgICAgQzM1Ny43NjYsMzIwLjIwOCwzNTUuOTgxLDMwNy43NzUsMzQ3LjIxNiwzMDEuMjExeiIvPg0KCTwvZz4NCgk8Zz4NCgkJPHBhdGggZD0iTTI1NiwwQzExNC44MzMsMCwwLDExNC44MzMsMCwyNTZzMTE0LjgzMywyNTYsMjU2LDI1NnMyNTYtMTE0LjgzMywyNTYtMjU2UzM5Ny4xNjcsMCwyNTYsMHogTTI1Niw0NzIuMzQxICAgIGMtMTE5LjI3NSwwLTIxNi4zNDEtOTcuMDY2LTIxNi4zNDEtMjE2LjM0MVMxMzYuNzI1LDM5LjY1OSwyNTYsMzkuNjU5YzExOS4yOTUsMCwyMTYuMzQxLDk3LjA2NiwyMTYuMzQxLDIxNi4zNDEgICAgUzM3NS4yNzUsNDcyLjM0MSwyNTYsNDcyLjM0MXoiLz4NCgk8L2c+DQo8L3N2Zz4NCg0KPCEtLSBBdHRyaWJ1dGlvbiBSZXF1aXJlZCAtLT4NCjwhLS0gPGRpdj5JY29ucyBtYWRlIGJ5IDxhIGhyZWY9Imh0dHBzOi8vaWNvbjU0LmNvbS8iIHRpdGxlPSJQaXhlbCBwZXJmZWN0Ij5QaXhlbCBwZXJmZWN0PC9hPiBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZsYXRpY29uLmNvbS8iIHRpdGxlPSJGbGF0aWNvbiI+d3d3LmZsYXRpY29uLmNvbTwvYT48L2Rpdj4gLS0+\";\nexport { SvgClock as ReactComponent };","import * as React from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\n\r\nimport { theme } from \"~/theme\";\r\n\r\nimport module1Img from \"../assets/gfx/module1-bg1.jpg\";\r\nimport module2Img from \"../assets/gfx/module-2-image.jpg\";\r\nimport module3Img from \"../assets/gfx/module-3-image.jpg\";\r\nimport module4Img from \"../assets/gfx/module-4-image.jpg\";\r\nimport doneImg from \"../assets/gfx/done-image.jpg\";\r\nimport trophy from \"../assets/svg/trophy-gold.svg\";\r\n\r\nimport rightArrow from \"../assets/svg/rightArrow.svg\";\r\nimport clock from \"../assets/svg/clock.svg\";\r\n\r\ninterface Data {\r\n imgSrc: string;\r\n title: string;\r\n body: JSX.Element;\r\n showFooter: boolean;\r\n}\r\n\r\nconst data: Data[] = [\r\n {\r\n imgSrc: module1Img,\r\n title: \"Module 1\",\r\n body:

    Introduction to workplace health

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: module2Img,\r\n title: \"Module 2\",\r\n body:

    Motivating staff to be healthy

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: module3Img,\r\n title: \"Module 3\",\r\n body:

    Best practice workplace health promotion

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: module4Img,\r\n title: \"Module 4\",\r\n body:

    Planning your program

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: doneImg,\r\n title: \"DONE!\",\r\n body: (\r\n <>\r\n

    Receive a certificate of completion

    \r\n \r\n \r\n ),\r\n showFooter: false,\r\n },\r\n];\r\n\r\nexport const Hub_InteractiveTraining: React.FC> = () => {\r\n return (\r\n \r\n \r\n {data.map(({ imgSrc, title, body, showFooter }, idx) => (\r\n \r\n {`${title}\r\n
    \r\n

    {title}

    \r\n {body}\r\n
    \r\n {showFooter && (\r\n \r\n \"clock\"\r\n 20 mins\r\n \r\n )}\r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst slideAcross = (translateX: number, marginX: number) => keyframes`\r\n 0% {\r\n opacity: 0;\r\n }\r\n 5% {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n 10% {\r\n opacity: 1;\r\n transform: translateX(0);\r\n }\r\n 80% {\r\n opacity: 1;\r\n transform: translateX(calc(${translateX}% - ${marginX}rem));\r\n }\r\n 85% {\r\n opacity: 1;\r\n transform: translateX(calc(${translateX}% - ${marginX}rem));;\r\n }\r\n 90% {\r\n opacity: 0;\r\n transform: translateX(calc(${translateX}% - ${marginX}rem));;\r\n }\r\n 100% {\r\n opacity: 0;\r\n }\r\n`;\r\n\r\nconst showUp = keyframes`\r\n 0% {\r\n opacity: 0;\r\n border: 2px solid transparent;\r\n }\r\n 20% {\r\n opacity: 1;\r\n border: 2px solid transparent;\r\n }\r\n 100% {\r\n opacity: 1;\r\n border: 2px solid ${theme.gold};\r\n }\r\n`;\r\n\r\nconst arrowsIn = keyframes`\r\n 0% {\r\n opacity: 0;\r\n transform: translateX(-20px);\r\n }\r\n 50% {\r\n opacity: 0.3;\r\n transform: translateX(-10px);\r\n }\r\n 100% {\r\n opacity: 1;\r\n transform: translateX(0px);\r\n }\r\n`;\r\n\r\nconst CarouselContainer = styled.section`\r\n width: 100%;\r\n max-width: 100%;\r\n overflow-x: hidden;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst Carousel = styled.div`\r\n width: auto;\r\n display: flex;\r\n opacity: 0;\r\n animation: 20s linear 1s\r\n ${slideAcross(-100 * (data.length - 1), 5 * (data.length - 1))} infinite;\r\n\r\n @media screen and (min-width: 768px) {\r\n animation: 10s linear 1s ${slideAcross(-97, 0)} infinite;\r\n }\r\n\r\n @media screen and (min-width: 992px) {\r\n animation: none;\r\n opacity: 1;\r\n }\r\n`;\r\n\r\nconst CarouselItem = styled.div<{num: number}>`\r\n min-width: 100%;\r\n border: 2px solid ${theme.gold};\r\n\r\n h4 {\r\n color: ${theme.warning};\r\n }\r\n\r\n &:not(:last-of-type) {\r\n margin-right: 5rem;\r\n }\r\n\r\n &:not(:last-of-type)::after {\r\n content: \"\";\r\n position: absolute;\r\n top: calc(50% - 1.5rem);\r\n right: calc(0% - 4rem);\r\n width: 3rem;\r\n height: 3rem;\r\n background-color: ${theme.info};\r\n background-image: url(${rightArrow});\r\n background-size: 45%;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n border-radius: 50%;\r\n }\r\n\r\n @media screen and (min-width: 768px) {\r\n min-width: 33%;\r\n &:not(:last-of-type) {\r\n margin-right: 3rem;\r\n }\r\n &:not(:last-of-type)::after {\r\n right: calc(-2px - 2.5rem);\r\n width: 2rem;\r\n height: 2rem;\r\n }\r\n }\r\n\r\n @media screen and (min-width: 992px) {\r\n min-width: calc(20% - 2rem);\r\n\r\n opacity: 0;\r\n border: 2px solid transparent;\r\n \r\n animation: 2s linear ${p => (p.num * 3)}s ${showUp} forwards;\r\n\r\n &:not(:last-of-type) {\r\n margin-right: 2rem;\r\n }\r\n\r\n &:not(:last-of-type)::after {\r\n right: calc(2px - 2rem);\r\n width: 1.5rem;\r\n height: 1.5rem;\r\n\r\n opacity: 0;\r\n animation: 500ms ease-in ${p => (p.num * 3) + 2}s ${arrowsIn} forwards;\r\n }\r\n }\r\n`;\r\n","import * as React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport bgImg from \"~/assets/gfx/module1-bg3.jpg\";\r\nimport { ReactComponent as CloseIcon } from \"~/assets/svg/closeIcon.svg\";\r\n\r\nexport const Hub_ThreeCircles: React.FC> = () => {\r\n const [activeCircle, setActiveCircle] = React.useState(-1);\r\n\r\n const handleClick = (id: number) => {\r\n return id === activeCircle ? setActiveCircle(-1) : setActiveCircle(id);\r\n };\r\n\r\n const threeCirclesData = [\r\n {\r\n title: \"A health and wellbeing policy\",\r\n description: (\r\n \r\n A policy is a written document setting out an organisation’s\r\n commitment to the health and wellbeing of staff. It outlines the\r\n strategies that will be used to promote health within the workplace. A\r\n policy will also help ensure the sustainability of the program even\r\n with staffing changes.\r\n \r\n ),\r\n },\r\n {\r\n title: \"An environment that supports people to be healthy\",\r\n description: (\r\n \r\n The physical workplace environment can either support or present a\r\n barrier for staff to be healthy. Examples of environmental changes\r\n that will promote employee health include: providing bicycle storage\r\n and end-of-trip facilities (e.g. showers and lockers), sit-stand\r\n workstations, a kitchen equipped with a fridge and basic food\r\n preparation equipment, not providing alcohol at staff functions, and\r\n displaying smoke-free signs in outdoor areas and around the perimeter\r\n of the building.\r\n \r\n ),\r\n },\r\n {\r\n title: \"Staff education and activities\",\r\n description: (\r\n \r\n Education involves providing employees with information on the risks\r\n associated with unhealthy behaviours and how to be healthier. Examples\r\n include ‘take the stairs’ posters, nutrition education sessions, hard\r\n copy resources like recipe books, or information about stretching\r\n exercises provided on the intranet. Workplace activities like walking\r\n groups, healthy cooking classes or a 30-day no alcohol challenge\r\n provide concrete opportunities for those looking to make a change.\r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n \r\n
    \r\n \r\n {threeCirclesData.map(({ title, description }, idx) => (\r\n \r\n handleClick(idx)}\r\n >\r\n

    {title}

    \r\n {description}\r\n {idx === activeCircle && }\r\n \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst Wrapper = styled.section`\r\n margin: 0 -2rem;\r\n background: url(\"${bgImg}\");\r\n background-position: center center;\r\n background-size: cover;\r\n @media screen and (min-width: 768px) {\r\n margin: 0;\r\n }\r\n`;\r\n\r\nconst ThreeCircles = styled.div`\r\n position: relative;\r\n height: 900px;\r\n @media screen and (min-width: 768px) {\r\n height: 600px;\r\n }\r\n`;\r\n\r\nconst CircleContainer = styled.div<{ active: boolean }>`\r\n position: absolute;\r\n display: block;\r\n top: 0;\r\n left: 0;\r\n width: 300px;\r\n height: 300px;\r\n border-radius: 50%;\r\n transition: transform 600ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n transform: ${(p) => (p.active ? \"scale(1.5)\" : \"scale(1)\")};\r\n z-index: ${(p) => (p.active ? 2 : 1)};\r\n &:nth-of-type(1) {\r\n top: 50px;\r\n left: calc(50% - 150px);\r\n transform-origin: top center;\r\n }\r\n &:nth-of-type(2) {\r\n top: 300px;\r\n left: calc(50% - 150px);\r\n transform-origin: center center;\r\n }\r\n &:nth-of-type(3) {\r\n top: 550px;\r\n left: calc(50% - 150px);\r\n transform-origin: bottom center;\r\n }\r\n @media screen and (min-width: 768px) {\r\n &:nth-of-type(2) {\r\n top: 250px;\r\n left: calc(50% - 275px);\r\n transform-origin: bottom left;\r\n }\r\n &:nth-of-type(3) {\r\n top: 250px;\r\n left: calc(50% - 25px);\r\n transform-origin: bottom right;\r\n }\r\n }\r\n`;\r\n\r\nconst Circle = styled.button<{ active: boolean }>`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n padding: 1rem 2.5rem;\r\n overflow: hidden;\r\n display: block;\r\n border-radius: 50%;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: ${(p) => (p.active ? \"space-evenly\" : \"flex-start\")};\r\n align-items: center;\r\n margin: auto;\r\n background: ${(p) => (p.active ? \"#004C97\" : \"rgba(255, 255, 255, 0.2)\")};\r\n transition: all 600ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n border: none;\r\n &:focus {\r\n outline: none;\r\n }\r\n & h3 {\r\n transition: all 600ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n font-size: ${(p) => (p.active ? \"1rem\" : \"1.125rem\")};\r\n color: ${(p) => (p.active ? \"white\" : \"black\")};\r\n margin: ${(p) => (p.active ? \"0 1rem 0\" : \"45% 1rem 0\")};\r\n }\r\n & small {\r\n transition: all 400ms cubic-bezier(0.34, 1.56, 0.64, 1);\r\n color: ${(p) => (p.active ? \"white\" : \"transparent\")};\r\n font-size: 0.7rem;\r\n line-height: 1.25;\r\n }\r\n & svg {\r\n fill: white;\r\n }\r\n @media screen and (min-width: 768px) {\r\n padding: 1rem 2rem;\r\n }\r\n`;\r\n","import React from \"react\";\r\nimport Slider from \"react-slick\";\r\nimport styled from \"styled-components\";\r\n\r\nconst settings = {\r\n infinite: true,\r\n slidesToShow: 4,\r\n slidesToScroll: 1,\r\n responsive: [\r\n {\r\n breakpoint: 1200,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n },\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1,\r\n },\r\n },\r\n {\r\n breakpoint: 576,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n },\r\n },\r\n ],\r\n};\r\n\r\nconst data = [\r\n {\r\n title: \"Provide healthy food and drinks at work functions\",\r\n body: (\r\n

    \r\n Offer healthy foods and drinks at meetings, conferences, lunches and\r\n celebrations. Healthy food can improve alertness and concentration,\r\n whilst helping the health of employees.\r\n
    \r\n Switch the packet of biscuits and tray of sausage rolls for a fruit\r\n platter, sushi,{\" \"}\r\n \r\n rice paper rolls\r\n \r\n ,{\" \"}\r\n \r\n mini quiches\r\n \r\n ,{\" \"}\r\n \r\n low-sugar muffins\r\n \r\n , or grainy{\" \"}\r\n \r\n wraps\r\n {\" \"}\r\n and{\" \"}\r\n \r\n sandwiches\r\n {\" \"}\r\n packed with salad. Any unhealthy foods provided should be in small\r\n portion sizes and make up only a small proportion of the total offering.\r\n
    \r\n For more ideas, see our blog on{\" \"}\r\n \r\n hosting a healthy morning tea\r\n \r\n .\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Start a lunchtime walking group\",\r\n body: (\r\n

    \r\n Encourage employees to take a break from sitting and get some fresh air\r\n in their lungs by organising a regular lunchtime walking group. Promote\r\n the use of{\" \"}\r\n \r\n sun protection measures\r\n {\" \"}\r\n including wearing a broad-brimmed hat, sunscreen and sunglasses when\r\n getting active.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Promote quitting resources\",\r\n body: (\r\n

    \r\n The{\" \"}\r\n \r\n Make Smoking History website\r\n {\" \"}\r\n provides information and resources for employees who want to quit\r\n smoking. It also includes information on quitting and has links to\r\n resources such as Quitline, which is a confidential telephone advice and\r\n information service.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Register workplace teams to participate in physical events\",\r\n body: (\r\n

    \r\n Improve health while building a stronger workplace culture! Encourage\r\n employees to sign up for local physical activity events,{\" \"}\r\n \r\n challenges\r\n {\" \"}\r\n or start your own in-house sporting competition.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Make your lunchroom inviting\",\r\n body: (\r\n

    \r\n Provide space for employees to store and prepare food. This will make it\r\n easier for them to bring a healthy lunch from home. Items such as sharp\r\n knives, peelers and cutting boards can really make a difference.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Encourage active travel\",\r\n body: (\r\n

    \r\n When people exercise before and during work, they are usually more\r\n productive throughout their day. Provide employees with{\" \"}\r\n \r\n active travel maps\r\n {\" \"}\r\n which include information about local walking pathways, cycling routes,\r\n public transport timetables and promote your workplace’s\r\n end-of-trip facilities.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Remove rubbish and recycling bins from individual desks\",\r\n body: (\r\n

    \r\n Sitting at your desk all day is bad for your health. Promote{\" \"}\r\n \r\n moving more\r\n {\" \"}\r\n by relocating bins and printers to a central location to encourage\r\n employees to take a break from long periods of sitting.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Hold standing or walking meetings\",\r\n body: (\r\n

    \r\n Experiencing meeting fatigue? Let staff know they can stand up and\r\n stretch whenever they would like during the meeting, hold meetings\r\n around a tall table so everyone can stand, or you could even try a\r\n walking meeting!\r\n
    \r\n For more ideas on how to create meetings that support employees to be\r\n healthier download our{\" \"}\r\n \r\n 6 steps to a healthier meeting\r\n {\" \"}\r\n guide.\r\n

    \r\n ),\r\n },\r\n {\r\n title: \"Raise awareness\",\r\n body: (\r\n <>\r\n

    \r\n You can help raise awareness about healthy behaviours by displaying{\" \"}\r\n \r\n informative posters\r\n {\" \"}\r\n in common areas such as kitchens or meetings rooms or delivering one\r\n of our{\" \"}\r\n \r\n pre-prepared presentations\r\n {\" \"}\r\n to employees. You could also encourage staff to sign up to the{\" \"}\r\n \r\n LiveLighter newsletter\r\n {\" \"}\r\n for healthy tips and recipes delivered to their inbox each month.\r\n

    \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Sugar in drinks poster\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Fruit & veg 30-day challenge\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Move More 30-day challenge\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Salad builder poster\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Sandwich builder poster\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Eat Brighter poster: Green\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Eat Brighter poster: Orange\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Eat Brighter poster: Purple\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Eat Brighter poster: Red\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Eat Brighter poster: White\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Pre-prepared presentation kits\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n Subscribe to our newsletter\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n ),\r\n },\r\n {\r\n title: \"Only use healthy prizes, gifts and fundraising\",\r\n body: (\r\n

    \r\n Only use healthy prizes, gifts and fundraising. Don’t use alcohol or\r\n chocolates as{\" \"}\r\n \r\n fundraising items, prizes or gifts\r\n \r\n . Give a healthy cookbook, some sports equipment, or a voucher for some\r\n activewear. These gifts will be more memorable and your employees’\r\n health will thank you.\r\n

    \r\n ),\r\n },\r\n];\r\n\r\nexport const Hub_QuickWins: React.FC> = () => {\r\n const [activeQuickWin, setActiveQuickWin] = React.useState(0);\r\n\r\n const changeSelected = (id: number) => {\r\n return id === activeQuickWin\r\n ? setActiveQuickWin(-1)\r\n : setActiveQuickWin(id);\r\n };\r\n\r\n return (\r\n <>\r\n
    \r\n {data.map((_, idx) => (\r\n changeSelected(idx)}\r\n active={idx === activeQuickWin}\r\n >\r\n \r\n {idx + 1}\r\n \r\n \r\n ))}\r\n
    \r\n {activeQuickWin !== -1 && (\r\n \r\n

    {data[activeQuickWin].title}

    \r\n {data[activeQuickWin].body}\r\n
    \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst StyledButton = styled.button<{ active: boolean }>`\r\n position: relative;\r\n width: 100%;\r\n padding: 0;\r\n display: flex;\r\n border: none;\r\n background-color: transparent;\r\n transition: all 500ms cubic-bezier(0.34, 1.86, 0.64, 1);\r\n z-index: ${(p) => (p.active ? 2 : 1)};\r\n @media screen and (min-width: 768px) {\r\n transform: ${(p) => (p.active ? \"scale(1.5)\" : \"scale(1)\")};\r\n }\r\n &:focus {\r\n outline: none;\r\n }\r\n &::after {\r\n content: \"\";\r\n padding-bottom: 100%;\r\n }\r\n`;\r\n\r\nconst IconDiv = styled.div`\r\n position: absolute;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n color: white;\r\n font-size: 1.125rem;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n border-radius: 15%;\r\n @media screen and (min-width: 768px) {\r\n font-size: 1.5rem;\r\n }\r\n`;\r\n\r\nconst InformationBox = styled.div`\r\n margin: 1rem -2rem 2rem;\r\n padding: 2rem;\r\n display: flex;\r\n flex-direction: column;\r\n color: white;\r\n text-align: center;\r\n @media screen and (min-width: 768px) {\r\n & h1 {\r\n display: inline-block;\r\n font-size: 1.75rem;\r\n margin-bottom: 1rem;\r\n }\r\n & p {\r\n font-size: 1.25rem;\r\n }\r\n margin: -2rem -2rem 2rem;\r\n padding: 4rem 5rem 3rem;\r\n }\r\n @media screen and (min-width: 992px) {\r\n padding: 5rem 5rem 3rem;\r\n }\r\n`;\r\n","import toDate from \"../toDate/index.js\";\nimport isValid from \"../isValid/index.js\";\nimport addLeadingZeros from \"../_lib/addLeadingZeros/index.js\";\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with time zone, or both.\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.represenation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\n\nexport default function formatISO(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var format = options.format == null ? 'extended' : String(options.format);\n var representation = options.representation == null ? 'complete' : String(options.representation);\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var tzOffset = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n // Add the timezone.\n var offset = originalDate.getTimezoneOffset();\n\n if (offset !== 0) {\n var absoluteOffset = Math.abs(offset);\n var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = offset < 0 ? '+' : '-';\n tzOffset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n tzOffset = 'Z';\n }\n\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with 'T'\n\n var separator = result === '' ? '' : 'T'; // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n\n var time = [hour, minute, second].join(timeDelimiter); // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(time).concat(tzOffset);\n }\n\n return result;\n}","import { formatISO } from \"date-fns\";\r\n\r\nimport { StateKey } from \"~/constants\";\r\n\r\ninterface SubscribeNewsletterOptions {\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n state: StateKey;\r\n isOverEighteen: boolean;\r\n}\r\n\r\nexport const subscribeNewsletter = (v: SubscribeNewsletterOptions) => {\r\n v.state = v.state === \"Other\" ? \"WA\" : v.state;\r\n\r\n return fetch(\"/CampaignMonitor/Subscribe\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n firstName: v.firstName!,\r\n lastName: v.lastName!,\r\n email: v.email!,\r\n state: v.state,\r\n isOverEighteen: v.isOverEighteen,\r\n }),\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n }\r\n throw Error(\"CM Subscribe Network error\");\r\n })\r\n .catch((err) => {\r\n throw err;\r\n });\r\n};\r\n\r\ninterface User {\r\n firstName?: string;\r\n lastName?: string;\r\n email: string;\r\n state?: StateKey | null;\r\n completedModules?: string;\r\n dateLastUsed?: number;\r\n}\r\n\r\nexport const upsertHealthyWorkplace = (user: User) => {\r\n return fetch(\"/CampaignMonitor/HealthyWorkplace\", {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify({\r\n ...user,\r\n dateLastUsed: formatISO(user.dateLastUsed || Date.now()),\r\n }),\r\n })\r\n .then((res) => {\r\n if (res.ok) {\r\n return res.json();\r\n }\r\n\r\n throw Error(\"HWA Network error\");\r\n })\r\n .catch((err) => {\r\n throw err;\r\n });\r\n};\r\n","import React, { useRef } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport {\r\n BusinessCircles,\r\n BenefitTable,\r\n PracticeCircles,\r\n RiskFactors,\r\n ModuleHeader,\r\n ModuleQuizForm,\r\n ModuleFooter,\r\n ModuleSection,\r\n ModuleProvider,\r\n ModuleSectionData,\r\n useModuleState,\r\n Tooltips,\r\n RoleOfManagement,\r\n} from \"~/components\";\r\nimport {\r\n useAppContext,\r\n useAppContextMethods,\r\n useGlobalUserMethods,\r\n useGlobalUserState,\r\n} from \"~/state\";\r\nimport { upsertHealthyWorkplace } from \"~/util\";\r\n\r\ninterface ModuleProps {}\r\n\r\nexport const Module1: React.FC = ({}) => {\r\n const { nextModule } = useGlobalUserMethods();\r\n\r\n const { scrollToTop } = useAppContextMethods();\r\n const user = useGlobalUserState();\r\n\r\n const [state, setState, { handleSectionChange }] = useModuleState();\r\n\r\n const headerRef = useRef(null);\r\n const section1Ref = useRef(null);\r\n const section2Ref = useRef(null);\r\n const section3Ref = useRef(null);\r\n const section4Ref = useRef(null);\r\n const section5Ref = useRef(null);\r\n const section6Ref = useRef(null);\r\n const section7Ref = useRef(null);\r\n const section8Ref = useRef(null);\r\n const section9Ref = useRef(null);\r\n const section10Ref = useRef(null);\r\n\r\n const QUIZ_1 = [\r\n {\r\n question: \"Workplace health promotion is...\",\r\n options: [\r\n \"About encouraging employees to have a healthy lifestyle as part of their everyday working life\",\r\n \"To protect employees from illness and injury happening at work\",\r\n ],\r\n answer: [0],\r\n related: section2Ref.current,\r\n },\r\n {\r\n question: \"What are the key risk factors affecting workplace health?\",\r\n options: [\r\n \"Sedentary behaviour, unhealthy eating and drinking, alcohol use, physical inactivity\",\r\n \"Passive smoking, being active, personal hygiene, diet\",\r\n \"Poor diet, stress, alcohol use and nutrition\",\r\n \"Physical inactivity, unhealthy eating and drinking, smoking, alcohol use\",\r\n ],\r\n answer: [3],\r\n related: section4Ref.current,\r\n },\r\n {\r\n question:\r\n \"Who in your workplace is the most important contributor to the success of your health and wellbeing strategies?\",\r\n options: [\r\n \"The finance department\",\r\n \"Senior management\",\r\n \"Your colleagues\",\r\n ],\r\n answer: [1],\r\n related: section6Ref.current,\r\n },\r\n {\r\n question:\r\n \"What are some of the benefits the workplace is likely to see from promoting health and wellbeing?\",\r\n options: [\r\n \"Reduction in sick leave, improved productivity, improved image and retention of staff\",\r\n \"Retention of staff, increased costs, improved productivity and reduced staff turnover\",\r\n \"Improved productivity, high staff turnover, improved image and reduction in sick leave\",\r\n ],\r\n answer: [0],\r\n related: section3Ref.current,\r\n },\r\n {\r\n question:\r\n \"Why is it important to gain management support for your program?\",\r\n options: [\r\n \"Management can commit people, money and other resources to the program and encourage staff to get involved by participating themselves\",\r\n \"It’s not, management don’t need to be involved in workplace health and wellbeing\",\r\n \"Management can enforce the program to ensure all employees participate in all program activities\",\r\n ],\r\n answer: [0],\r\n related: section6Ref.current,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n
    \r\n

    Introduction to workplace health

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n In this section you will learn:\r\n

    \r\n
      \r\n
    • What \"workplace health promotion\" entails
    • \r\n
    • \r\n Why the workplace is a key environment for health promotion\r\n
    • \r\n
    • What the biggest workplace health risk factors are
    • \r\n
    • The benefits of health promotion for your business
    • \r\n
    • Why it is so important to gain management support
    • \r\n
    • How to build a business case
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n

    \r\n What is \"Workplace Health Promotion\"?\r\n

    \r\n
    \r\n \r\n
    \r\n

    \r\n Workplace health promotion is about encouraging staff to lead a\r\n healthy lifestyle as part of their everyday working life.\r\n

    \r\n \r\n

    \r\n Occupational health and safety aims to protect workers from\r\n illness and injury happening at work, whereas workplace health\r\n promotion looks to create a work environment which helps to\r\n reduce the risk of developing chronic disease.\r\n \r\n

    \r\n

    \r\n Chronic diseases are those that are prolonged in duration and\r\n are often associated with lifestyle behaviours.\r\n They include type 2 diabetes, heart disease,\r\n obesity and some cancers and are responsible for about 85% of\r\n the total burden of disease in Australia.\r\n \r\n

    \r\n

    \r\n A successful workplace health program involves three key areas:\r\n

    \r\n \r\n Health policy\r\n \r\n Supportive physical environments\r\n \r\n Staff education and activities\r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {/* Why is workplace health promotion important? */}\r\n \r\n
    \r\n
    \r\n

    \r\n Why is workplace health promotion important?\r\n

    \r\n

    \r\n The World Health Organization recognises the workplace as a\r\n priority setting for health promotion.\r\n We spend a large proportion of our waking\r\n hours at work, so why not take advantage of this time to promote\r\n health and wellbeing?\r\n

    \r\n

    \r\n Workplace health promotion not only benefits workers by reducing\r\n their risk of chronic disease, but it’s also great for\r\n business.\r\n

    \r\n \r\n Click on the table headings to see some of the benefits for\r\n organisations and employees.\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {/* Risk Factors */}\r\n \r\n \r\n \r\n\r\n {/* Relevance of Industry */}\r\n \r\n
    \r\n

    \r\n Relevance for industry\r\n

    \r\n
    \r\n
    \r\n

    \r\n All organisations are different and come with their own\r\n individual health risks. Factors such as long hours, night shift\r\n and staff needing to stay seated during their shift can all\r\n contribute to unhealthy behaviours.\r\n

    \r\n

    \r\n When planning your workplace health and wellbeing program, it’s\r\n important to think about these workplace characteristics. It may\r\n not always be possible to change how your workplace is run, but\r\n strategies could be implemented to improve healthy choices.\r\n

    \r\n
    \r\n
    \r\n
    How your business can help:
    \r\n
      \r\n
    • \r\n Consult with staff to understand their wants, needs and\r\n potential barriers\r\n
    • \r\n
    • Introduce healthy policies
    • \r\n
    • \r\n Ensure the work environment supports and encourages healthy\r\n choices\r\n
    • \r\n
    • Provide education and activities around health issues
    • \r\n
    \r\n

    \r\n For example, on-the-road workers may have limited access to\r\n healthy food. This could be addressed through policy and\r\n environment by ensuring a cooler bag is provided. This coupled\r\n with healthy eating education may encourage workers to bring\r\n healthy foods from home.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {/* Role of management and gaining their support */}\r\n \r\n \r\n \r\n\r\n {/* Building you business case */}\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-business-case-for-workplace-health.pdf\",\r\n type: \"document\",\r\n title: \"Business case for workplace health & wellbeing\",\r\n },\r\n ];\r\n }, [])}\r\n ref={section7Ref}\r\n className=\"row section-arrows mb-5\"\r\n >\r\n
    \r\n
    \r\n

    \r\n Building your business case\r\n

    \r\n
    \r\n
    \r\n

    \r\n What goes into your business case will depend on:\r\n

    \r\n
      \r\n
    • \r\n Any existing business case processes in your workplace\r\n
    • \r\n
    • The needs of your workplace
    • \r\n
    • The size of your planned initiatives
    • \r\n
    \r\n

    \r\n You may need to speak with your manager to help you decide on\r\n the best approach, and identify existing resources to help\r\n you.\r\n

    \r\n
    \r\n
    \r\n

    \r\n The advantage of preparing a business case for management is\r\n that it forces you to thoroughly think about your program:\r\n

    \r\n
      \r\n
    • What you intend to do and why
    • \r\n
    • What you need to make it successful
    • \r\n
    • How you will go about managing it
    • \r\n
    \r\n

    \r\n A successful business case would consist of answers to the\r\n following questions.\r\n

    \r\n
    \r\n
    \r\n

    \r\n Click the symbols below to reveal more information.\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {/* Putting it into practice */}\r\n \r\n
    \r\n

    \r\n Putting it into practice\r\n

    \r\n

    \r\n Policy, environment, and education and activities are integral to\r\n your health and wellbeing program. The combination of all three can\r\n result in a program that is comprehensive and successful.\r\n Implementing one without the other can lead to mixed messages and\r\n therefore result in limited behaviour change.\r\n

    \r\n\r\n

    \r\n Click the symbols below to reveal more information.\r\n

    \r\n \r\n
    \r\n \r\n\r\n \r\n
    \r\n

    \r\n Workplace health programs in action\r\n

    \r\n
    \r\n \r\n
    \r\n

    \r\n See how Steel Blue implemented their workplace health program to\r\n create a positive work culture, and how it has supported their\r\n employees to get healthier.\r\n

    \r\n
    \r\n \r\n\r\n \r\n {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n completedModules: Array.from(\r\n { length: user.currentModule },\r\n (v, i) => i + 1,\r\n ).join(\",\"),\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n onNextClick={(e) => {\r\n e.preventDefault();\r\n scrollToTop();\r\n nextModule();\r\n }}\r\n onFail={() => {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n />\r\n \r\n\r\n \r\n
    \r\n );\r\n};\r\n\r\nconst StyledList = styled.ol`\r\n list-style: none;\r\n counter-reset: count;\r\n padding: 0;\r\n`;\r\n\r\nconst StyledListItem = styled.li`\r\n counter-increment: count;\r\n ::before {\r\n content: counter(count) \". \";\r\n font-family: FeltTipRoman, Chalkboard, Marker Felt, cursive;\r\n color: ${(p) => p.theme.warning};\r\n padding-right: 0.5rem;\r\n }\r\n`;\r\n","import React, { useRef } from \"react\";\r\n\r\nimport {\r\n MotivateEngage,\r\n StickyMessage,\r\n StagesOfChange,\r\n ProgramPromotion,\r\n ModuleQuizForm,\r\n ModuleHeader,\r\n ModuleSection,\r\n ModuleProvider,\r\n useModuleState,\r\n ModuleFooter,\r\n Tooltips,\r\n} from \"../../components\";\r\n\r\nimport warehouseMan from \"../../assets/gfx/04_warehouse-man.jpg\";\r\nimport {\r\n useAppContextMethods,\r\n useGlobalUserMethods,\r\n useGlobalUserState,\r\n} from \"~/state\";\r\nimport { upsertHealthyWorkplace } from \"~/util\";\r\n\r\ninterface ModuleProps {}\r\n\r\nexport const Module2: React.FC = ({}) => {\r\n const { nextModule } = useGlobalUserMethods();\r\n const user = useGlobalUserState();\r\n const [state, setState, { handleSectionChange }] = useModuleState();\r\n\r\n const { scrollToTop } = useAppContextMethods();\r\n\r\n const headerRef = useRef(null);\r\n\r\n const section1Ref = useRef(null);\r\n const section2Ref = useRef(null);\r\n const section3Ref = useRef(null);\r\n const section4Ref = useRef(null);\r\n const section5Ref = useRef(null);\r\n const section6Ref = useRef(null);\r\n const section7Ref = useRef(null);\r\n\r\n const QUIZ_2 = [\r\n {\r\n question:\r\n \"Which of the following strategies would NOT be suitable for employees in pre-contemplation and contemplation stages?\",\r\n options: [\r\n \"Raising awareness about the benefits of breaking up sitting time\",\r\n \"Self-monitoring activities such as pedometer wearing to raise awareness of current behaviour\",\r\n \"Healthy policies\",\r\n \"Supportive environmental changes\",\r\n \"Activities such as a circuit class or Pilates classes\",\r\n ],\r\n answer: [4],\r\n related: section5Ref.current,\r\n },\r\n {\r\n question:\r\n \"What are the five stages of the behaviour change in the 'Stages of Change' model?\",\r\n options: [\r\n \"Pre-contemplation, contemplation, preparation, action and maintenance\",\r\n \"Denial, understanding, accepting, acting and moving forward\",\r\n \"Disbelief, reasoning, confronting, progressing and maintaining\",\r\n ],\r\n answer: [0],\r\n related: section5Ref.current,\r\n },\r\n {\r\n question: \"Which of the following is NOT a sticky message?\",\r\n options: [\r\n \"A story from an employee about their quit smoking journey and how it has changed their life for the better\",\r\n \"Did you know that there are nine teaspoons of sugar in one 600 mL bottle of sports drink?\",\r\n \"Physical activity is good for health\",\r\n \"Did you know that using public transport can boost your physical activity levels by around 15 minutes each day?\",\r\n ],\r\n answer: [2],\r\n related: section3Ref.current,\r\n },\r\n {\r\n question:\r\n \"From the following, select four (4) strategies that you could use to engage staff in your program.\",\r\n options: [\r\n \"Make sure all health messages used to engage staff are 'sticky'\",\r\n \"Use motivating factors such as weight loss, better sleep and being a good role model for children\",\r\n \"Use strategies that will assist employees in all five stages of change\",\r\n \"Consult with employees on what they think would help their health at work\",\r\n \"Only use strategies that will target staff who are already active\",\r\n ],\r\n answer: [0, 1, 2, 3],\r\n related: section3Ref.current,\r\n },\r\n {\r\n question:\r\n \"Which of the following are credible sources of information? You can select more than one answer!\",\r\n options: [\r\n \"Nutrition information from anyone who does NOT have a university degree in nutrition (e.g. a personal trainer)\",\r\n \"Research and statistics from a public health organisation\",\r\n \"Exercise information from an exercise physiologist\",\r\n \"Recipes from an online blog\",\r\n \"Nutrition information from a dietitian\",\r\n ],\r\n answer: [1, 2, 4],\r\n related: section3Ref.current,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n
    \r\n

    Motivating staff to be healthy

    \r\n
    \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"mb-4\"\r\n ref={section2Ref}\r\n >\r\n
    \r\n
    \r\n

    \r\n Ways to motivate and engage your staff\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {\r\n return [\r\n {\r\n href: \"/SugaryDrinks/Calculator\",\r\n title:\r\n \"LiveLighter's sugary drinks calculator - great if you're looking at healthy eating\",\r\n type: \"link\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"module2__bg1 section-arrows\"\r\n ref={section3Ref}\r\n fluid\r\n >\r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n

    \r\n USING WORKPLACE HEALTH PROMOTION TO CREATE BEHAVIOUR CHANGE\r\n

    \r\n \r\n \r\n

    \r\n With the right strategies your workplace health and wellbeing\r\n program can positively influence all staff, including those who\r\n may appear disinterested at the start. Strategies such as\r\n healthy policies and supportive workplace environments can\r\n influence staff to change their behaviour.\r\n

    \r\n

    \r\n There are numerous scientific models which describe how\r\n behaviour change occurs. One that is particularly useful for\r\n workplaces is called the “stages of change” model\r\n which describes the five stages an employee\r\n might go through when converting an unhealthy behaviour into a\r\n healthier behaviour.\r\n

    \r\n

    \r\n It’s likely that you will have employees within each of the five\r\n stages, therefore it’s important that a range of strategies are\r\n developed that cater to the different stages. The challenge is\r\n to identify strategies that will target and engage those in the\r\n earlier stages (pre-contemplation and contemplation) as these\r\n employees are usually the hardest to engage.\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-best-practice-guide.pdf\",\r\n title:\r\n \"Best practice guide: Workplace health and wellbeing strategies\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"module2__bg2 section-arrows\"\r\n ref={section5Ref}\r\n fluid\r\n >\r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n completedModules: Array.from(\r\n { length: user.currentModule },\r\n (v, i) => i + 1,\r\n ).join(\",\"),\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n onNextClick={(e) => {\r\n e.preventDefault();\r\n scrollToTop();\r\n nextModule();\r\n }}\r\n onFail={() => {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n />\r\n \r\n\r\n \r\n
    \r\n );\r\n};\r\n","import React, { useRef } from \"react\";\r\n\r\nimport { WorkEnvironment } from \"~/components/WorkEnvironment\";\r\nimport {\r\n useAppContextMethods,\r\n useGlobalUserMethods,\r\n useGlobalUserState,\r\n} from \"~/state\";\r\nimport { upsertHealthyWorkplace } from \"~/util\";\r\n\r\nimport writingImg from \"../../assets/gfx/03_writing.jpg\";\r\n\r\nimport {\r\n ModuleHeader,\r\n SettingFoundation,\r\n EducationActivities,\r\n BestPractice,\r\n ModuleQuizForm,\r\n useModuleState,\r\n ModuleSection,\r\n ModuleProvider,\r\n ModuleFooter,\r\n} from \"../../components\";\r\n\r\ninterface ModuleProps {}\r\n\r\nexport const Module3: React.FC = ({}) => {\r\n const { nextModule } = useGlobalUserMethods();\r\n const user = useGlobalUserState();\r\n const [state, setState, { handleSectionChange }] = useModuleState();\r\n\r\n const { scrollToTop } = useAppContextMethods();\r\n\r\n const headerRef = useRef(null);\r\n const section1Ref = useRef(null);\r\n const section2Ref = useRef(null);\r\n const section3Ref = useRef(null);\r\n const section4Ref = useRef(null);\r\n const section5Ref = useRef(null);\r\n const section6Ref = useRef(null);\r\n const section7Ref = useRef(null);\r\n const section8Ref = useRef(null);\r\n\r\n const QUIZ_3 = [\r\n {\r\n question:\r\n \"What elements produce a successful health and wellbeing program? You can select more than one answer!\",\r\n options: [\"Policy\", \"Environment\", \"Education & activities\"],\r\n answer: [0, 1, 2],\r\n related: section2Ref.current,\r\n },\r\n {\r\n question: \"A health policy is:\",\r\n options: [\r\n \"A workplace health and wellbeing program\",\r\n \"A written document formalising an organisation’s commitment to workplace health and wellbeing\",\r\n \"The same as an occupational health and safety policy\",\r\n ],\r\n answer: [1],\r\n related: section4Ref.current,\r\n },\r\n {\r\n question: \"Supportive workplace environments:\",\r\n options: [\r\n \"Include the external surrounding parks, reserves, cafes and shopping centres\",\r\n \"Include the internal infrastructure and facilities provided to staff and encourages healthy behaviours by providing the opportunity to make healthy choices\",\r\n ],\r\n answer: [1],\r\n related: section5Ref.current,\r\n },\r\n {\r\n question:\r\n \"Health and wellbeing education and activities (you can select more than one answer!):\",\r\n options: [\r\n \"Provides employees with health knowledge and opportunities to participate in healthy behaviours\",\r\n \"Are sufficient for a comprehensive health and wellbeing policy\",\r\n \"Should be considered once health policy and supportive environments are in place, to help build a healthy culture\",\r\n ],\r\n answer: [0, 2],\r\n related: section6Ref.current,\r\n },\r\n {\r\n question:\r\n \"If you were targeting unhealthy eating and drinking in the workplace, which statement would best reflect a combination of strategies addressing policy, environment and education and activities?\",\r\n options: [\r\n \"Providing healthy eating education sessions and coordinating a recipe club\",\r\n \"Implementing a healthy eating policy and providing healthy morning teas\",\r\n \"Ensuring kitchen and lunch room facilities are well equipped and implementing a healthy catering policy\",\r\n \"Ensuring kitchen and lunch room facilities are well equipped, implementing a healthy catering policy, providing healthy eating educational sessions to staff and coordinating a recipe club\",\r\n ],\r\n answer: [3],\r\n related: section2Ref.current,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n
    \r\n

    Best practice workplace health promotion

    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n

    \r\n What are the keys to success?\r\n

    \r\n
    \r\n

    \r\n When planning your workplace health and wellbeing program, we\r\n recommend including strategies from across each of these three\r\n areas:\r\n

    \r\n

    \r\n Health policies Workplace\r\n environment Health\r\n education and activities\r\n

    \r\n

    \r\n Let’s take unhealthy eating as an example. Providing healthy\r\n eating education and information to staff may be ineffective if\r\n the workplace provides unhealthy catering at meetings and\r\n events. Introducing a healthy catering policy will ensure the\r\n healthy eating information and messages are consistent. The\r\n triangle below depicts the impact each of the elements has on\r\n changing behaviour, with policy having the largest impact.\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n

    \r\n Policy, environment and culture\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n Professor Fiona Bull explains how policy, environment and\r\n culture can be used in a workplace health program to support\r\n behaviour change.\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-creating-a-workplace-health-policy.docx\",\r\n title: \"Creating a health and wellbeing policy template\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"mb-4\"\r\n ref={section5Ref}\r\n >\r\n
    \r\n
    \r\n

    \r\n Setting the foundation\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"module3__bg5 section-arrows mb-4\"\r\n ref={section6Ref}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n

    \r\n Education & Activities\r\n

    \r\n \r\n

    \r\n Once your policy is in place and the workplace environment is\r\n supportive of healthy behaviours, education and activities will\r\n help to build a healthy workplace culture by engaging staff\r\n directly in the program.\r\n

    \r\n

    \r\n Education provides employees with health knowledge, allowing\r\n them the opportunity to identify where they could make\r\n improvements in order to lead a healthier lifestyle and reduce\r\n their risk of chronic disease.\r\n

    \r\n

    \r\n Activities allow employees to actually participate in healthy\r\n behaviours. This provides them with an opportunity to learn new\r\n healthy living skills and can provide a kick start to forming a\r\n new healthy habit.\r\n

    \r\n

    \r\n For example, a cooking class could teach employees about healthy\r\n cooking as well as practice in preparing healthy meals. Also, a\r\n workplace exercise program could encourage employees to continue\r\n regular exercise, once the program has completed.\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-best-practice-guide.pdf\",\r\n title:\r\n \"Best practice guide: workplace health and wellbeing strategies\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"mb-4\"\r\n ref={section7Ref}\r\n >\r\n

    \r\n Best practice\r\n

    \r\n \r\n \r\n\r\n \r\n {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n completedModules: Array.from(\r\n { length: user.currentModule },\r\n (v, i) => i + 1,\r\n ).join(\",\"),\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n onNextClick={(e) => {\r\n e.preventDefault();\r\n scrollToTop();\r\n nextModule();\r\n }}\r\n onFail={() => {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n />\r\n \r\n \r\n
    \r\n );\r\n};\r\n","import React, { useRef } from \"react\";\r\n\r\nimport {\r\n ConsultationQuestions,\r\n ModuleHeader,\r\n ModuleProvider,\r\n ModuleSection,\r\n ModuleQuizForm,\r\n StepsToAssess,\r\n WorkplaceAssessment,\r\n SmartObjectives,\r\n ActionPlan,\r\n ModuleFooter,\r\n useModuleState,\r\n} from \"../../components\";\r\nimport {\r\n useAppContextMethods,\r\n useGlobalUserMethods,\r\n useGlobalUserState,\r\n} from \"~/state\";\r\n\r\nimport ladyAtWork from \"../../assets/gfx/04_work.jpg\";\r\nimport { upsertHealthyWorkplace } from \"~/util\";\r\n\r\ninterface ModuleProps {}\r\n\r\nexport const Module4: React.FC = ({}) => {\r\n const { finish } = useGlobalUserMethods();\r\n const user = useGlobalUserState();\r\n const [state, setState, { handleSectionChange }] = useModuleState();\r\n\r\n const { scrollToTop } = useAppContextMethods();\r\n\r\n const headerRef = useRef(null);\r\n const section1Ref = useRef(null);\r\n const section2Ref = useRef(null);\r\n const section3Ref = useRef(null);\r\n const section4Ref = useRef(null);\r\n const section5Ref = useRef(null);\r\n const section6Ref = useRef(null);\r\n const section7Ref = useRef(null);\r\n const section8Ref = useRef(null);\r\n const section9Ref = useRef(null);\r\n\r\n const QUIZ_4 = [\r\n {\r\n question: \"A workplace health and wellbeing program involves:\",\r\n options: [\r\n \"Workplace assessment, staff consultation, developing an action plan and evaluation\",\r\n \"Workplace assessment, staff consultation and developing an action plan\",\r\n \"Consultation, workplace assessment and pre-evaluation\",\r\n ],\r\n answer: [0],\r\n related: section1Ref.current,\r\n },\r\n {\r\n question: \"The best way to consult with staff is:\",\r\n options: [\r\n \"Through a range of consultation methods (e.g. surveys, focus groups, face-to-face conversations etc.) to include as many staff as possible.\",\r\n \"Only through a paper-based survey distributed and collected at a compulsory meeting.\",\r\n \"Only through recruiting workplace health champions to help collect staff thoughts.\",\r\n \"Only through face-to-face conversations and focus groups.\",\r\n ],\r\n answer: [0],\r\n related: section4Ref.current,\r\n },\r\n {\r\n question:\r\n \"It’s important to plan for evaluation at the beginning because (you can select more than one answer!):\",\r\n options: [\r\n \"It determines baseline data which you can use to identify if your program was successful once strategies are complete\",\r\n \"It allows you identify what strategies were unsuccessful\",\r\n \"It allows you to identify barriers that are impacting on the success of the program\",\r\n \"It allows you to demonstrate program success to management once strategies are complete, increasing the chance of ongoing support\",\r\n ],\r\n answer: [0, 1, 2, 3],\r\n related: section8Ref.current,\r\n },\r\n {\r\n question:\r\n \"It’s important to develop SMART objectives. What does SMART stand for?\",\r\n options: [\r\n \"Simple, Measurable, Accurate, Realistic, Time bound\",\r\n \"Specific, Maintainable, Achievable, Relevant, Timely\",\r\n \"Specific, Measurable, Achievable, Relevant, Time bound\",\r\n \"Safe, Manageable, Achievable, Realistic, Tangible\",\r\n ],\r\n answer: [2],\r\n related: section6Ref.current,\r\n },\r\n {\r\n question:\r\n \"Why is it important to use several methods of consultation? You can select more than one answer!\",\r\n options: [\r\n \"You have a better chance of engaging with hard to reach workers\",\r\n \"Some methods may not be appropriate for certain groups of workers\",\r\n \"To give workers an opportunity to respond more than once in order to get what they want\",\r\n \"You’ll achieve a higher response rate overall\",\r\n \"You’re more likely to obtain answers that represent your entire workforce\",\r\n ],\r\n answer: [0, 1, 3, 4],\r\n related: section4Ref.current,\r\n },\r\n ];\r\n\r\n return (\r\n {\r\n console.log(section);\r\n setState((prev) => ({\r\n ...prev,\r\n currentSectionTitle: section!.sectionTitle,\r\n currentSection: section!.sectionNumber,\r\n currentSectionData: section!.sectionData,\r\n }));\r\n }}\r\n >\r\n \r\n\r\n \r\n
    \r\n

    Planning your program

    \r\n
    \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n

    \r\n Steps to assessing your workplace\r\n

    \r\n \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"mb-4\"\r\n ref={section4Ref}\r\n >\r\n
    \r\n
    \r\n

    \r\n Effective staff consultation\r\n

    \r\n
    \r\n \r\n
    \r\n

    \r\n Staff consultation not only helps you to understand employee\r\n wants, needs and barriers, but is also a great engagement tool.\r\n You may need to manage employee expectations during consultation,\r\n as the workplace may not be able to deliver on all requests.\r\n Before you start consulting, there are three decision to make:\r\n

    \r\n
    \r\n
    \r\n Decide how you will consult\r\n

    \r\n Think about how you are going to collect results. Here are\r\n some methods of consultation you could use:\r\n

    \r\n
      \r\n
    • \r\n

      Online surveys are great for computer-based staff.

      \r\n
    • \r\n
    • \r\n

      \r\n Paper-based surveys given out to staff or left in high\r\n traffic areas.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Face-to-face chats or informal discussions with staff\r\n members.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Focus groups including staff from different departments or\r\n locations.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Using existing groups or committees as a focus group (e.g.\r\n social club).\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Using natural leaders or enthusiastic staff members within\r\n your workplace to help gather feedback.\r\n

      \r\n
    • \r\n
    \r\n

    \r\n Using a number of different collection methods will help you\r\n collect the information you need. Offering healthy incentives\r\n for staff to participate in consultation might result in\r\n better response rates.\r\n

    \r\n
    \r\n
    \r\n Decide who to talk to\r\n

    \r\n Determine how many and which staff members you wish to consult\r\n with – do you want to speak to your entire workforce, or just\r\n a specific group? If you have a large workplace, look at\r\n consulting with a high risk group. You could even use this\r\n group to test out your strategies.\r\n

    \r\n Decide what you’re going to ask\r\n

    \r\n What is it that you will be asking them? Think about the\r\n information you are aiming to gather and ensure your\r\n consultation covers the following:\r\n

    \r\n
      \r\n
    • \r\n

      Strategies employees would like to see implemented.

      \r\n
    • \r\n
    • \r\n

      \r\n Current behaviours, awareness levels and attitudes around\r\n behavioural risk factors.\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Current barriers to undertaking healthy lifestyle\r\n behaviours.\r\n

      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"module4__bg5 section-arrows mb-4\"\r\n fluid\r\n ref={section5Ref}\r\n >\r\n
    \r\n
    \r\n
    \r\n

    \r\n Example consultation questions\r\n

    \r\n

    \r\n The following provides some example questions that can be used\r\n for consultation purposes. The questions are grouped by health\r\n risk factor, and can be used to measure awareness levels,\r\n attitudes and behaviours. You may like to utilise questions such\r\n as these to measure baseline levels or track changes that occur\r\n over time.\r\n

    \r\n

    \r\n The list below contains sample questions, but is not exhaustive.\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n

    \r\n Creating SMART Objectives\r\n

    \r\n \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"mb-4\"\r\n ref={section7Ref}\r\n >\r\n
    \r\n
    \r\n

    \r\n Creating a workplace health promotion action plan\r\n

    \r\n

    \r\n Once you have decided on the priorities for your workplace, an\r\n action plan will allow you to describe what you want to achieve\r\n and the steps you will take to do this. You can use your action\r\n plan to keep track of your program’s progress and successes. Below\r\n are the essential components of an action plan that will help to\r\n keep your program on track. Click on each to reveal more\r\n information:\r\n

    \r\n \r\n
    \r\n
    \r\n \r\n\r\n {\r\n return [\r\n {\r\n href:\r\n \"https://cdn.livelighter.com.au/assets/resource/workplace/2021-07-toolkit-for-a-healthier-workplace.pdf\",\r\n title: \"Toolkit for a healthier workplace\",\r\n type: \"document\",\r\n },\r\n ];\r\n }, [])}\r\n className=\"module4__bg8 section-arrows mb-4\"\r\n fluid\r\n ref={section8Ref}\r\n >\r\n
    \r\n

    Evaluation

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    \r\n Watch as Melanie Pescud from the University of WA takes us\r\n through the process of evaluating a workplace health and\r\n wellbeing program and why it's so important to get it right from\r\n the start.\r\n

    \r\n
    \r\n
    \r\n

    \r\n Evaluation enables you to determine a number of things\r\n regarding your program, for example:\r\n

    \r\n
      \r\n
    • \r\n

      Have you achieved your objectives?

      \r\n
    • \r\n
    • \r\n

      \r\n Strengths of your program (i.e. what helped you to\r\n succeed?)\r\n

      \r\n
    • \r\n
    • \r\n

      \r\n Barriers to success (i.e. what hindered the achievement\r\n of objectives)\r\n

      \r\n
    • \r\n
    • \r\n

      Improvements that can be made

      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n

    \r\n It also allows you to demonstrate success to management,\r\n increasing your chances of ongoing support. Evaluation can\r\n be simple or detailed, depending on your organisation’s\r\n needs. It’s important to plan for evaluation at the\r\n beginning, prior to developing and implementing your action\r\n plan. This is so you are able to effectively measure whether\r\n or not your program has made a difference to the health of\r\n your workforce.\r\n

    \r\n

    \r\n Now for the good news, once you’ve completed your\r\n consultation, you have probably got most of the information\r\n needed for your evaluation. If not, you can just add a few\r\n questions in addition to your consultation questions.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n completedModules: Array.from(\r\n { length: user.currentModule },\r\n (v, i) => i + 1,\r\n ).join(\",\"),\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n onNextClick={(e) => {\r\n e.preventDefault();\r\n scrollToTop();\r\n finish();\r\n }}\r\n onFail={() => {\r\n upsertHealthyWorkplace({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n email: user.email,\r\n dateLastUsed: Date.now(),\r\n }).catch((err) => console.log);\r\n }}\r\n nextText=\"Complete program\"\r\n />\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgPin(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 0C161.896 0 85.333 76.563 85.333 170.667c0 28.25 7.063 56.26 20.49 81.104L246.667 506.5c1.875 3.396 5.448 5.5 9.333 5.5s7.458-2.104 9.333-5.5l140.896-254.813c13.375-24.76 20.438-52.771 20.438-81.021C426.667 76.563 350.104 0 256 0zm0 256c-47.052 0-85.333-38.281-85.333-85.333S208.948 85.334 256 85.334s85.333 38.281 85.333 85.333S303.052 256 256 256z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiDQoJeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0yNTYsMEMxNjEuODk2LDAsODUuMzMzLDc2LjU2Myw4NS4zMzMsMTcwLjY2N2MwLDI4LjI1LDcuMDYzLDU2LjI2LDIwLjQ5LDgxLjEwNEwyNDYuNjY3LDUwNi41DQoJCQljMS44NzUsMy4zOTYsNS40NDgsNS41LDkuMzMzLDUuNXM3LjQ1OC0yLjEwNCw5LjMzMy01LjVsMTQwLjg5Ni0yNTQuODEzYzEzLjM3NS0yNC43NiwyMC40MzgtNTIuNzcxLDIwLjQzOC04MS4wMjENCgkJCUM0MjYuNjY3LDc2LjU2MywzNTAuMTA0LDAsMjU2LDB6IE0yNTYsMjU2Yy00Ny4wNTIsMC04NS4zMzMtMzguMjgxLTg1LjMzMy04NS4zMzNjMC00Ny4wNTIsMzguMjgxLTg1LjMzMyw4NS4zMzMtODUuMzMzDQoJCQlzODUuMzMzLDM4LjI4MSw4NS4zMzMsODUuMzMzQzM0MS4zMzMsMjE3LjcxOSwzMDMuMDUyLDI1NiwyNTYsMjU2eiIgLz4NCgkJPC9nPg0KCTwvZz4NCjwvc3ZnPg0KDQo8IS0tIE5lZWRzIGF0dHJpYnV0aW9uDQo8ZGl2Pkljb25zIG1hZGUgYnkgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmxhdGljb24uY29tL2F1dGhvcnMvdGhvc2UtaWNvbnMiIHRpdGxlPSJUaG9zZSBJY29ucyI+VGhvc2UgSWNvbnM8L2E+IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmxhdGljb24uY29tLyIgdGl0bGU9IkZsYXRpY29uIj53d3cuZmxhdGljb24uY29tPC9hPjwvZGl2PiAtLT4=\";\nexport { SvgPin as ReactComponent };","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport module1Img from \"../assets/gfx/module1-bg1.jpg\";\r\nimport module2Img from \"../assets/gfx/module-2-image.jpg\";\r\nimport module3Img from \"../assets/gfx/module-3-image.jpg\";\r\nimport module4Img from \"../assets/gfx/module-4-image.jpg\";\r\nimport doneImg from \"../assets/gfx/done-image.jpg\";\r\nimport trophy from \"../assets/svg/trophy-gold.svg\";\r\n\r\nimport bikeImg from \"../assets/gfx/bike-in-the-office.jpg\";\r\nimport rightArrow from \"../assets/svg/rightArrow.svg\";\r\nimport clock from \"../assets/svg/clock.svg\";\r\nimport { useAppContextMethods, useGlobalUserMethods } from \"~/state\";\r\n\r\ninterface Data {\r\n imgSrc: string;\r\n title: string;\r\n body: JSX.Element;\r\n showFooter: boolean;\r\n}\r\n\r\nconst data: Data[] = [\r\n {\r\n imgSrc: module1Img,\r\n title: \"Module 1\",\r\n body:

    Introduction to workplace health

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: module2Img,\r\n title: \"Module 2\",\r\n body:

    Motivating staff to be healthy

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: module3Img,\r\n title: \"Module 3\",\r\n body:

    Best practice workplace health promotion

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: module4Img,\r\n title: \"Module 4\",\r\n body:

    Planning your program

    ,\r\n showFooter: true,\r\n },\r\n {\r\n imgSrc: doneImg,\r\n title: \"DONE!\",\r\n body: (\r\n <>\r\n

    Receive a certificate of completion

    \r\n \r\n \r\n ),\r\n showFooter: false,\r\n },\r\n];\r\n\r\ninterface StartProps {}\r\n\r\nexport const Start: React.FC = () => {\r\n const { scrollToTop } = useAppContextMethods();\r\n const { goToRegistration } = useGlobalUserMethods();\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n Workplace Health\r\n

    \r\n Welcome to the Workplace Health Coordinator Training!\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n

    \r\n This course will give you the knowledge and skills to develop an\r\n effective workplace health and wellbeing program\r\n

    \r\n
    \r\n {data.map(({ imgSrc, title, body, showFooter }, idx) => (\r\n \r\n {`${title}\r\n
    \r\n

    {title}

    \r\n {body}\r\n
    \r\n {showFooter && (\r\n \r\n \"clock\"\r\n 20 mins\r\n
    \r\n )}\r\n \r\n ))}\r\n \r\n\r\n

    \r\n You can pause the training at any time. When you want to stop, save the\r\n web address and return to the same browser anytime to resume (cookies\r\n and javascript must be enabled).\r\n

    \r\n {\r\n e.preventDefault();\r\n scrollToTop();\r\n goToRegistration();\r\n }}\r\n className=\"d-block btn btn-lg btn-info mx-auto mb-4\"\r\n type=\"button\"\r\n >\r\n Click here to get started\r\n \r\n
    \r\n );\r\n};\r\n\r\nconst FullPage = styled.div`\r\n margin: 0 -2rem 2rem;\r\n`;\r\n\r\nconst PageHeader = styled.section`\r\n background-image: url(${bikeImg});\r\n background-size: cover;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n margin-bottom: 1.5rem;\r\n`;\r\n\r\nconst PageTitle = styled.h1`\r\n font-size: 3em;\r\n margin-bottom: 1.5rem;\r\n`;\r\n\r\nconst ModuleCard = styled.div<{ active: boolean }>`\r\n margin: 0 2rem;\r\n border: ${(p) => p.active && `2px solid ${p.theme.gold}`};\r\n\r\n h4 {\r\n color: ${(p) => p.active && p.theme.warning};\r\n }\r\n\r\n &:not(:last-of-type)::after {\r\n content: \"\";\r\n position: absolute;\r\n padding: 0.75rem;\r\n top: calc(50% - 0.75rem);\r\n right: calc(-1rem - 0.75rem);\r\n width: 1.5rem;\r\n height: 1.5rem;\r\n background-image: url(${rightArrow});\r\n background-size: 45%;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n background-color: ${(p) => p.theme.info};\r\n border-radius: 50%;\r\n }\r\n`;\r\n","var _path, _path2;\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\nimport * as React from \"react\";\n\nfunction SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 477.867 477.867\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M460.8 68.267H17.067l221.867 182.75L463.309 68.779c-.821-.24-1.66-.411-2.509-.512z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M249.702 286.31a17.065 17.065 0 01-21.623 0L0 98.406v294.127c0 9.426 7.641 17.067 17.067 17.067H460.8c9.426 0 17.067-7.641 17.067-17.067V100.932L249.702 286.31z\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PD94bWwgIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiDQoJeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDc3Ljg2NyA0NzcuODY3IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0NzcuODY3IDQ3Ny44Njc7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBkPSJNNDYwLjgsNjguMjY3SDE3LjA2N2wyMjEuODY3LDE4Mi43NUw0NjMuMzA5LDY4Ljc3OUM0NjIuNDg4LDY4LjUzOSw0NjEuNjQ5LDY4LjM2OCw0NjAuOCw2OC4yNjd6IiAvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGQ9Ik0yNDkuNzAyLDI4Ni4zMWMtNi4yODgsNS4xNDktMTUuMzM1LDUuMTQ5LTIxLjYyMywwTDAsOTguNDA2djI5NC4xMjdjMCw5LjQyNiw3LjY0MSwxNy4wNjcsMTcuMDY3LDE3LjA2N0g0NjAuOA0KCQkJYzkuNDI2LDAsMTcuMDY3LTcuNjQxLDE3LjA2Ny0xNy4wNjdWMTAwLjkzMkwyNDkuNzAyLDI4Ni4zMXoiIC8+DQoJCTwvZz4NCgk8L2c+DQo8L3N2Zz4NCg0KPCEtLSBhdHRyaWJ1dGlvbiByZXF1aXJlZDoNCjxkaXY+SWNvbnMgbWFkZSBieSA8YSBocmVmPSJodHRwczovL3d3dy5mbGF0aWNvbi5jb20vYXV0aG9ycy9iZWNyaXMiIHRpdGxlPSJCZWNyaXMiPkJlY3JpczwvYT4gZnJvbSA8YSBocmVmPSJodHRwczovL3d3dy5mbGF0aWNvbi5jb20vIiB0aXRsZT0iRmxhdGljb24iPnd3dy5mbGF0aWNvbi5jb208L2E+PC9kaXY+IC0tPg==\";\nexport { SvgEmail as ReactComponent };","var _path;\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\nimport * as React from \"react\";\n\nfunction SvgUser(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"-42 0 512 512.002\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M210.352 246.633c33.882 0 63.222-12.153 87.195-36.13 23.973-23.972 36.125-53.304 36.125-87.19 0-33.876-12.152-63.211-36.129-87.192C273.566 12.152 244.23 0 210.352 0c-33.887 0-63.22 12.152-87.192 36.125s-36.129 53.309-36.129 87.188c0 33.886 12.156 63.222 36.133 87.195 23.977 23.969 53.313 36.125 87.188 36.125zm0 0M426.129 393.703c-.692-9.976-2.09-20.86-4.149-32.351-2.078-11.579-4.753-22.524-7.957-32.528-3.308-10.34-7.808-20.55-13.37-30.336-5.774-10.156-12.555-19-20.165-26.277-7.957-7.613-17.699-13.734-28.965-18.2-11.226-4.44-23.668-6.69-36.976-6.69-5.227 0-10.281 2.144-20.043 8.5a2711.03 2711.03 0 01-20.879 13.46c-6.707 4.274-15.793 8.278-27.016 11.903-10.949 3.543-22.066 5.34-33.039 5.34-10.972 0-22.086-1.797-33.047-5.34-11.21-3.622-20.296-7.625-26.996-11.899-7.77-4.965-14.8-9.496-20.898-13.469-9.75-6.355-14.809-8.5-20.035-8.5-13.313 0-25.75 2.254-36.973 6.7-11.258 4.457-21.004 10.578-28.969 18.199-7.605 7.281-14.39 16.12-20.156 26.273-5.558 9.785-10.058 19.992-13.371 30.34-3.2 10.004-5.875 20.945-7.953 32.524-2.059 11.476-3.457 22.363-4.149 32.363A438.821 438.821 0 000 423.949c0 26.727 8.496 48.363 25.25 64.32 16.547 15.747 38.441 23.735 65.066 23.735h246.532c26.625 0 48.511-7.984 65.062-23.734 16.758-15.946 25.254-37.586 25.254-64.325-.004-10.316-.351-20.492-1.035-30.242zm0 0\"\n })));\n}\n\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSItNDIgMCA1MTIgNTEyLjAwMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgICA8cGF0aA0KICAgICAgICBkPSJtMjEwLjM1MTU2MiAyNDYuNjMyODEyYzMzLjg4MjgxMyAwIDYzLjIyMjY1Ny0xMi4xNTIzNDMgODcuMTk1MzEzLTM2LjEyODkwNiAyMy45NzI2NTYtMjMuOTcyNjU2IDM2LjEyNS01My4zMDQ2ODcgMzYuMTI1LTg3LjE5MTQwNiAwLTMzLjg3NS0xMi4xNTIzNDQtNjMuMjEwOTM4LTM2LjEyODkwNi04Ny4xOTE0MDYtMjMuOTc2NTYzLTIzLjk2ODc1LTUzLjMxMjUtMzYuMTIxMDk0LTg3LjE5MTQwNy0zNi4xMjEwOTQtMzMuODg2NzE4IDAtNjMuMjE4NzUgMTIuMTUyMzQ0LTg3LjE5MTQwNiAzNi4xMjVzLTM2LjEyODkwNiA1My4zMDg1OTQtMzYuMTI4OTA2IDg3LjE4NzVjMCAzMy44ODY3MTkgMTIuMTU2MjUgNjMuMjIyNjU2IDM2LjEzMjgxMiA4Ny4xOTUzMTIgMjMuOTc2NTYzIDIzLjk2ODc1IDUzLjMxMjUgMzYuMTI1IDg3LjE4NzUgMzYuMTI1em0wIDAiIC8+DQogICAgPHBhdGgNCiAgICAgICAgZD0ibTQyNi4xMjg5MDYgMzkzLjcwMzEyNWMtLjY5MTQwNi05Ljk3NjU2My0yLjA4OTg0NC0yMC44NTkzNzUtNC4xNDg0MzctMzIuMzUxNTYzLTIuMDc4MTI1LTExLjU3ODEyNC00Ljc1MzkwNy0yMi41MjM0MzctNy45NTcwMzEtMzIuNTI3MzQzLTMuMzA4NTk0LTEwLjMzOTg0NC03LjgwODU5NC0yMC41NTA3ODEtMTMuMzcxMDk0LTMwLjMzNTkzOC01Ljc3MzQzOC0xMC4xNTYyNS0xMi41NTQ2ODgtMTktMjAuMTY0MDYzLTI2LjI3NzM0My03Ljk1NzAzMS03LjYxMzI4Mi0xNy42OTkyMTktMTMuNzM0Mzc2LTI4Ljk2NDg0My0xOC4xOTkyMTktMTEuMjI2NTYzLTQuNDQxNDA3LTIzLjY2Nzk2OS02LjY5MTQwNy0zNi45NzY1NjMtNi42OTE0MDctNS4yMjY1NjMgMC0xMC4yODEyNSAyLjE0NDUzMi0yMC4wNDI5NjkgOC41LTYuMDA3ODEyIDMuOTE3OTY5LTEzLjAzNTE1NiA4LjQ0OTIxOS0yMC44Nzg5MDYgMTMuNDYwOTM4LTYuNzA3MDMxIDQuMjczNDM4LTE1Ljc5Mjk2OSA4LjI3NzM0NC0yNy4wMTU2MjUgMTEuOTAyMzQ0LTEwLjk0OTIxOSAzLjU0Mjk2OC0yMi4wNjY0MDYgNS4zMzk4NDQtMzMuMDM5MDYzIDUuMzM5ODQ0LTEwLjk3MjY1NiAwLTIyLjA4NTkzNy0xLjc5Njg3Ni0zMy4wNDY4NzQtNS4zMzk4NDQtMTEuMjEwOTM4LTMuNjIxMDk0LTIwLjI5Njg3Ni03LjYyNS0yNi45OTYwOTQtMTEuODk4NDM4LTcuNzY5NTMyLTQuOTY0ODQ0LTE0LjgwMDc4Mi05LjQ5NjA5NC0yMC44OTg0MzgtMTMuNDY4NzUtOS43NS02LjM1NTQ2OC0xNC44MDg1OTQtOC41LTIwLjAzNTE1Ni04LjUtMTMuMzEyNSAwLTI1Ljc1IDIuMjUzOTA2LTM2Ljk3MjY1NiA2LjY5OTIxOS0xMS4yNTc4MTMgNC40NTcwMzEtMjEuMDAzOTA2IDEwLjU3ODEyNS0yOC45Njg3NSAxOC4xOTkyMTktNy42MDU0NjkgNy4yODEyNS0xNC4zOTA2MjUgMTYuMTIxMDk0LTIwLjE1NjI1IDI2LjI3MzQzNy01LjU1ODU5NCA5Ljc4NTE1Ny0xMC4wNTg1OTQgMTkuOTkyMTg4LTEzLjM3MTA5NCAzMC4zMzk4NDQtMy4xOTkyMTkgMTAuMDAzOTA2LTUuODc1IDIwLjk0NTMxMy03Ljk1MzEyNSAzMi41MjM0MzctMi4wNTg1OTQgMTEuNDc2NTYzLTMuNDU3MDMxIDIyLjM2MzI4Mi00LjE0ODQzNyAzMi4zNjMyODItLjY3OTY4OCA5Ljc5Njg3NS0xLjAyMzQzOCAxOS45NjQ4NDQtMS4wMjM0MzggMzAuMjM0Mzc1IDAgMjYuNzI2NTYyIDguNDk2MDk0IDQ4LjM2MzI4MSAyNS4yNSA2NC4zMjAzMTIgMTYuNTQ2ODc1IDE1Ljc0NjA5NCAzOC40NDE0MDYgMjMuNzM0Mzc1IDY1LjA2NjQwNiAyMy43MzQzNzVoMjQ2LjUzMTI1YzI2LjYyNSAwIDQ4LjUxMTcxOS03Ljk4NDM3NSA2NS4wNjI1LTIzLjczNDM3NSAxNi43NTc4MTMtMTUuOTQ1MzEyIDI1LjI1MzkwNi0zNy41ODU5MzcgMjUuMjUzOTA2LTY0LjMyNDIxOS0uMDAzOTA2LTEwLjMxNjQwNi0uMzUxNTYyLTIwLjQ5MjE4Ny0xLjAzNTE1Ni0zMC4yNDIxODd6bTAgMCIgLz4NCiAgICA8L3N2Zz4NCg0KPCEtLSBhdHRyaWJ1dGlvbiByZXF1aXJlZA0KPGRpdj5JY29ucyBtYWRlIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmZyZWVwaWsuY29tIiB0aXRsZT0iRnJlZXBpayI+RnJlZXBpazwvYT4gZnJvbSA8YSBocmVmPSJodHRwczovL3d3dy5mbGF0aWNvbi5jb20vIiB0aXRsZT0iRmxhdGljb24iPnd3dy5mbGF0aWNvbi5jb208L2E+PC9kaXY+IC0tPg==\";\nexport { SvgUser as ReactComponent };","import React from \"react\";\r\n\r\nimport { ReactComponent as PinIconSvg } from \"../assets/svg/pin.svg\";\r\nimport { ReactComponent as EmailIconSvg } from \"../assets/svg/email.svg\";\r\nimport { ReactComponent as UserIconSvg } from \"../assets/svg/user.svg\";\r\n\r\nimport { useAppContextMethods, useGlobalUser } from \"../state\";\r\n\r\nimport * as Yup from \"yup\";\r\nimport { useForm } from \"react-yup\";\r\n\r\nimport cx from \"classnames\";\r\n\r\nimport { IconField, Checkbox, Radio, ValidationError } from \"~/ui\";\r\n\r\nimport { STATE_LIST } from \"~/constants\";\r\nimport { subscribeNewsletter, upsertHealthyWorkplace } from \"~/util\";\r\n\r\nconst SCHEMA = Yup.object({\r\n firstName: Yup.string().required(\"First name is required\"),\r\n lastName: Yup.string().required(\"Last name is required\"),\r\n email: Yup.string().email().required(\"Email is required\"),\r\n confirmEmail: Yup.string()\r\n .oneOf([Yup.ref(\"email\")], \"Please enter the same email\")\r\n .required(\"Please enter the same email\"),\r\n subscribeNewsletter: Yup.boolean().default(false),\r\n state: Yup.string()\r\n .required(\"Select a state. If you do not live in Australia, select 'Other'\")\r\n .nullable()\r\n .oneOf(\r\n STATE_LIST.map((n) => n[0]),\r\n \"Select a state. If you do not live in Australia, select 'Other'\",\r\n ),\r\n isOver18: Yup.boolean().required().oneOf([true]),\r\n}).defined();\r\n\r\nexport const Registration: React.FC<{}> = () => {\r\n const [user, setUser] = useGlobalUser();\r\n\r\n const { scrollToTop } = useAppContextMethods();\r\n\r\n const {\r\n createSubmitHandler,\r\n field,\r\n values,\r\n touched,\r\n errors,\r\n isSubmitting,\r\n } = useForm({\r\n validationSchema: SCHEMA,\r\n defaultValues: () => {\r\n console.log(user);\r\n if (user) {\r\n return user;\r\n }\r\n\r\n return {};\r\n },\r\n });\r\n\r\n const handleSubmit = React.useMemo(() => {\r\n return createSubmitHandler((v: any) => {\r\n const promises: Promise[] = [];\r\n\r\n if (v.subscribeNewsletter) {\r\n promises.push(\r\n subscribeNewsletter({\r\n email: v.email!,\r\n firstName: v.firstName!,\r\n isOverEighteen: v.isOver18!,\r\n lastName: v.lastName!,\r\n state: v.state!,\r\n }),\r\n );\r\n }\r\n\r\n promises.push(\r\n // todo : api endpoint\r\n upsertHealthyWorkplace({\r\n email: v.email!,\r\n firstName: v.firstName!,\r\n lastName: v.lastName!,\r\n state: v.state!,\r\n }),\r\n );\r\n\r\n Promise.allSettled(promises).then((p) => {\r\n scrollToTop();\r\n setUser((u) => ({\r\n ...u,\r\n firstName: v.firstName!,\r\n lastName: v!.lastName!,\r\n email: v!.email!,\r\n state: v.state!,\r\n currentModule: 1,\r\n view: \"module\",\r\n startedModules: {\r\n ...u.startedModules,\r\n 1: true,\r\n },\r\n }));\r\n });\r\n });\r\n }, [createSubmitHandler]);\r\n\r\n return (\r\n
    \r\n
    \r\n

    Registration

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n To undertake the training module please register your details below.\r\n If you started your training on another device, you can continue\r\n your progress where you left off by going back to that device.\r\n

    \r\n\r\n
    \r\n
    \r\n

    \r\n Register for workplace health training\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {STATE_LIST.map((state, idx) => (\r\n \r\n ))}\r\n \r\n {errors.state && touched.state && (\r\n {errors.state}\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n

    \r\n LiveLighter is a campaign designed and funded for adults.\r\n

    \r\n
    \r\n\r\n

    \r\n By creating an account, I accept LiveLighter's{\" \"}\r\n \r\n terms and conditions\r\n {\" \"}\r\n and{\" \"}\r\n \r\n privacy note and collection statement\r\n \r\n .\r\n

    \r\n\r\n
    \r\n \r\n {isSubmitting ? \"Please wait...\" : \"Start Module 1\"}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { PDFDownloadLink } from \"@react-pdf/renderer\";\r\n\r\nimport { CertificatePdf } from \"~/components\";\r\nimport { subscribeNewsletter } from \"~/util\";\r\nimport { useGlobalUserState } from \"~/state\";\r\n\r\nimport bikeImg from \"../assets/gfx/bike-in-the-office.jpg\";\r\n\r\nexport const ProgramFinish: React.FC<{}> = () => {\r\n const { firstName, lastName, email, state } = useGlobalUserState();\r\n const [isSubmitting, setSubmitting] = React.useState(false);\r\n const [subscribeStatus, setSubscribeStatus] = React.useState<\r\n \"success\" | \"failure\" | null\r\n >(null);\r\n\r\n const handleSubscribe = () => {\r\n setSubmitting(true);\r\n subscribeNewsletter({\r\n firstName,\r\n lastName,\r\n email,\r\n state: state || \"WA\",\r\n isOverEighteen: true,\r\n })\r\n .then(() => setSubscribeStatus(\"success\"))\r\n .catch((err) => setSubscribeStatus(\"failure\"))\r\n .finally(() => setSubmitting(false));\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n Congratulations on successfully completing the Workplace Health\r\n Coordinator Training!\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    \r\n Why not put your training into action straight away by downloading\r\n our toolkit below.\r\n

    \r\n

    \r\n Don’t forget to download your certificate of completion too!\r\n

    \r\n
    \r\n \r\n Download toolkit for a healthier workplace\r\n \r\n \r\n }\r\n className=\"d-block btn btn-primary ml-3\"\r\n fileName=\"Healthy Workplace Training Certificate.pdf\"\r\n >\r\n Download your certificate\r\n \r\n
    \r\n

    \r\n You can find more resources at our healthy workplaces hub.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Workplace Hub\r\n

    \r\n

    \r\n Australians spend about a third of their lives at work, making\r\n the workplace an ideal setting for promoting health and\r\n wellbeing. Find out how you can help to create a healthy\r\n workplace.\r\n

    \r\n
    \r\n \r\n Get started\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n Subscribe to our newsletter\r\n

    \r\n
    \r\n

    \r\n Keep up to date with the latest healthy lifestyle news,\r\n information, competitions and events by subscribing to our\r\n newsletter. We’ll send you healthy tips about once a month\r\n and you can opt out anytime.\r\n

    \r\n

    \r\n By subscribing to the newsletter, I accept LiveLighter's{\" \"}\r\n \r\n privacy note and collection statement\r\n \r\n .\r\n

    \r\n
    \r\n
    \r\n \r\n Subscribe\r\n \r\n {subscribeStatus === \"success\" ? (\r\n \r\n You have successfully subscribed!\r\n
    \r\n ) : subscribeStatus === \"failure\" ? (\r\n \r\n Subscription failed, please try again later.\r\n
    \r\n ) : null}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst FullPage = styled.div`\r\n margin: 0 -2rem 2rem;\r\n`;\r\n\r\nconst PageHeader = styled.section`\r\n background-image: url(${bikeImg});\r\n background-size: cover;\r\n background-position: center;\r\n background-repeat: no-repeat;\r\n margin-bottom: 1.5rem;\r\n`;\r\n\r\nconst PageTitle = styled.h1`\r\n font-size: 2em;\r\n line-height: 1.5;\r\n`;\r\n","import * as React from \"react\";\r\n\r\nimport { rgba } from \"polished\";\r\n\r\nimport {\r\n Module1,\r\n Module2,\r\n Module3,\r\n Module4,\r\n Start,\r\n Registration,\r\n ProgramFinish,\r\n} from \"./views\";\r\n\r\nimport { useGlobalUser, AppContextProvider } from \"./state\";\r\nimport { TOTAL_MODULES } from \"./constants\";\r\n\r\nexport const App: React.FC = () => {\r\n const [\r\n userState,\r\n userSetState,\r\n { reset, finish, goToModule },\r\n ] = useGlobalUser();\r\n\r\n const wrapperRef = React.useRef(null);\r\n\r\n const [state, setState] = React.useState(() => {\r\n return {\r\n showResumeModal: userState.email !== \"\" && userState.view !== \"start\",\r\n };\r\n });\r\n\r\n const createModuleChangeHandler = (moduleNumber: number) => (\r\n e: React.MouseEvent,\r\n ) => {\r\n e.preventDefault();\r\n userSetState((prev) => ({\r\n ...prev,\r\n currentModule: moduleNumber,\r\n currentQuestion: 0,\r\n view: \"module\",\r\n startedModules: {\r\n ...prev.startedModules,\r\n [moduleNumber]: true,\r\n },\r\n }));\r\n };\r\n\r\n const latestModule = React.useMemo(() => {\r\n return Object.keys(userState.startedModules).length;\r\n }, []);\r\n\r\n const hasUserFinished = React.useMemo(() => {\r\n return Object.entries(userState.completedModules).length === TOTAL_MODULES;\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {state.showResumeModal && (\r\n rgba(p.theme.info, 0.9)};\r\n z-index: 99999;\r\n `}\r\n >\r\n \r\n
    \r\n
    \r\n

    \r\n Hi {userState.firstName}\r\n

    \r\n {hasUserFinished ? (\r\n

    \r\n We noticed you have already completed this training\r\n course. Please choose how you would like to proceed.\r\n

    \r\n ) : (\r\n

    \r\n We noticed you have already begun this training course and\r\n are up to module {latestModule}. Please choose how you\r\n would like to proceed.\r\n

    \r\n )}\r\n\r\n
    \r\n {hasUserFinished ? (\r\n {\r\n e.preventDefault();\r\n setState((prev) => ({\r\n ...prev,\r\n showResumeModal: false,\r\n }));\r\n finish();\r\n }}\r\n >\r\n Go to completion page\r\n \r\n ) : (\r\n {\r\n e.preventDefault();\r\n setState((prev) => ({\r\n ...prev,\r\n showResumeModal: false,\r\n }));\r\n goToModule(latestModule);\r\n }}\r\n >\r\n Continue from module {latestModule}\r\n \r\n )}\r\n\r\n {\r\n setState((prev) => ({\r\n ...prev,\r\n showResumeModal: false,\r\n }));\r\n reset();\r\n }}\r\n >\r\n Start again\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n )}\r\n\r\n {/* Main app */}\r\n {process.env.NODE_ENV !== \"production\" && (\r\n \r\n {\r\n e.preventDefault();\r\n userSetState((prev) => ({\r\n ...prev,\r\n currentModule: 0,\r\n currentQuestion: 0,\r\n view: \"start\",\r\n }));\r\n }}\r\n >\r\n Start\r\n \r\n {\r\n e.preventDefault();\r\n userSetState(\r\n (prev) => ({\r\n ...prev,\r\n currentModule: 0,\r\n currentQuestion: 0,\r\n view: \"registration\",\r\n }),\r\n false,\r\n );\r\n }}\r\n >\r\n Registration\r\n \r\n \r\n \r\n \r\n \r\n {\r\n e.preventDefault();\r\n finish();\r\n }}\r\n >\r\n Finish\r\n \r\n \r\n )}\r\n
    \r\n {(() => {\r\n switch (userState.view) {\r\n case \"start\":\r\n return ;\r\n case \"registration\":\r\n return ;\r\n case \"module\":\r\n return (() => {\r\n switch (userState.currentModule) {\r\n case 0:\r\n throw Error(\r\n \"No module step 0, did you mean Module 1? Set userState Module to 1.\",\r\n );\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n case 3:\r\n return ;\r\n case 4:\r\n return ;\r\n default:\r\n throw Error(\r\n `No module step for ${userState.currentModule}`,\r\n );\r\n }\r\n })();\r\n case \"end\":\r\n return ;\r\n default:\r\n return null;\r\n }\r\n })()}\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n","import api from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/resolve-url-loader/index.js!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./main.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { ThemeProvider } from \"styled-components\";\r\nimport { App } from \"./App\";\r\nimport {\r\n Hub_Flipper,\r\n Hub_InteractiveTable,\r\n Hub_InteractiveTraining,\r\n Hub_ThreeCircles,\r\n Hub_QuickWins,\r\n} from \"./components\";\r\nimport { theme } from \"./theme\";\r\n\r\nimport { GlobalUserProvider } from \"./state\";\r\nimport \"./styles/main.scss\";\r\n\r\ndeclare const global: {\r\n React: typeof React;\r\n ReactDOM: typeof ReactDOM;\r\n WorkplaceHubComponents: {\r\n Hub_Flipper: typeof Hub_Flipper;\r\n Hub_InteractiveTable: typeof Hub_InteractiveTable;\r\n Hub_InteractiveTraining: typeof Hub_InteractiveTraining;\r\n Hub_ThreeCircles: typeof Hub_ThreeCircles;\r\n Hub_QuickWins: typeof Hub_QuickWins;\r\n };\r\n};\r\n\r\nglobal.React = React;\r\nglobal.ReactDOM = ReactDOM;\r\nglobal.WorkplaceHubComponents = {\r\n Hub_Flipper,\r\n Hub_InteractiveTable,\r\n Hub_InteractiveTraining,\r\n Hub_ThreeCircles,\r\n Hub_QuickWins,\r\n};\r\n\r\nconst Providers: React.FC<{}> = ({ children }) => {\r\n return {children};\r\n};\r\n\r\nconst root = document.getElementById(\"root\");\r\n\r\nif (root) {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n root,\r\n );\r\n}\r\n"],"sourceRoot":""}